Statische, mehrsprachige Website (DE/EN/FR) auf Basis von Eleventy und DSFR.
- Eleventy 2
- Nunjucks + Markdown
- DSFR (Design System)
- Pagefind (Suche)
- Eleventy Navigation + Pagination
- RSS/JSON Feed + ICS Kalender
- Mehrsprachige Inhalte in Deutsch, Englisch und Franzoesisch
- Saubere Navigation mit Sprachwechsel im Header
- Blog inklusive Tags, Pagination und Feed
- Deployment auf Netlify
- Node.js 20 empfohlen
- npm
git clone https://github.com/a-lottes/lottes.dev.git
cd lottes.dev
npm installnpm startnpm run buildBuild-Output liegt in _site/.
npm start: lokaler Dev-Servernpm run build: Produktionsbuild (inkl.postbuild)npm run debug: Eleventy Debug-Ausgabenpm run debugstart: Dev-Server mit Debug-Ausgabenpm run benchmark: Eleventy Benchmark-Ausgabe
content/: Seiten und Blog-Inhalte pro Sprache_data/: globale Daten, Metadaten, i18n-Strings_includes/: Layouts, Templates und Komponentenpublic/: statische Assets (CSS, JS, Bilder, Icons)_site/: generierter Output
- DE:
content/de/ - EN:
content/en/ - FR:
content/fr/
_data/i18n/de/index.js_data/i18n/en/index.js_data/i18n/fr/index.js
Fuer korrekte Zuordnung derselben Artikel in unterschiedlichen Sprachen wird translationKey im Frontmatter verwendet.
Beispiel:
translationKey: agent-workflow-in-practiceWenn ein Artikel keine Uebersetzung hat, ist der Sprachlink im Header auf der Zielsprache deaktiviert.
Die Netlify-Konfiguration ist in netlify.toml hinterlegt:
- Build Command:
npm run build - Publish Directory:
_site - Node Version:
20
Wichtig: Im Netlify UI darf Publish Directory nicht auf public stehen, sonst wird nur die Asset-Struktur statt der generierten Website ausgeliefert.
- Datei im passenden Sprachordner unter
content/{lang}/...erstellen. - Frontmatter setzen (
title,layout, optionaleleventyNavigation). - Bei Navigationsseiten
eleventyNavigationsauber pflegen.
- Datei in
content/{lang}/blog/posts/anlegen. - Frontmatter mit
title,description,date,tagssetzen. - Bei mehrsprachigen Pendants den gleichen
translationKeyverwenden.
- Pruefen, ob die betroffenen Posts denselben
translationKeynutzen. - Pruefen, ob alle Sprachvarianten im passenden Ordner existieren.
In seltenen Faellen liegen alte Dateien noch in _site/.
rm -rf _site
npm run build- Code: MIT
- Inhalte/Assets: siehe Dateien unter
LICENSES/