- Add search-input class to both desktop and mobile search inputs - Set dark text color (#212529) for search input visibility - Add placeholder styling with lighter color (#6c757d) - Compile SCSS to CSS with new search input styles Resolves: White text on white background issue in search fields
CodePress CMS
Een lichtgewicht, file-based content management systeem gebouwd met PHP.
✨ 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
- Upload bestanden naar webserver
- Stel permissies in voor webserver
- Configureer (optioneel) via
config.json - 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)
{
"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 websitecontent_dir- Map met content bestandentemplates_dir- Map met template bestandendefault_page- Standaard pagina ("auto"voor automatische detectie)homepage- Homepage ("auto"voor automatische detectie)author- Auteur informatie met linksseo- 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
composer create-project codepress
cd codepress
Handmatig
- Download de bestanden
- Upload naar webserver
- Stel permissies in
- Configureer
config.json
Webserver Configuratie
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
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 datareplacePartial($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 configuratiegetPage()- Haalt huidige pagina content opgetMenu()- Genereert navigatiestructuurrender()- Rendert volledige pagina met templates
Private Methods:
buildMenu()- Bouwt menu structuur van content directoryscanDirectory($dir, $prefix)- Scant directory voor contentperformSearch($query)- Voert zoekopdracht uitparseMarkdown($content)- Converteert Markdown naar HTMLparsePHP($filePath)- Verwerkt PHP bestandenparseHTML($content)- Verwerkt HTML bestandengetBreadcrumb()- Genereert breadcrumb navigatierenderMenu($items, $level)- Rendert menu HTMLgetContentType($page)- Bepaalt content typeautoLinkPageTitles($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) - Gedetailleerde handleiding
- Handleiding (EN) - English documentation
- AGENTS.md - Ontwikkelaar instructies
🤝 Bijdragen
Bijdragen zijn welkom! Zie AGENTS.md voor ontwikkelrichtlijnen.
📄 Licentie
Open-source licentie. Zie de repository voor meer informatie.
🔗 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
Description
Languages
PHP
60.2%
JavaScript
16.6%
Shell
12.3%
Mustache
8.1%
SCSS
2.4%
Other
0.4%