- Remove H1 and HTML title extraction from parse methods - Always use formatDisplayName() for consistent filename-based titles - Add file path parameters to parseMarkdown() and parseHTML() - Fix directory precedence to check directories before files - Update AGENTS.md with title vs filename clarification - Remove debug code from templates and methods Resolves: Page titles now consistently show file/directory names without language prefixes and extensions, never content titles.
1.8 KiB
1.8 KiB
Agent Instructions for CodePress CMS
Build & Run
- Run Server:
php -S localhost:8080 -t public - Lint PHP:
find . -name "*.php" -exec php -l {} \; - Dependencies: No Composer/NPM required. Native PHP 8.4+ implementation.
Code Style & Conventions
- PHP Standards: Follow PSR-12. Use 4 spaces for indentation.
- Naming: Classes
PascalCase(e.g.,CodePressCMS), methodscamelCase(e.g.,renderMenu), variablescamelCase, config keyssnake_case. - Architecture:
- Core logic resides in
index.php. - Configuration in
config.php. - Public entry point is
public/index.php.
- Core logic resides in
- Content: Stored in
public/content/. Supports.md(Markdown),.php(Dynamic),.html(Static). - Templating: Simple string replacement
{{placeholder}}intemplates/layout.html. - Navigation: Auto-generated from directory structure. Folders require an index file to be clickable in breadcrumbs.
- Security: Always use
htmlspecialchars()for outputting user/content data. - Git:
mainis the clean CMS core.e.noorlandercontains personal content. Do not mix them.
Important: Title vs File/Directory Name Logic
- CRITICAL: When user asks for "title" corrections, they usually mean FILE/DIRECTORY NAME WITHOUT LANGUAGE PREFIX AND EXTENSIONS, not the HTML title from content!
- Examples:
nl.test.md→ display as "Test" (not content title)nl.test/directory → display as "Test" (not H1 content)en.php-testen→ display as "Php Testen" (not "ICT")
- Method: Use
formatDisplayName()to process file/directory names correctly - Priority: Directory names take precedence over file names when both exist
- Language prefixes: Always remove
nl.oren.prefixes from display names