Update documentation with complete feature coverage

- Add language support documentation
- Document all template variables and configuration options
- Add URL structure and routing information
- Include directory listings and file naming conventions
- Document search functionality and SEO features
- Add breadcrumb navigation and theme customization
- Include security features and responsive design
- Update both English and Dutch guides

Guides now cover all CodePress CMS features and functions.
This commit is contained in:
2025-11-22 18:12:34 +01:00
parent 561832161e
commit 04a9406f14
2 changed files with 232 additions and 22 deletions

View File

@@ -19,6 +19,7 @@ CodePress is a lightweight, file-based Content Management System built with PHP
- PHP 8.4+
- Web server (Apache/Nginx)
- Modern web browser
- Write permissions for content directory
### Installation
1. Clone or download the CodePress files
@@ -56,20 +57,43 @@ content/
```
### Content Types
CodePress supports three content types:
CodePress supports four content types:
#### Markdown (`.md`)
```markdown
# Page Title
This is the page content in **Markdown** format.
This is page content in **Markdown** format with CommonMark extensions.
## Subsection
- List item 1
- List item 2
- [x] Task list item
- [ ] Another task
- **Bold** and *italic* text
- [Auto-linked pages](?page=another-page)
```
#### PHP (`.php`)
```php
<?php
$title = "Dynamic Page";
?>
<h1><?php echo htmlspecialchars($title); ?></h1>
<p>This is dynamic content with PHP.</p>
```
#### HTML (`.html`)
```html
<h1>HTML Page</h1>
<p>This is static HTML content.</p>
```
#### Directory Listings
Directories automatically generate listings:
- File information (size, dates)
- Navigation to subdirectories
- Responsive file listing layout
#### PHP (`.php`)
```php
<?php
@@ -88,6 +112,18 @@ $title = "Dynamic Page";
### Automatic Linking
CodePress automatically creates links to other pages when you mention page names in your content.
### Language Support
- **Browser detection**: Automatic language detection
- **URL switching**: `?lang=en` or `?lang=nl`
- **Language prefixes**: `en.page.md` and `nl.page.md`
- **Translation files**: `lang/en.php` and `lang/nl.php`
### Search Functionality
- **Full-text search**: Search through all content
- **Search URL**: `?search=query` for bookmarkable searches
- **Result highlighting**: Search terms highlighted in results
- **File and content search**: Searches both filenames and content
---
## Templates {#templates}
@@ -102,37 +138,109 @@ CodePress uses Mustache-compatible templates:
### Template Variables
Available variables in templates:
#### **Site Info**
- `{{site_title}}` - Website title
- `{{page_title}}` - Current page title
- `{{content}}` - Page content
- `{{author_name}}` - Author name
- `{{author_website}}` - Author website
- `{{author_git}}` - Git repository link
#### **Page Info**
- `{{page_title}}` - Page title (filename without extension)
- `{{content}}` - Page content (HTML)
- `{{file_info}}` - File information (dates, size)
- `{{is_homepage}}` - Boolean: is this the homepage?
#### **Navigation**
- `{{menu}}` - Navigation menu
- `{{breadcrumb}}` - Breadcrumb navigation
- `{{homepage}}` - Homepage link
- `{{homepage_title}}` - Homepage title
#### **Theme**
- `{{header_color}}` - Header background color
- `{{header_font_color}}` - Header text color
- `{{navigation_color}}` - Navigation background color
- `{{navigation_font_color}}` - Navigation text color
#### **Language**
- `{{current_lang}}` - Current language (en/nl)
- `{{current_lang_upper}}` - Current language (EN/NL)
- `{{available_langs}}` - Available languages
- `{{t_*}}` - Translated strings (t_home, t_search, etc.)
#### **SEO**
- `{{seo_description}}` - Meta description
- `{{seo_keywords}}` - Meta keywords
#### **Features**
- `{{has_content}}` - Boolean: is content available?
- `{{show_site_link}}` - Boolean: show site link?
- `{{is_guide_page}}` - Boolean: is this the guide page?
---
## Configuration {#configuration}
### Basic Settings
Edit `engine/core/config.php` for your website:
Edit `config.json` in your project root:
```php
$config = [
'site_title' => 'Your Website Name',
'default_page' => 'home', // Default start page
'content_dir' => __DIR__ . '/../../content',
'templates_dir' => __DIR__ . '/../templates'
];
```json
{
"site_title": "Your Website Name",
"content_dir": "content",
"templates_dir": "engine/templates",
"default_page": "auto",
"language": {
"default": "en",
"available": ["en", "nl"]
},
"theme": {
"header_color": "#0a369d",
"header_font_color": "#ffffff",
"navigation_color": "#2754b4",
"navigation_font_color": "#ffffff"
},
"author": {
"name": "Your Name",
"website": "https://yourwebsite.com",
"git": "https://github.com/youruser/codepress"
},
"seo": {
"description": "Your website description",
"keywords": "cms, php, content management"
},
"features": {
"auto_link_pages": true,
"search_enabled": true,
"breadcrumbs_enabled": true
}
}
```
### SEO Friendly URLs
CodePress automatically generates clean URLs:
- `home.md``/home`
- `blog/article.md``/blog/article`
- `home.md``?page=home`
- `blog/article.md``?page=blog/article`
- `nl.page.md``?page=nl.page&lang=nl`
### Language Support
- **Browser detection**: Automatic language detection
- **URL switching**: `?lang=en` or `?lang=nl`
- **Language prefixes**: `en.page.md` and `nl.page.md`
- **Directory precedence**: Directories take precedence over files
### Search Functionality
The built-in search function searches through:
- File names
- Content of Markdown/PHP/HTML files
- Search URL: `?search=query` for bookmarkable searches
- Result highlighting and snippets
### Directory Listings
- **Auto-generation**: `?page=directory` shows directory contents
- **File information**: Creation/modification dates and sizes
- **Navigation**: Links to files and subdirectories
---
@@ -142,6 +250,15 @@ The built-in search function searches through:
- Use subdirectories for categories
- Give each directory an `index.md` for an overview page
- Keep file names short and descriptive
- Use language prefixes: `en.page.md` and `nl.page.md`
- Directory names take precedence over files with same name
### File Naming Conventions
- **Lowercase names**: Use lowercase for all files
- **No spaces**: Use hyphens (-) or underscores (_)
- **Language prefixes**: `en.` or `nl.` for multilingual content
- **Display names**: `file-name.md` displays as "File Name" in menus
- **Special cases**: `phpinfo` → "phpinfo", `ict` → "ICT"
### Content Optimization
- Use clear headings (H1, H2, H3)