Merge development v2.6.0 into main

Resolved conflicts by taking development (v2.6.0) version for all files.
Removed statistics.twig (replaced by Statistics plugin).
This commit is contained in:
2026-08-15 19:32:47 +02:00
207 changed files with 3736 additions and 23879 deletions
+11 -52
View File
@@ -1,7 +1,5 @@
# Layouts
Layouts definiëren de pagina structuur (sidebar links, volledige breedte, etc.). Layouts worden gedefinieerd in `theme.json` en gekozen via frontmatter in content bestanden.
## Layout kiezen in content
```markdown
@@ -16,58 +14,19 @@ Content...
## Layouts in theme.json
Layouts worden gedefinieerd in de `template` mapping. De `config.default_template` is de fallback voor pagina's zonder `layout:` frontmatter of met een onbekende layout:
```json
{
"config": {
"default_template": "full_content"
},
"template": {
"full_content": "full_content.twig",
"left_sidebar": "left_sidebar.twig",
"right_sidebar": "right_sidebar.twig",
"custom1": "custom1.twig",
"guide": "guide.twig"
}
"config": {
"default_template": "full_content"
},
"template": {
"full_content": "full_content.twig",
"left_sidebar": "left_sidebar.twig",
"right_sidebar": "right_sidebar.twig",
"custom1": "custom1.twig",
"guide": "guide.twig"
}
}
```
## Layout template
Een layout template extends `base.twig` en vult het `content` block:
```twig
{% extends 'base.twig' %}
{% block content %}
<div class="container">
{{ content|raw }}
</div>
{% endblock %}
```
## Layouts met sidebar
Layouts met sidebar kunnen plugin content tonen:
```twig
{% extends 'base.twig' %}
{% block content %}
<div class="row">
<main class="col-md-8">
{{ content|raw }}
</main>
<aside class="col-md-4">
{{ sidebar_content|raw }}
</aside>
</div>
{% endblock %}
```
Als een pagina geen plugins heeft of de layout geen sidebar bevat, is `sidebar_content` leeg.
## Guide layout
De `guide` layout (`guide.twig`) is speciaal voor handleidingen. Het injecteert de Navigation plugin in de sidebar voor zijbalk navigatie. Wordt automatisch gebruikt voor pagina's in de `guide/` map.
Onbekende layouts in frontmatter vallen terug op `config.default_template`.
+2 -1
View File
@@ -22,4 +22,5 @@ Maak basis bestanden:
- `full_content.twig`
- `partials/header.twig`
- `partials/footer.twig`
- `scss/theme.scss`
- `scss/theme.scss`
- `guide.twig` (indien handleidingen ondersteund moeten worden)
+1 -1
View File
@@ -4,7 +4,7 @@
1. Ga naar **Admin****Thema**
2. Klik **SCSS compileren** bij jouw thema
3. CSS wordt gegenereerd in `assets/css/theme.css`
3. CSS wordt gegenereerd in `assets/css_compiled/theme.css`
## SCSS voorbeeld
+16 -37
View File
@@ -2,45 +2,24 @@
```json
{
"title": "Mijn Thema",
"config": {
"default_template": "full_content"
},
"template": {
"full_content": "full_content.twig",
"left_sidebar": "left_sidebar.twig",
"right_sidebar": "right_sidebar.twig",
"custom1": "custom1.twig",
"guide": "guide.twig"
}
"title": "Mijn Thema",
"config": {
"default_template": "full_content"
},
"template": {
"full_content": "full_content.twig",
"left_sidebar": "left_sidebar.twig",
"right_sidebar": "right_sidebar.twig",
"custom1": "custom1.twig",
"guide": "guide.twig"
},
"header_color": "#0a369d"
}
```
## Velden
- `title` Weergavenaam in admin
- `config.default_template` Standaard layout voor pagina's zonder `layout:` frontmatter (fallback bij onbekende layouts)
- `template` Mapping van layout naam naar `.twig` bestand
## Template mapping
De `template` mapping definieert welke layouts beschikbaar zijn. Elke key is een layout naam, elke value is het `.twig` bestand:
| Layout naam | Twig bestand | Beschrijving |
|-------------|--------------|--------------|
| `full_content` | `full_content.twig` | Volledige breedte, geen sidebar |
| `left_sidebar` | `left_sidebar.twig` | Sidebar links |
| `right_sidebar` | `right_sidebar.twig` | Sidebar rechts |
| `custom1` | `custom1.twig` | Custom layout |
| `guide` | `guide.twig` | Handleiding met sidebar (Navigation plugin) |
## Layout keuze
- Layouts worden gekozen via frontmatter `layout:` key in content bestanden
- Onbekende layouts vallen terug op `config.default_template`
- `ThemeManager::getTemplates()` geeft de template mapping terug
- `ThemeManager::getConfig()` geeft de config sectie terug (inclusief `default_template`)
## Guide layout
De `guide` layout is speciaal voor handleidingen. `getGuidePage()` in `CodePressCMS.php` injecteert automatisch de Navigation plugin in de metadata voor zijbalk navigatie.
- `title` - Weergavenaam in admin
- `config.default_template` - Standaard layout voor nieuwe pagina's
- `template` - Mapping van layout namen naar .twig bestanden
- `header_color` - (optioneel) Kleur admin sidebar, standaard `#0a369d`