Site Architectuur & Redactionele Regels
Deze website is een filesystem-gestuurde MDX-site gebouwd met Next.js.
Er is geen CMS, geen database en geen runtime page-generatie.
Alle pagina's, navigatie, widgets en layouts worden tijdens de buildfase afgeleid van het bestandssysteem.
De mapstructuur is de website.
Fundamentele regels
- Elke pagina is een
index.mdxbinnen een map - Mappen definiëren de URL's
- Frontmatter definieert metadata en gedrag
- Widgets zijn MDX-fragmenten, geen pagina's
- Alle content wordt statisch gegenereerd
Contentmap (single source of truth)

Pagina's en routing
Eén regel:
Alle routable pagina's bevinden zich in /map/index.mdx Er zijn:
Geen losse pagina-bestanden
Geen alternatieve bestandsnamen
Geen dynamische contentmappen
URL-mapping
- Bestandspad URL
- content/index.mdx /
- content/nieuws/index.mdx /nieuws
- content/nieuws/energie/index.mdx /nieuws/energie
- De hiërarchie van het bestandssysteem definieert direct de URL-hiërarchie.
Page Frontmatter
Elke pagina kan metadata definiëren via frontmatter.
- title: "Energie"
- description: "Ontwikkelingen in de energiemarkt"
- menu: true
- icon: "Zap"
- weight: 2
- category: Duurzaamheid
- date: 2024-11-03
- image: images/energie.jpg
Frontmatter-velden
- Veld Beschrijving
- title Paginatitel en menu-label
- description SEO-beschrijving
- menu Opnemen in navigatie
- icon Menu-icoon (Lucide)
- weight Volgorde in overzichten
- category Categorie-label
- date Artikelen of nieuws
- image Optionele teaserafbeelding -_intro.mdx (script-only helper)
- Optioneel bestand
Wordt nooit als pagina gerenderd
Alleen gebruikt door build-scripts
Doel:
Sectie-introductietekst
Sectie-icoon voor menu’s of overzichten
Widgets (MDX-fragmenten)
Widgets zijn MDX-bestanden die worden weergegeven binnen paginalay-out panels.
Kenmerken:
Zijn geen pagina's
Hebben geen routes
Gebruiken dezelfde MDX-renderingpipeline als pagina's
Globale widgets (content/widgets/)
Globale widgets gelden site-breed.
Plaatsing op basis van bestandsnaam
Bestandsnaam Locatie rendering -_widget_left*.mdx Linker paneel -_widget_home*.mdx Middenpaneel -_widget_right*.mdx Rechterpaneel -_widget_news.mdx Midden (speciaal) -_widget_news_titles.mdx Rechts (speciaal)
Kenmerken: Server-side geladen Gecompileerd met compileMDX
Statisch tijdens runtime
Sectie-specifieke widgets (_widgets.mdx)
Elke map mag een _widgets.mdx bestand bevatten.
Dit bestand definieert rechterpaneel-widgets die specifiek zijn voor die sectie.
Resolutievolgorde Voor een pagina op:
content/nieuws/energie/index.mdx Zoekt het systeem in deze volgorde:
content/nieuws/energie/_widgets.mdx
content/nieuws/_widgets.mdx
Globale widgets
Het dichtstbijzijnde _widgets.mdx wint.
Widget scope regels
_widgets.mdx beheert alleen het rechterpaneel
Overschrijft globale rechterwidgets
Linker- en middenwidgets blijven globaal
Dit maakt contextuele zijcontent mogelijk zonder dat de layout-inconsistent wordt.
Homepage gedrag (/) De homepage is altijd:
content/index.mdx Speciaal gedrag:
Laadt altijd globale widgets
Layout past automatisch aan:
éénkoloms
tweekoloms
driekoloms
Prioriteit middenpaneel
Nieuws-widget
Home-widgets
Paginacontent fallback
Statische generatie Tijdens de build:
Wordt het bestandssysteem gescand
Elke map met index.mdx wordt een route
Alle pagina's worden statisch gegenereerd
Geen bestandssysteem-toegang tijdens runtime
Dit garandeert:
Voorspelbare builds
Cachebare pagina's
Geen productie I/O
Gegeneerde MDX (build-scripts)
Sommige MDX-bestanden worden gegenereerd door scripts:
Nieuws-widgets
Sectie-overzichtspagina's
Gegenereerde content:
Geldige MDX
Bevindt zich in content/
Wordt gecommit naar de repository
Wordt gerenderd als elke andere pagina of widget
Scripts genereren MDX, niet HTML.
Redactionele regels
Pagina's aanmaken Doen:
Altijd een map aanmaken
Altijd index.mdx gebruiken
Consistent frontmatter gebruiken
Niet doen:
Losse .mdx bestanden maken
index.mdx hernoemen
Pagina's maken die met _ beginnen
Gebruik van widgets Doen:
_widgets.mdx gebruiken voor sectie-specifieke zijcontent
Globale widgets gebruiken voor herbruikbare elementen
Widgets kort en gefocust houden
Niet doen:
Hoofdartikelen in widgets plaatsen
Widgets gebruiken voor navigatie
Afhankelijk zijn van volgorde van widgets tussen secties
Gebruik van Frontmatter Doen:
weight gebruiken voor volgorde
category spaarzaam gebruiken
Geldige Lucide-iconnamen gebruiken
Niet doen:
Titels dupliceren binnen dezelfde sectie
JSX gebruiken in frontmatter
Vertrouwen op impliciete mapvolgorde
Afbeeldingen Gebruik relatieve paden
Optimaliseer afbeeldingen voor commit
Altijd betekenisvolle alt-tekst meegeven
Mentale model Mappen definiëren URL's
index.mdx definieert pagina's
Widgets zijn MDX-fragmenten
Scripts genereren MDX, niet HTML
Next.js rendert alleen statische content