Major features and improvements: - Fix critical guide template variable replacement bug - Complete guide documentation rewrite with examples - Implement plugin system with HTMLBlock and MQTTTracker plugins - Enhanced bilingual support (NL/EN) throughout the system - Improved template system with better layout options - Enhanced security headers and code quality - Updated documentation and configuration examples Version 1.5.0 represents a significant milestone with improved documentation, plugin architecture, and bug fixes.
272 lines
7.5 KiB
Markdown
272 lines
7.5 KiB
Markdown
# CodePress CMS
|
|
|
|
**[🇳🇱 Nederlands](#) | [🇬🇧 English](README.en.md)**
|
|
|
|
Een lichtgewicht, file-based content management systeem gebouwd met PHP.
|
|
|
|
**Versie:** 1.5.0 | **Licentie:** AGPL v3 / Commercial
|
|
|
|
## ✨ Features
|
|
|
|
- 📝 **Multi-format Content** - Ondersteunt Markdown, PHP en HTML bestanden
|
|
- 🧭 **Dynamic Navigation** - Automatische menu generatie met dropdowns
|
|
- 🔍 **Search Functionality** - Volledige tekst zoek door alle content
|
|
- 🧭 **Breadcrumb Navigation** - Intuïtieve navigatiepaden
|
|
- 🔗 **Auto-linking** - Automatische links tussen pagina's
|
|
- 📱 **Responsive Design** - Werkt perfect op alle apparaten
|
|
- ⚙️ **JSON Configuratie** - Eenvoudige configuratie via JSON
|
|
- 🎨 **Bootstrap 5** - Moderne UI framework
|
|
- 🔒 **Security** - Beveiligde content management
|
|
|
|
## 🚀 Quick Start
|
|
|
|
1. **Upload** bestanden naar webserver
|
|
2. **Stel permissies** in voor webserver
|
|
3. **Configureer** (optioneel) via `config.json`
|
|
4. **Bezoek** website via browser
|
|
|
|
## 📁 Project Structuur
|
|
|
|
```
|
|
codepress/
|
|
├── engine/
|
|
│ ├── core/
|
|
│ │ ├── config.php # Configuratie loader
|
|
│ │ └── index.php # CMS engine
|
|
│ └── templates/ # Template bestanden
|
|
│ ├── layout.mustache
|
|
│ ├── assets/
|
|
│ │ ├── header.mustache
|
|
│ │ ├── navigation.mustache
|
|
│ │ └── footer.mustache
|
|
│ ├── markdown_content.mustache
|
|
│ ├── php_content.mustache
|
|
│ └── html_content.mustache
|
|
├── content/ # Content bestanden
|
|
│ ├── map1/
|
|
│ │ ├── pagina1.md
|
|
│ │ └── pagina2.php
|
|
│ └── homepage.md
|
|
├── public/ # Web root
|
|
│ ├── assets/
|
|
│ │ ├── css/
|
|
│ │ ├── js/
|
|
│ │ └── favicon.svg
|
|
│ └── index.php
|
|
├── config.json # Configuratie
|
|
└── README.md
|
|
```
|
|
|
|
## ⚙️ Configuratie
|
|
|
|
### Basis Configuratie (`config.json`)
|
|
|
|
```json
|
|
{
|
|
"site_title": "CodePress",
|
|
"content_dir": "content",
|
|
"templates_dir": "engine/templates",
|
|
"default_page": "auto",
|
|
"homepage": "homepage",
|
|
"author": {
|
|
"name": "Edwin Noorlander",
|
|
"website": "https://noorlander.info",
|
|
"git": "https://git.noorlander.info/E.Noorlander/CodePress.git"
|
|
},
|
|
"seo": {
|
|
"description": "CodePress CMS - Lightweight file-based content management system",
|
|
"keywords": "cms, php, content management, file-based"
|
|
}
|
|
}
|
|
```
|
|
|
|
### Configuratie Opties
|
|
|
|
- **`site_title`** - Naam van de website
|
|
- **`content_dir`** - Map met content bestanden
|
|
- **`templates_dir`** - Map met template bestanden
|
|
- **`default_page`** - Standaard pagina (`"auto"` voor automatische detectie)
|
|
- **`homepage`** - Homepage (`"auto"` voor automatische detectie)
|
|
- **`author`** - Auteur informatie met links
|
|
- **`seo`** - SEO instellingen
|
|
|
|
## 📝 Content Types
|
|
|
|
### Markdown (.md)
|
|
- Auto-linking tussen pagina's
|
|
- GitHub Flavored Markdown ondersteuning
|
|
- Syntax highlighting voor code blocks
|
|
- Automatische titel extractie
|
|
|
|
### PHP (.php)
|
|
- Volledige PHP ondersteuning
|
|
- Dynamische content generatie
|
|
- Database integratie mogelijk
|
|
- Session management beschikbaar
|
|
|
|
### HTML (.html)
|
|
- Statische HTML pagina's
|
|
- Bootstrap componenten
|
|
- Custom CSS en JavaScript
|
|
- Volledige HTML5 validatie
|
|
|
|
## 🎨 Design Features
|
|
|
|
### Navigation
|
|
- **Tab-style navigatie** met Bootstrap
|
|
- **Dropdown menus** voor mappen en sub-mappen
|
|
- **Home knop** met icoon
|
|
- **Active state** indicatie
|
|
- **Responsive** hamburger menu
|
|
|
|
### Layout
|
|
- **Flexbox layout** voor moderne structuur
|
|
- **Fixed header** met logo en zoekfunctie
|
|
- **Breadcrumb navigatie** tussen header en content
|
|
- **Fixed footer** met metadata
|
|
- **Scrollable content** gebied
|
|
|
|
### Responsive
|
|
- **Mobile-first** aanpak
|
|
- **Touch-friendly** interactie
|
|
- **Adaptieve** breedtes
|
|
- **Consistente** ervaring
|
|
|
|
## 🔧 Vereisten
|
|
|
|
- **PHP 8.4+** of hoger
|
|
- **Webserver** (Apache, Nginx, etc.)
|
|
- **Schrijfrechten** voor PHP bestanden
|
|
- **Mod_rewrite** (optioneel voor pretty URLs)
|
|
|
|
## 🛠️ Installatie
|
|
|
|
### Via Composer
|
|
```bash
|
|
composer create-project codepress
|
|
cd codepress
|
|
```
|
|
|
|
### Handmatig
|
|
1. **Download** de bestanden
|
|
2. **Upload** naar webserver
|
|
3. **Stel permissies** in
|
|
4. **Configureer** `config.json`
|
|
|
|
### Webserver Configuratie
|
|
|
|
#### Apache
|
|
```apache
|
|
<Directory "/var/www/codepress">
|
|
AllowOverride All
|
|
Require all granted
|
|
</Directory>
|
|
|
|
<IfModule mod_rewrite.c>
|
|
RewriteEngine On
|
|
RewriteCond %{REQUEST_FILENAME} !-f
|
|
RewriteCond %{REQUEST_FILENAME} !-d
|
|
RewriteRule ^(.*)$ index.php [QSA,L]
|
|
</IfModule>
|
|
```
|
|
|
|
#### Nginx
|
|
```nginx
|
|
server {
|
|
root /var/www/codepress/public;
|
|
index index.php;
|
|
|
|
location / {
|
|
try_files $uri $uri/ /index.php?$query_string;
|
|
}
|
|
}
|
|
```
|
|
|
|
## 🏗️ PHP Classes
|
|
|
|
### SimpleTemplate Class
|
|
|
|
Lightweight template rendering engine die Mustache-style syntax ondersteunt zonder externe dependencies.
|
|
|
|
**Methods:**
|
|
- `render($template, $data)` - Rendert template met data
|
|
- `replacePartial($matches)` - Vervangt `{{>partial}}` placeholders
|
|
|
|
**Features:**
|
|
- `{{>partial}}` - Partial includes
|
|
- `{{#variable}}...{{/variable}}` - Conditionele blocks
|
|
- `{{^variable}}...{{/variable}}` - Negatieve conditionele blocks
|
|
- `{{{variable}}}` - Unescaped HTML content
|
|
- `{{variable}}` - Escaped content
|
|
|
|
### CodePressCMS Class
|
|
|
|
Hoofd CMS class die alle content management functionaliteit beheert.
|
|
|
|
**Public Methods:**
|
|
- `__construct($config)` - Initialiseer CMS met configuratie
|
|
- `getPage()` - Haalt huidige pagina content op
|
|
- `getMenu()` - Genereert navigatiestructuur
|
|
- `render()` - Rendert volledige pagina met templates
|
|
|
|
**Private Methods:**
|
|
- `buildMenu()` - Bouwt menu structuur van content directory
|
|
- `scanDirectory($dir, $prefix)` - Scant directory voor content
|
|
- `performSearch($query)` - Voert zoekopdracht uit
|
|
- `parseMarkdown($content)` - Converteert Markdown naar HTML
|
|
- `parsePHP($filePath)` - Verwerkt PHP bestanden
|
|
- `parseHTML($content)` - Verwerkt HTML bestanden
|
|
- `getBreadcrumb()` - Genereert breadcrumb navigatie
|
|
- `renderMenu($items, $level)` - Rendert menu HTML
|
|
- `getContentType($page)` - Bepaalt content type
|
|
- `autoLinkPageTitles($content)` - Auto-link pagina titels
|
|
|
|
**Features:**
|
|
- Multi-format content support (MD, PHP, HTML)
|
|
- Dynamische navigatie met dropdowns
|
|
- Zoekfunctionaliteit met snippets
|
|
- Breadcrumb navigatie
|
|
- Auto-linking tussen pagina's
|
|
- File metadata tracking
|
|
- Responsive template rendering
|
|
|
|
## 📖 Documentatie
|
|
|
|
- **[Handleiding (NL)](guide/nl.md)** - Gedetailleerde handleiding
|
|
- **[Handleiding (EN)](guide/en.md)** - English documentation
|
|
- **[AGENTS.md](AGENTS.md)** - Ontwikkelaar instructies
|
|
|
|
## 🤝 Bijdragen
|
|
|
|
Bijdragen zijn welkom! Zie [AGENTS.md](AGENTS.md) voor ontwikkelrichtlijnen.
|
|
|
|
## 📄 Licentie
|
|
|
|
CodePress CMS is beschikbaar onder een **dual-license model**:
|
|
|
|
### 🆓 AGPL v3 (Open-Source)
|
|
- **Gratis** voor niet-commercieel gebruik
|
|
- **Vereist** het delen van wijzigingen
|
|
- **Copyleft** bescherming
|
|
- Zie [LICENSE](LICENSE) voor details
|
|
|
|
### 💼 Commercial License
|
|
Voor bedrijfsmatig gebruik zonder AGPL verplichtingen:
|
|
|
|
- **Individual:** €99 (1 developer)
|
|
- **Business:** €499 (10 developers)
|
|
- **Enterprise:** €2499 (unlimited)
|
|
- **SaaS:** €999/jaar
|
|
|
|
📧 **Contact:** commercial@noorlander.info
|
|
📖 **Meer info:** [LICENSE-INFO.md](LICENSE-INFO.md)
|
|
|
|
## 🔗 Links
|
|
|
|
- **Website**: https://noorlander.info
|
|
- **Repository**: https://git.noorlander.info/E.Noorlander/CodePress.git
|
|
- **Issues**: https://git.noorlander.info/E.Noorlander/CodePress/issues
|
|
|
|
---
|
|
|
|
*Gebouwd met ❤️ door Edwin Noorlander* |