- 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.
10 KiB
10 KiB
CodePress CMS Handleiding
Overzicht
CodePress CMS is een lichtgewicht, file-based content management systeem gebouwd met PHP. Het is ontworpen om eenvoudig te gebruiken, flexibel te zijn en zonder database te werken.
Functies
🏠 Navigatie
- Tab-style navigatie met Bootstrap styling
- Dropdown menus voor mappen en sub-mappen
- Home knop met icoon die linkt naar de ingestelde homepage
- Automatische menu generatie op basis van content structuur
- Responsive design voor mobiele apparaten
- Breadcrumb navigatie met home icoon en pad weergave
- Active state marking voor huidige pagina in menu
📄 Content Types
- Markdown (.md) - Met CommonMark ondersteuning en extensies (autolink, strikethrough, tables, task lists)
- PHP (.php) - Voor dynamische content en functionaliteit
- HTML (.html) - Voor statische HTML pagina's
- Directory listings - Automatische generatie van directory overzichten
- Language-specific content -
nl.enen.prefix voor meertalige content - Automatische template selectie op basis van bestandstype
🔍 Zoekfunctionaliteit
- Volledige tekst zoek door alle content bestanden
- Resultaten met snippets en highlighting
- Directe navigatie naar gevonden pagina's
- SEO-vriendelijke zoekresultaten
- Search URL:
?search=zoektermvoor bookmarkable searches
🧭 Configuratie
- JSON configuratie in project root (
config.json) - Dynamische homepage instelling of automatische detectie
- SEO instellingen (description, keywords)
- Author informatie met links naar website en Git
- Thema configuratie met kleur instellingen
- Language settings voor meertalige content
- Feature toggles voor search, breadcrumbs, auto-linking
🎨 Layout & Design
- Flexbox layout voor moderne, responsive structuur
- Fixed header met logo en zoekfunctie
- Breadcrumb navigatie tussen header en content
- Fixed footer met file info en links
- Bootstrap 5 styling en componenten
- Custom CSS voor specifieke styling
- Mustache templates met conditionals en partials
- Semantic HTML5 structuur voor SEO
📱 Responsive Features
- Mobile-first aanpak
- Hamburger menu voor kleine schermen
- Touch-friendly dropdowns en navigatie
- Adaptieve breedtes voor verschillende schermgroottes
🌍 Language Support
- Browser language detection op basis van Accept-Language header
- URL language switching:
?lang=nlof?lang=en - Translation files:
lang/nl.phpenlang/en.php - Language prefixes:
nl.bestand.mdenen.bestand.md - Automatic language routing voor meertalige content
Installatie
- Upload bestanden naar webserver
- Stel permissies in voor webserver
- Configureer
config.jsonindien nodig - Toegang tot website via browser
Configuratie
Basis Configuratie (config.json)
{
"site_title": "CodePress",
"content_dir": "content",
"templates_dir": "engine/templates",
"default_page": "auto",
"homepage": "welkom",
"language": {
"default": "nl",
"available": ["nl", "en"]
},
"theme": {
"header_color": "#0a369d",
"header_font_color": "#ffffff",
"navigation_color": "#2754b4",
"navigation_font_color": "#ffffff"
},
"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"
},
"features": {
"auto_link_pages": true,
"search_enabled": true,
"breadcrumbs_enabled": true
}
}
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- Specifieke homepage ("auto"voor automatische detectie)language.default- Standaard taallanguage.available- Beschikbare talentheme.*- Kleur instellingen voor header en navigatieauthor- Auteur informatie met linksseo- SEO instellingenfeatures.*- Feature toggles (search, breadcrumbs, auto-linking)
Content Structuur
Bestandsstructuur
content/
├── map1/
│ ├── submap1/
│ │ ├── pagina1.md
│ │ └── pagina2.php
│ └── pagina3.html
├── map2/
│ └── pagina4.md
├── homepage.md
└── index.html
Bestandsnamen
- Gebruik lowercase bestandsnamen
- Geen spaties - gebruik
-of_als scheidingsteken - Logische extensies -
.md,.php,.html - Unieke namen - geen duplicaten binnen dezelfde map
- Language prefixes -
nl.bestand.mdenen.bestand.mdvoor meertalige content - Display names -
bestands-naamwordt automatisch "Bestands Naam" in menu's - Special cases -
phpinfo→ "phpinfo",ict→ "ICT"
Templates
Template Structuur
engine/templates/
├── layout.mustache - Hoofd layout template
├── assets/
│ ├── header.mustache - Header template
│ ├── navigation.mustache - Navigatie template
│ └── footer.mustache - Footer template
├── markdown_content.mustache - Markdown content template
├── php_content.mustache - PHP content template
└── html_content.mustache - HTML content template
Template Variabelen
Site Info
{{site_title}}- Website titel{{author_name}}- Auteur naam{{author_website}}- Auteur website{{author_git}}- Git repository link
Page Info
{{page_title}}- Pagina titel (bestandsnaam zonder extensie){{content}}- Content (HTML){{file_info}}- Bestandsinformatie (datum, grootte){{is_homepage}}- Boolean: is dit de homepage?
Navigation
{{menu}}- Navigatie menu{{breadcrumb}}- Breadcrumb navigatie{{homepage}}- Homepage link{{homepage_title}}- Homepage titel
Theme
{{header_color}}- Header achtergrondkleur{{header_font_color}}- Header tekstkleur{{navigation_color}}- Navigatie achtergrondkleur{{navigation_font_color}}- Navigatie tekstkleur
Language
{{current_lang}}- Huidige taal (nl/en){{current_lang_upper}}- Huidige taal (NL/EN){{available_langs}}- Beschikbare talen{{t_*}}- Vertaalde strings (t_home, t_search, etc.)
SEO
{{seo_description}}- Meta description{{seo_keywords}}- Meta keywords
Features
{{has_content}}- Boolean: is er content beschikbaar?{{show_site_link}}- Boolean: toon site link?{{is_guide_page}}- Boolean: is dit de handleiding pagina?
URL Structuur
Basis URLs
- Home:
/of?page=home - Pagina:
?page=map/pagina - Zoeken:
?search=zoekterm - Handleiding:
?guide - Language:
?lang=nlof?lang=en
File Extensions
Bestandsextensies worden automatisch gedetecteerd:
pagina.md→?page=paginapagina.php→?page=paginapagina.html→?page=pagina
Language Support
- Browser detection: Automatische taal detectie
- URL switching:
?page=nl.bestand&lang=nl - Language prefixes:
nl.bestand.mdenen.bestand.md - Directory precedence: Directories hebben voorrang op bestanden
Directory Listings
- Auto-generation:
?page=maptoont directory inhoud - File info: Creatie/modificatie datums en groottes
- Navigation: Links naar bestanden en submappen
SEO Optimalisatie
Meta Tags
De CMS voegt automatisch de volgende meta tags toe:
<meta name="generator" content="CodePress CMS">
<meta name="application-name" content="CodePress">
<meta name="author" content="Edwin Noorlander">
<meta name="description" content="...">
<meta name="keywords" content="...">
<link rel="author" href="https://noorlander.info">
<link rel="me" href="https://git.noorlander.info/E.Noorlander/CodePress.git">
Auto-linking
De CMS linkt automatisch pagina titels naar hun content:
- Automatische detectie van pagina titels in tekst
- Slimme links met
titleattributen - Geen dubbele links voor dezelfde pagina
- SEO-vriendelijke URL structuur
Veelgestelde Vragen
Hoe stel ik de homepage in?
- Automatisch: Laat de CMS het eerste bestand kiezen
- Handmatig: Stel
"homepage": "pagina-naam"inconfig.json - Flexibel: Werkt met elk bestandstype (md, php, html)
Hoe werkt de navigatie?
- Mappen worden dropdown menus
- Bestanden worden directe links
- Sub-mappen worden geneste dropdowns
- Home knop linkt altijd naar de homepage
Hoe voeg ik nieuwe content toe?
- Upload bestanden naar de
content/map - Organiseer in logische mappen
- Gebruik juiste bestandsnamen en extensies
- Herlaad de pagina om de navigatie te vernieuwen
Kan ik custom CSS gebruiken?
Ja! Voeg custom CSS toe aan:
/public/assets/css/style.css- Voor algemene styling- Template bestanden - Voor specifieke componenten
- Inline styles - In content bestanden indien nodig
Troubleshooting
Pagina niet gevonden (404)
- Controleer bestandsnaam en pad
- Controleer bestandsextensie (.md, .php, .html)
- Controleer permissies van bestanden
- Controleer
config.jsonsyntax
Template niet geladen
- Controleer template bestandsnamen
- Controleer template map permissies
- Controleer PHP error logs
- Controleer
templates_dirconfiguratie
Navigatie niet bijgewerkt
- Herlaad de pagina
- Controleer content map structuur
- Controleer bestandsnamen (geen spaties)
- Controleer PHP cache indien aanwezig
Ondersteuning
Voor technische ondersteuning:
- GitHub: https://git.noorlander.info/E.Noorlander/CodePress.git
- Website: https://noorlander.info
- Issues: Rapporteer problemen via GitHub issues
Licentie
CodePress CMS is open-source software. Controleer de licentie in de repository voor meer informatie.