Features
Überblick über die umgesetzten Funktionen von hautuu auf der Website und im Repo.
Hier siehst du, was im Projekt schon gebaut ist (Stand: öffentliches Repo auf main). Details zu Begriffen im Glossar, Antworten in der FAQ, Schritt für Schritt in den Artikeln.
Inhalte und Redaktion
- Screencast-Folgen als Artikel (001 bis 021): How-tos zu GitHub, Cursor, Cloudflare, Sveltia und Redaktion, mit Teaser, Tags und Querverweisen.
- Statische Seiten (Collection
pages): Startseite, Artikelübersicht, Tags, Glossar, FAQ, Über uns, Impressum, Datenschutz und diese Features-Seite. - Redaktionsregeln im Repo (
docs/redaktion/) und als Cursor-Regel: Schema, Stil, SEO-Felder, Bausteine, Querverlinkung, PR-Checkliste. - Transkript-basierte Folgen: Speech-to-Text korrigieren, nichts erfinden, Quellkommentar im Artikel (Folge 015).
CMS und Collections
- Sveltia CMS unter
/admin/: Inhalte im Browser bearbeiten, Speichern landet als Dateien in Git (Glossar CMS, Folge 013). - Collections für Pages, Articles, Tags, Glossar, Menüs und Bausteine (
blocks) ohne eigene URL. - Config-Collection (
config): globale Site-Einstellungen als YAML (site.yaml), kein Markdown. Gruppen Design und „Content“ (Inhalt) in der Collection Konfiguration (public/admin/config.yml). - Menüs als eigene Collection (
main,footer-legal) statt Flags an einzelnen Seiten. - Entwurfsstatus (
draft,published,future,trash) für Pages, Artikel und Glossar. - Inhaltsverzeichnis global unter Konfiguration → „Content“ → Inhaltsverzeichnis (TOC) (Seiten/Artikel: an/aus, Ebenen, Titel) und optional pro Eintrag überschreibbar.
- Inhaltsbreite in drei Stufen (Standard, breit, vollbreit): global unter Content → Breite und pro Seite/Artikel per
contentWidth. - Seiten-Header und Footer-Code für kleine HTML- oder CSS-Snippets nur auf einer Seite.
- Zugang über Cloudflare Worker mit OAuth statt nur PAT (Folge 014).
Glossar, FAQ und Tags
- Glossar mit Kurzdefinition, längerer Erklärung, verwandte Artikel (
relatedArticles) und verwandte Tags (relatedTags). - Viele Begriffe (Git, Deploy, CI/CD, Route, Bildnachweis und mehr), jeweils eigene URL unter
/glossar/<slug>/. - Erstes sinnvolles Glossar-Vorkommen pro Seite verlinkt; Hilfsskript
link-glossar-crosslinks.pyund Erstlink-Warnung im Build (check-glossar-first-links.py, nicht blockierend). - FAQ als eine lange Seite mit Themengruppen (H2), alles offen sichtbar, durchsuchbar per Strg+F (kein Accordion).
- Tag-Seiten mit Artikel-Grid und Link zum passenden Glossar-Eintrag, wenn der Slug passt.
- Tag-Wolke und Listing-Embeds für Glossar und Tags im Seiten- oder Artikeltext.
Bausteine und Embeds
- Wiederverwendbare Bausteine (
{{block id="…"}}): z. B. Stack-Grafik (stack-uebersicht) auf Startseite und in passenden Folgen (Folge 020). - Artikel-Listing im Content: Anzahl, Sortierung, Grid oder Liste, wählbare Kartenfelder inkl. Lesezeit (Folge 019).
- Trennlinie und Kontakt-E-Mail als Embed (
{{contact-email}}aus Build-Variable, nicht im Klartext). - Markdown-Embeds über die Sveltia-Toolbar; Rendering zentral in
CmsContent.astro. - Repo-Docs-Box (
{{repodoc path="docs/…"}}): Verlinkung zu Handbuch-Dateien auf GitHub, Toolbar Repo-Dokument (Folge 001 als Beispiel). - Embed-Check vor dem Build:
{{repodoc}}und{{block}}nur allein in einer Zeile, nicht mitten im Satz und nicht zwischen Listenpunkten (check-content-embeds.py).
SEO und Auffindbarkeit
- SEO-Objekt pro Page und Artikel: eigener Tab-Titel, Meta-Description, Robots-Optionen (Folge 004).
- Glossar-SEO und Tag-Beschreibungen für Suchvorschauen.
- Open Graph und Twitter Cards: Titel, Beschreibung, Canonical, optional OG-Bild aus dem Seitenhintergrund (1200×630).
- Lesezeit in Artikel-Meta und auf der Karte im Listing.
- Sitemap ohne Impressum, Datenschutz und
/admin; Legal-Seiten mit noindex. - Artikel-Übersicht (
/artikel/): Listing-Embed mit SEO-Feldern und konfigurierbaren Kartenfeldern (Titel, Teaser, Datum, Tags, Lesezeit).
Design und Nutzung
- Suche im Header (MiniSearch): statischer Suchindex beim Build, Treffer zu Artikeln, Glossar und Seiten.
- Dark Theme mit CSS-Variablen, Ubuntu-Schrift, responsive Header mit Mobile-Menü.
- Sticky Header pro Breakpoint ein/aus und Leistenhöhe in px, gesteuert über Konfiguration → Design → Header.
- Breakpoints und gemeinsame Layout-Hilfsklassen (docs/design).
- Vollbild-Hintergrund optional pro Seite oder Artikel, mit Overlay und Bildnachweis-Feld (
backgroundAttribution). - Bildnachweise gesammelt am Ende des Impressums (automatisch aus Pages und Artikeln, Folge 019).
- Bilder neben dem Content (Variante B), Astro-Optimierung inklusive CMS-Pfade unter
/assets/(Folge 021). - Externe Links öffnen in neuem Tab und zeigen im Inhalt einen kleinen Pfeil (
↗); im Header und Footer ohne Indikator. - Artikel-Navigation (älter/neuer); Listing-Seiten nutzen die Breite breit (oder vollbreit), wählbar im CMS.
Deployment und Workflow
- Statische Site mit Astro, Auslieferung über Cloudflare Pages aus GitHub
main(Folge 011). - Preview-Branches und Rollback über Cloudflare (Folge 012).
- Build-ID für Favicons und Cache-Busting;
_headersfür langes Caching von Assets. - Öffentliches Repo
platomat/hautoo, Issues und Pull Requests auf Deutsch.
Dokumentation, Qualität und Agenten
- Projekt-Doku unter
docs/(GitHub, Cloudflare, Sveltia, Astro, Redaktion, Sicherheit). - Cursor-Regeln in
.cursor/rules/(Konventionen, Redaktion, CSS, Deutsch). - Link-Check im
prebuild: kaputte Markdown-Links insrc/content(check-content-links.py, ruft Embed-Check mit auf). - Hilfsskripte z. B. Glossar-Querverweise (
link-glossar-crosslinks.py) und SEO-Bulk-Pflege (fill-seo-fields.py, manuell).
Neue Funktionen bitte hier und in der README auf GitHub nachpflegen (siehe Redaktions-Doku).
