diff --git a/docs/04-development/02-content-system.md b/docs/04-development/02-content-system.md index b821dbb..302976c 100644 --- a/docs/04-development/02-content-system.md +++ b/docs/04-development/02-content-system.md @@ -54,6 +54,7 @@ Returns flat key-value array with a special `_raw` key containing the full parse | `order` | string | `"descending"` | List sort direction (`ascending`\|`descending`) | | `redirect` | string | — | External URL (list items can redirect) | | `feed` | bool | `false` | Enable Atom feed on list pages (`feed.xml`) | +| `author` | string | title | Atom feed author name (falls back to page title) | | `plugins` | string | — | Comma-separated page-level plugin names | ### Settings Section diff --git a/docs/04-development/07-rendering.md b/docs/04-development/07-rendering.md index c2d1de1..a761287 100644 --- a/docs/04-development/07-rendering.md +++ b/docs/04-development/07-rendering.md @@ -57,6 +57,8 @@ Handled in `router.php` before `parseRequestPath()`. When a request path ends wi Feed piggybacks on the existing Markdown cache — no separate feed cache needed. The `rawDate` field on items provides ISO dates for Atom `` elements. Content is wrapped in `` with `]]>` safely escaped. +**Date deduplication:** Atom requires unique `` timestamps per entry. Items sharing the same date get seconds incremented (`T00:00:00Z`, `T00:00:01Z`, etc.) to ensure uniqueness while preserving sort order. + ## Markdown Caching Defined in `app/cache.php`. File-based cache in `/tmp/folderweb_cache/`. @@ -87,7 +89,9 @@ Files not in this list are not served as static assets. ### Custom Assets (router.php) -Files in `custom/assets/` are served at the document root URL. Example: `custom/assets/favicon.ico` → `/favicon.ico`. Uses `mime_content_type()` for MIME detection. +Files in `custom/assets/` are served at the document root URL. Example: `custom/assets/favicon.ico` → `/favicon.ico`. Uses an explicit MIME type map; falls back to `application/octet-stream`. + +Cache-Control headers: `json` and `geojson` files get `max-age=60` (short TTL for data files); all other asset types get `max-age=31536000` (1 year, immutable). ### Framework Assets (static.php)