folderweb/README.md
Ruben b507a0c676 Add multi-file page support and improve documentation
Update README to explain multi-file page functionality Add example
content files demonstrating the feature Improve folder type detection
logic Implement new routing for page-type folders Add support for mixed
content types in single pages Update navigation and metadata handling
for multi-file pages Remove legacy frontpage.php in favor of multi-file
approach Improve file-based routing documentation Add examples of
different content types working together Update router to handle
multi-file content rendering Implement proper sorting of content files
Add best practices for multi-file content organization
2025-11-01 18:20:23 +01:00

105 lines
2.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 one or more content files (`.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/
00-welcome.php
01-introduction.md
about/
00-overview.md
01-philosophy.html
02-technology.php
blog/
2025-11-01-hello-world/
article.md
cover.jpg
metadata.ini
```
### Multi-File Pages
Any folder without subdirectories is a **page-type folder**. All `.md`, `.html`, and `.php` files in that folder render together as a single page in **alphanumerical order**.
This allows you to:
- Break long content into manageable sections
- Mix file formats freely (Markdown, HTML, PHP)
- Reorder sections by renaming files
- Include dynamic PHP content alongside static content
**Example:**
```
/content/
docs/
00-introduction.md
01-setup.md
02-advanced.html
03-examples.php
```
All four files render as one page at `/docs/`, in that order.
### Folder Types
FolderWeb automatically determines how to render folders:
- **Page-type folder** (no subdirectories) → Renders all content files as a single page
- **Article-type folder** (has subdirectories) → Shows list view with links to subdirectories
### 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:
- Root content files → `yoursite.com/`
- `/about/` (with content files) → `yoursite.com/about/`
- `/blog/2025-11-01-post/` (with content files) → `yoursite.com/blog/2025-11-01-post/`
- Dates in folder names are automatically extracted and formatted
- Content file names can be anything (not limited to `page.md` or `article.md`)
### Metadata
Use `metadata.ini` files for structured data:
```ini
title = "My Page Title"
date = "2025-11-01"
summary = "A brief description of the page"
```