Bausteinsystem im CMS.
200 Abschnitte auf 85 Bausteine eingedampft, ohne dass sich eine Seite veränderte.
- Rolle
- Konzept und Umsetzung
- Jahr
- 2026
- Technik
- Astro Sveltia CMS Cloudflare
Der Umbau in Zahlen
- 200
- Abschnitte im Bestand, über 50 Seiten verteilt
- 85
- Bausteine danach. Einer steht 37-mal
- 0
- Unterschiede in 95 ausgelieferten HTML-Dateien
- Schneiden Ein Werkzeug trennt jede Seite hinter jedem Abschnitt und nummeriert die Platzhalter je Stück neu.
- Zusammensetzen Dasselbe Werkzeug baut jede Seite aus den Bausteinen wieder auf. Weicht eine ab, schreibt es nichts.
- Gegenprüfen Nicht mit dem eigenen Vergleich, sondern mit diff -r über den ganzen Ausgabeordner. Kein einziger Unterschied.
- Absichern Die Bausteine bleiben aus der Redaktionsmaske draussen. Ein Speichern hätte 37 Seiten um zwei Zeichen verschoben.
Ohne Namen. Auftraggeber, Branche und Inhalte bleiben ungenannt. Die Zahlen sind echt und nachgemessen, die Leistung steht auch ohne Namen.
Die Ausgangslage
Eine gewachsene Website mit 50 Seiten. Der erste Nachbau hatte jede Seite an eine eigene Vorlage gehängt. Das funktionierte, hatte aber eine harte Grenze: Die Redaktion konnte Texte ändern, aber keinen Abschnitt verschieben und keinen neuen anlegen. Die Reihenfolge steckte in der Vorlage, also im Code.
Was ich gemacht habe
Jede Seite ist jetzt eine Liste. Jeder Eintrag nennt seinen Baustein und trägt seine eigenen Texte. Aus rund 200 Abschnitten wurden 85 Bausteine. Das Handlungsband kommt 37-mal vor, der Seitenkopf 19-mal.
Der Teil, auf den ich stolz bin
Der Schnitt beweist sich selbst. Ein Werkzeug schneidet die Seiten hinter jedem Abschnitt auseinander, nummeriert die Platzhalter neu und setzt danach jede Seite aus den Bausteinen wieder zusammen. Weicht eine ab, schreibt es gar nichts.
Geprüft wurde nicht mit dem eigenen Vergleichswerkzeug, sondern gegen den
ganzen Ausgabeordner: einmal kopieren vor dem Umbau, danach diff -r.
Ergebnis: kein einziger Unterschied in 95 HTML-Dateien. Geändert hat sich
nur die Redaktionsmaske. Das ist strenger als der eigene Vergleich, weil der
mehrfache Zeilenumbrüche wegrechnet und einen Verlust an Leerraum darum gar
nicht sehen kann.
Eine Entscheidung gegen das Naheliegende
Die Bausteine selbst stehen nicht in der Redaktionsmaske, und das ist der wichtigste Teil. Ein Baustein ist Markup, kein Inhalt. Dazu kommt ein harter Grund: Das CMS schneidet beim Speichern den Leerraum am Rand jedes Textfelds ab. Die Bausteine tragen ihren Leerraum mit Absicht, er ist der Abstand zwischen zwei Abschnitten im ausgelieferten HTML. Ein einziges Speichern hätte 37 Seiten um zwei Zeichen verschoben.
Die Redaktion wählt den Baustein deshalb aus einer Liste, die ein Werkzeug in die Maske schreibt. Nicht bequemer, aber sicher.
Was ich nicht umgestellt habe
Die Startseite und die Referenzprojekte. Sie haben eigene Masken mit festen Abschnitten, und ihre Bausteintypen kommen auf keiner anderen Seite vor. Dort lohnt der Umbau nicht. Ein Umbau, der sich nicht rechnet, bleibt aus.