# 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 AllowOverride All Require all granted RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php [QSA,L] ``` #### 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.codepress.md)** - Gedetailleerde handleiding - **[Handleiding (EN)](guide/en.codepress.md)** - English documentation - **[Release Notes v1.5.0](RELEASE-NOTES-v1.5.0.md)** - Uitgebreide release informatie - **[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*