69 lines
1.9 KiB
Markdown
69 lines
1.9 KiB
Markdown
# FolderWeb
|
|
|
|
A minimal, file-based PHP framework for publishing content that will work for decades. **Just enough, nothing more.** FolderWeb applies minimal PHP to enable modern conveniences while remaining maintainable for years or decades. No frameworks, no build tools, no JavaScript—just HTML, PHP 8.3+, and CSS. This is not a CMS with an admin panel, not a single-page application.
|
|
|
|
## Getting Started
|
|
|
|
### Requirements
|
|
|
|
- PHP 8.3 or higher
|
|
- A web server (Apache, Nginx, or PHP's built-in server)
|
|
|
|
### Quick Start
|
|
|
|
1. Clone or download this repository
|
|
2. Point your web server's document root to /content
|
|
|
|
## Development
|
|
|
|
### Creating Content
|
|
|
|
1. Create a directory for your content in the document root
|
|
2. Add a content file (.md, .php or .html)
|
|
3. Optionally add `metadata.ini` for title, date, and summary
|
|
4. Optionally add `cover.jpg|webp` for list view thumbnails
|
|
|
|
Content is immediately accessible at the URL matching the directory path.
|
|
|
|
**Example structure:**
|
|
|
|
```
|
|
/content/
|
|
about/
|
|
page.md
|
|
blog/
|
|
2025-11-01-hello-world/
|
|
article.md
|
|
cover.jpg
|
|
metadata.ini
|
|
```
|
|
|
|
### Customization
|
|
|
|
All customization lives in `custom/`:
|
|
|
|
- **Styles:** Place CSS in `custom/styles/base.css`
|
|
- **Templates:** Override defaults by placing files in `custom/templates/`
|
|
- **Fonts:** Add font files to `custom/fonts/`
|
|
- **Configuration:** Copy `app/config.ini` to `custom/config.ini` and modify
|
|
|
|
Never modify files in `/app/default/`—always override them in `custom/`.
|
|
|
|
### File-Based Routing
|
|
|
|
The folder hierarchy dictates URL structure:
|
|
|
|
- `/about/page.md` → `yoursite.com/about`
|
|
- `/blog/2025-11-01-post/article.md` → `yoursite.com/blog/2025-11-01-post`
|
|
- Dates in folder names are automatically extracted and formatted
|
|
- Directories with subdirectories automatically show list views
|
|
|
|
### Metadata
|
|
|
|
Use `metadata.ini` files for structured data:
|
|
|
|
```ini
|
|
title = "My Page Title"
|
|
date = "2025-11-01"
|
|
summary = "A brief description of the page"
|
|
```
|