No description
Find a file
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
app Add multi-file page support and improve documentation 2025-11-01 18:20:23 +01:00
development Add demo content and documentation for FolderWeb 2025-11-01 16:47:15 +01:00
.gitignore Initial commit 2025-10-02 16:54:47 +02:00
CLAUDE.md Update framework documentation and rename project to FolderWeb 2025-11-01 17:23:11 +01:00
README.md Add multi-file page support and improve documentation 2025-11-01 18:20:23 +01:00

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:

title = "My Page Title"
date = "2025-11-01"
summary = "A brief description of the page"