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.py und 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; _headers fü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 in src/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).