fix: update quilldrop doku
R
Rüdiger Küpper
<rpr@9it.de>
committete am 19.02.2026 02:33
77d8f24773dafbfa40bc7a21d1211af10546da4e
| @@ -77,4 +77,5 @@ Das mitgelieferte Theme bietet: | ||
| 77 | 77 | - **Responsive Layout** - Mobile-first, optimiert für alle Bildschirmgrößen |
| 78 | -- **Hamburger-Navigation** auf mobilen Geräten mit Fullscreen-Overlay |
|
| 79 | -- **Dropdown-Menus** für verschachtelte Navigation |
|
| 78 | +- **Hamburger-Navigation** auf mobilen Geräten mit Fullscreen-Overlay und eigenem Stacking Context |
|
| 79 | +- **Dropdown-Menus** für verschachtelte Navigation (Touch-optimiert auf Mobile) |
|
| 80 | +- **Integrierte Suche** — Lupe in der Navbar mit Ctrl+K Shortcut |
|
| 80 | 81 | - **Typographie** - Inter als Textfont, JetBrains Mono für Code und Metadaten |
| @@ -117,5 +118,45 @@ Die Startseite zeigt eine konfigurierbare Anzahl von Posts pro Seite (Standard: | ||
| 117 | 118 | |
| 118 | -- **Tag-Übersicht** unter `/tags` mit Anzahl der Posts pro Tag |
|
| 119 | -- **Tag-Seiten** unter `/tags/kubernetes` mit allen Posts eines Tags |
|
| 120 | -- **Tag-Badges** auf Post-Cards und Einzelseiten |
|
| 119 | +QuillDrop unterstützt sowohl Tags als auch Kategorien zur Strukturierung von Inhalten: |
|
| 120 | + | |
| 121 | +- **Tag-Übersicht** unter `/tags/` mit Anzahl der Posts pro Tag |
|
| 122 | +- **Tag-Seiten** unter `/tags/kubernetes/` mit allen Posts eines Tags |
|
| 123 | +- **Kategorie-Übersicht** unter `/categories/` mit Anzahl der Posts pro Kategorie |
|
| 124 | +- **Kategorie-Seiten** unter `/categories/technik/` mit allen Posts einer Kategorie |
|
| 125 | +- **Tag- und Kategorie-Badges** auf Post-Cards und Einzelseiten |
|
| 126 | +- Tags und Kategorien werden aus dem YAML-Frontmatter (`tags`, `categories`) ausgelesen |
|
| 127 | + | |
| 128 | +### Volltextsuche |
|
| 129 | + | |
| 130 | +QuillDrop enthält eine integrierte Client-seitige Suche, die komplett ohne Backend auskommt: |
|
| 131 | + | |
| 132 | +- **Suchindex** — Beim Generieren wird eine `search-index.json` mit allen Posts erstellt |
|
| 133 | +- **Lazy Loading** — Der Suchindex wird erst beim ersten Öffnen der Suche geladen |
|
| 134 | +- **Multi-Term-Suche** — Mehrere Suchbegriffe werden mit UND verknüpft |
|
| 135 | +- **Felder** — Durchsucht Titel, Vorschau, Tags und Kategorien |
|
| 136 | +- **Keyboard-Shortcut** — `Ctrl+K` / `Cmd+K` öffnet die Suche |
|
| 137 | +- **Lupe in der Navbar** — Klick auf das Such-Icon öffnet das Suchfeld |
|
| 138 | +- **Debounce** — Suchergebnisse erscheinen nach 200ms Tippverzögerung |
|
| 139 | +- **Maximal 8 Treffer** mit Highlighting der Suchbegriffe |
|
| 140 | +- **Escape** oder Klick außerhalb schließt die Suche |
|
| 141 | +- Kein externer Dienst, kein Framework — reines Vanilla JavaScript |
|
| 142 | + | |
| 143 | +### Artikel-Navigation |
|
| 144 | + | |
| 145 | +Am Ende jedes Blog-Posts wird eine Navigation zum vorherigen und nächsten Artikel angezeigt: |
|
| 146 | + | |
| 147 | +- **Neuerer Artikel** (← links) — Verlinkt zum chronologisch neueren Post |
|
| 148 | +- **Älterer Artikel** (→ rechts) — Verlinkt zum chronologisch älteren Post |
|
| 149 | +- Beim neuesten Artikel wird nur "Älterer Artikel" angezeigt |
|
| 150 | +- Beim ältesten Artikel wird nur "Neuerer Artikel" angezeigt |
|
| 151 | +- Zeigt jeweils den Titel des verlinkten Artikels an |
|
| 152 | + | |
| 153 | +### Inhaltsverzeichnis (Table of Contents) |
|
| 154 | + | |
| 155 | +Posts können ein automatisch generiertes Inhaltsverzeichnis aktivieren: |
|
| 156 | + | |
| 157 | +- Aktivierung über `toc: true` im Frontmatter |
|
| 158 | +- Unterstützt **H1, H2 und H3** Überschriften |
|
| 159 | +- **Relative Einrückung** — Das TOC erkennt die minimale Heading-Ebene und rückt relativ dazu ein |
|
| 160 | +- Automatische Anchor-Links zu den jeweiligen Überschriften |
|
| 161 | +- Wird client-seitig generiert für schnelle Seitenladezeit |
|
| 121 | 162 | |
| @@ -134,3 +175,3 @@ Seiten werden als Markdown-Dateien im `sites/`-Verzeichnis abgelegt. Verschachte | ||
| 134 | 175 | |
| 135 | -Automatisch generierter RSS 2.0 Feed unter `/feed.xml` mit: |
|
| 176 | +Automatisch generierter RSS 2.0 Feed unter `/index.xml` mit: |
|
| 136 | 177 | |
| @@ -140,2 +181,3 @@ Automatisch generierter RSS 2.0 Feed unter `/feed.xml` mit: | ||
| 140 | 181 | - RSS-Icon in der Navigation |
| 182 | +- URL `/index.xml` für Kompatibilität mit bestehenden Blog-Setups |
|
| 141 | 183 | |
| @@ -169,3 +211,5 @@ quilldrop/ | ||
| 169 | 211 | │ ├── css/style.css |
| 170 | -│ ├── js/theme.js |
|
| 212 | +│ ├── js/ |
|
| 213 | +│ │ ├── theme.js # Dark/Light Toggle + TOC Generator |
|
| 214 | +│ │ └── search.js # Client-seitige Volltextsuche |
|
| 171 | 215 | │ └── images/ |
| @@ -174,3 +218,3 @@ quilldrop/ | ||
| 174 | 218 | │ ├── content/ |
| 175 | -│ │ ├── post.go # Post Struct + FlexTime |
|
| 219 | +│ │ ├── post.go # Post Struct + FlexTime + Tags/Categories |
|
| 176 | 220 | │ │ ├── parser.go # Markdown + Frontmatter Parser |
| @@ -178,3 +222,5 @@ quilldrop/ | ||
| 178 | 222 | │ ├── server/server.go # HTTP Server |
| 179 | -│ ├── generator/generator.go # Static Site Generator |
|
| 223 | +│ ├── generator/ |
|
| 224 | +│ │ ├── generator.go # Static Site Generator |
|
| 225 | +│ │ └── search.go # Search-Index Generator (JSON) |
|
| 180 | 226 | │ └── templates/ |
| @@ -182,8 +228,10 @@ quilldrop/ | ||
| 182 | 228 | │ ├── rss.go # RSS Feed Generator |
| 183 | -│ ├── base.html # Base Layout |
|
| 229 | +│ ├── base.html # Base Layout + Navbar + Suche |
|
| 184 | 230 | │ ├── home.html # Homepage + Pagination |
| 185 | -│ ├── post.html # Einzelner Post |
|
| 231 | +│ ├── post.html # Einzelner Post + Prev/Next Navigation |
|
| 186 | 232 | │ ├── page.html # Statische Seite |
| 187 | 233 | │ ├── tags.html # Tag-Übersicht |
| 188 | -│ └── tag.html # Tag-Seite |
|
| 234 | +│ ├── tag.html # Tag-Seite |
|
| 235 | +│ ├── categories.html # Kategorie-Übersicht |
|
| 236 | +│ └── category.html # Kategorie-Seite |
|
| 189 | 237 | └── output/ # Generierte statische Dateien |
| @@ -203,3 +251,3 @@ quilldrop/ | ||
| 203 | 251 | | CSS | Vanilla CSS mit Custom Properties | |
| 204 | -| JavaScript | Vanilla JS (kein Framework) | |
|
| 252 | +| JavaScript | Vanilla JS — Theme Toggle, Suche, TOC (kein Framework) | |
|
| 205 | 253 | |
| @@ -326,2 +374,4 @@ Die generierten Dateien im `output/`-Verzeichnis können direkt auf einen Webser | ||
| 326 | 374 | |
| 375 | +Alle URLs verwenden konsequent Trailing Slashes, um serverseitige Redirects zu vermeiden: |
|
| 376 | + | |
| 327 | 377 | | URL | Beschreibung | |
| @@ -329,9 +379,12 @@ Die generierten Dateien im `output/`-Verzeichnis können direkt auf einen Webser | ||
| 329 | 379 | | `/` | Startseite (letzte N Posts) | |
| 330 | -| `/page/2` | Seite 2 der Post-Liste | |
|
| 331 | -| `/posts/2025-11-06-mein-post` | Einzelner Blog-Post | |
|
| 332 | -| `/tags` | Tag-Übersicht | |
|
| 333 | -| `/tags/kubernetes` | Posts mit Tag "Kubernetes" | |
|
| 334 | -| `/sites/ueber-mich` | Statische Seite | |
|
| 335 | -| `/sites/projekte/vm-tracker` | Verschachtelte Projektseite | |
|
| 336 | -| `/feed.xml` | RSS Feed | |
|
| 380 | +| `/page/2/` | Seite 2 der Post-Liste | |
|
| 381 | +| `/posts/2025-11-06-mein-post/` | Einzelner Blog-Post | |
|
| 382 | +| `/tags/` | Tag-Übersicht | |
|
| 383 | +| `/tags/kubernetes/` | Posts mit Tag "Kubernetes" | |
|
| 384 | +| `/categories/` | Kategorie-Übersicht | |
|
| 385 | +| `/categories/technik/` | Posts in Kategorie "Technik" | |
|
| 386 | +| `/sites/ueber-mich/` | Statische Seite | |
|
| 387 | +| `/sites/projekte/vm-tracker/` | Verschachtelte Projektseite | |
|
| 388 | +| `/index.xml` | RSS Feed | |
|
| 389 | +| `/search-index.json` | Suchindex (JSON) | |
|
| 337 | 390 | | `/static/css/style.css` | Statische Assets | |
| @@ -343,3 +396,3 @@ Die generierten Dateien im `output/`-Verzeichnis können direkt auf einen Webser | ||
| 343 | 396 | - **Keine Build-Pipeline** - Ein `go build` und fertig |
| 344 | -- **Keine JS-Frameworks** - Vanilla JavaScript, unter 90 Zeilen |
|
| 397 | +- **Keine JS-Frameworks** - Vanilla JavaScript für Theme, Suche und TOC |
|
| 345 | 398 | - **Minimale Dependencies** - 5 Go-Packages, alle fokussiert auf Markdown |
| @@ -82,4 +82,5 @@ Das mitgelieferte Theme bietet: | ||
| 82 | 82 | - **Responsive Layout** - Mobile-first, optimiert für alle Bildschirmgrößen |
| 83 | -- **Hamburger-Navigation** auf mobilen Geräten mit Fullscreen-Overlay |
|
| 84 | -- **Dropdown-Menus** für verschachtelte Navigation |
|
| 83 | +- **Hamburger-Navigation** auf mobilen Geräten mit Fullscreen-Overlay und eigenem Stacking Context |
|
| 84 | +- **Dropdown-Menus** für verschachtelte Navigation (Touch-optimiert auf Mobile) |
|
| 85 | +- **Integrierte Suche** — Lupe in der Navbar mit Ctrl+K Shortcut |
|
| 85 | 86 | - **Typographie** - Inter als Textfont, JetBrains Mono für Code und Metadaten |
| @@ -122,5 +123,45 @@ Die Startseite zeigt eine konfigurierbare Anzahl von Posts pro Seite (Standard: | ||
| 122 | 123 | |
| 123 | -- **Tag-Übersicht** unter `/tags` mit Anzahl der Posts pro Tag |
|
| 124 | -- **Tag-Seiten** unter `/tags/kubernetes` mit allen Posts eines Tags |
|
| 125 | -- **Tag-Badges** auf Post-Cards und Einzelseiten |
|
| 124 | +QuillDrop unterstützt sowohl Tags als auch Kategorien zur Strukturierung von Inhalten: |
|
| 125 | + | |
| 126 | +- **Tag-Übersicht** unter `/tags/` mit Anzahl der Posts pro Tag |
|
| 127 | +- **Tag-Seiten** unter `/tags/kubernetes/` mit allen Posts eines Tags |
|
| 128 | +- **Kategorie-Übersicht** unter `/categories/` mit Anzahl der Posts pro Kategorie |
|
| 129 | +- **Kategorie-Seiten** unter `/categories/technik/` mit allen Posts einer Kategorie |
|
| 130 | +- **Tag- und Kategorie-Badges** auf Post-Cards und Einzelseiten |
|
| 131 | +- Tags und Kategorien werden aus dem YAML-Frontmatter (`tags`, `categories`) ausgelesen |
|
| 132 | + | |
| 133 | +### Volltextsuche |
|
| 134 | + | |
| 135 | +QuillDrop enthält eine integrierte Client-seitige Suche, die komplett ohne Backend auskommt: |
|
| 136 | + | |
| 137 | +- **Suchindex** — Beim Generieren wird eine `search-index.json` mit allen Posts erstellt |
|
| 138 | +- **Lazy Loading** — Der Suchindex wird erst beim ersten Öffnen der Suche geladen |
|
| 139 | +- **Multi-Term-Suche** — Mehrere Suchbegriffe werden mit UND verknüpft |
|
| 140 | +- **Felder** — Durchsucht Titel, Vorschau, Tags und Kategorien |
|
| 141 | +- **Keyboard-Shortcut** — `Ctrl+K` / `Cmd+K` öffnet die Suche |
|
| 142 | +- **Lupe in der Navbar** — Klick auf das Such-Icon öffnet das Suchfeld |
|
| 143 | +- **Debounce** — Suchergebnisse erscheinen nach 200ms Tippverzögerung |
|
| 144 | +- **Maximal 8 Treffer** mit Highlighting der Suchbegriffe |
|
| 145 | +- **Escape** oder Klick außerhalb schließt die Suche |
|
| 146 | +- Kein externer Dienst, kein Framework — reines Vanilla JavaScript |
|
| 147 | + | |
| 148 | +### Artikel-Navigation |
|
| 149 | + | |
| 150 | +Am Ende jedes Blog-Posts wird eine Navigation zum vorherigen und nächsten Artikel angezeigt: |
|
| 151 | + | |
| 152 | +- **Neuerer Artikel** (← links) — Verlinkt zum chronologisch neueren Post |
|
| 153 | +- **Älterer Artikel** (→ rechts) — Verlinkt zum chronologisch älteren Post |
|
| 154 | +- Beim neuesten Artikel wird nur "Älterer Artikel" angezeigt |
|
| 155 | +- Beim ältesten Artikel wird nur "Neuerer Artikel" angezeigt |
|
| 156 | +- Zeigt jeweils den Titel des verlinkten Artikels an |
|
| 157 | + | |
| 158 | +### Inhaltsverzeichnis (Table of Contents) |
|
| 159 | + | |
| 160 | +Posts können ein automatisch generiertes Inhaltsverzeichnis aktivieren: |
|
| 161 | + | |
| 162 | +- Aktivierung über `toc: true` im Frontmatter |
|
| 163 | +- Unterstützt **H1, H2 und H3** Überschriften |
|
| 164 | +- **Relative Einrückung** — Das TOC erkennt die minimale Heading-Ebene und rückt relativ dazu ein |
|
| 165 | +- Automatische Anchor-Links zu den jeweiligen Überschriften |
|
| 166 | +- Wird client-seitig generiert für schnelle Seitenladezeit |
|
| 126 | 167 | |
| @@ -139,3 +180,3 @@ Seiten werden als Markdown-Dateien im `sites/`-Verzeichnis abgelegt. Verschachte | ||
| 139 | 180 | |
| 140 | -Automatisch generierter RSS 2.0 Feed unter `/feed.xml` mit: |
|
| 181 | +Automatisch generierter RSS 2.0 Feed unter `/index.xml` mit: |
|
| 141 | 182 | |
| @@ -145,2 +186,3 @@ Automatisch generierter RSS 2.0 Feed unter `/feed.xml` mit: | ||
| 145 | 186 | - RSS-Icon in der Navigation |
| 187 | +- URL `/index.xml` für Kompatibilität mit bestehenden Blog-Setups |
|
| 146 | 188 | |
| @@ -174,3 +216,5 @@ quilldrop/ | ||
| 174 | 216 | │ ├── css/style.css |
| 175 | -│ ├── js/theme.js |
|
| 217 | +│ ├── js/ |
|
| 218 | +│ │ ├── theme.js # Dark/Light Toggle + TOC Generator |
|
| 219 | +│ │ └── search.js # Client-seitige Volltextsuche |
|
| 176 | 220 | │ └── images/ |
| @@ -179,3 +223,3 @@ quilldrop/ | ||
| 179 | 223 | │ ├── content/ |
| 180 | -│ │ ├── post.go # Post Struct + FlexTime |
|
| 224 | +│ │ ├── post.go # Post Struct + FlexTime + Tags/Categories |
|
| 181 | 225 | │ │ ├── parser.go # Markdown + Frontmatter Parser |
| @@ -183,3 +227,5 @@ quilldrop/ | ||
| 183 | 227 | │ ├── server/server.go # HTTP Server |
| 184 | -│ ├── generator/generator.go # Static Site Generator |
|
| 228 | +│ ├── generator/ |
|
| 229 | +│ │ ├── generator.go # Static Site Generator |
|
| 230 | +│ │ └── search.go # Search-Index Generator (JSON) |
|
| 185 | 231 | │ └── templates/ |
| @@ -187,8 +233,10 @@ quilldrop/ | ||
| 187 | 233 | │ ├── rss.go # RSS Feed Generator |
| 188 | -│ ├── base.html # Base Layout |
|
| 234 | +│ ├── base.html # Base Layout + Navbar + Suche |
|
| 189 | 235 | │ ├── home.html # Homepage + Pagination |
| 190 | -│ ├── post.html # Einzelner Post |
|
| 236 | +│ ├── post.html # Einzelner Post + Prev/Next Navigation |
|
| 191 | 237 | │ ├── page.html # Statische Seite |
| 192 | 238 | │ ├── tags.html # Tag-Übersicht |
| 193 | -│ └── tag.html # Tag-Seite |
|
| 239 | +│ ├── tag.html # Tag-Seite |
|
| 240 | +│ ├── categories.html # Kategorie-Übersicht |
|
| 241 | +│ └── category.html # Kategorie-Seite |
|
| 194 | 242 | └── output/ # Generierte statische Dateien |
| @@ -208,3 +256,3 @@ quilldrop/ | ||
| 208 | 256 | | CSS | Vanilla CSS mit Custom Properties | |
| 209 | -| JavaScript | Vanilla JS (kein Framework) | |
|
| 257 | +| JavaScript | Vanilla JS — Theme Toggle, Suche, TOC (kein Framework) | |
|
| 210 | 258 | |
| @@ -303,7 +351,2 @@ Das ist mein erster Post mit **QuillDrop**. | ||
| 303 | 351 | |
| 304 | -## Code-Beispiel |
|
| 305 | - | |
| 306 | -```go |
|
| 307 | -fmt.Println("Hello QuillDrop!") |
|
| 308 | -``` |
|
| 309 | 352 | ``` |
| @@ -336,2 +379,4 @@ Die generierten Dateien im `output/`-Verzeichnis können direkt auf einen Webser | ||
| 336 | 379 | |
| 380 | +Alle URLs verwenden konsequent Trailing Slashes, um serverseitige Redirects zu vermeiden: |
|
| 381 | + | |
| 337 | 382 | | URL | Beschreibung | |
| @@ -339,9 +384,12 @@ Die generierten Dateien im `output/`-Verzeichnis können direkt auf einen Webser | ||
| 339 | 384 | | `/` | Startseite (letzte N Posts) | |
| 340 | -| `/page/2` | Seite 2 der Post-Liste | |
|
| 341 | -| `/posts/2025-11-06-mein-post` | Einzelner Blog-Post | |
|
| 342 | -| `/tags` | Tag-Übersicht | |
|
| 343 | -| `/tags/kubernetes` | Posts mit Tag "Kubernetes" | |
|
| 344 | -| `/sites/ueber-mich` | Statische Seite | |
|
| 345 | -| `/sites/projekte/vm-tracker` | Verschachtelte Projektseite | |
|
| 346 | -| `/feed.xml` | RSS Feed | |
|
| 385 | +| `/page/2/` | Seite 2 der Post-Liste | |
|
| 386 | +| `/posts/2025-11-06-mein-post/` | Einzelner Blog-Post | |
|
| 387 | +| `/tags/` | Tag-Übersicht | |
|
| 388 | +| `/tags/kubernetes/` | Posts mit Tag "Kubernetes" | |
|
| 389 | +| `/categories/` | Kategorie-Übersicht | |
|
| 390 | +| `/categories/technik/` | Posts in Kategorie "Technik" | |
|
| 391 | +| `/sites/ueber-mich/` | Statische Seite | |
|
| 392 | +| `/sites/projekte/vm-tracker/` | Verschachtelte Projektseite | |
|
| 393 | +| `/index.xml` | RSS Feed | |
|
| 394 | +| `/search-index.json` | Suchindex (JSON) | |
|
| 347 | 395 | | `/static/css/style.css` | Statische Assets | |
| @@ -353,3 +401,3 @@ Die generierten Dateien im `output/`-Verzeichnis können direkt auf einen Webser | ||
| 353 | 401 | - **Keine Build-Pipeline** - Ein `go build` und fertig |
| 354 | -- **Keine JS-Frameworks** - Vanilla JavaScript, unter 90 Zeilen |
|
| 402 | +- **Keine JS-Frameworks** - Vanilla JavaScript für Theme, Suche und TOC |
|
| 355 | 403 | - **Minimale Dependencies** - 5 Go-Packages, alle fokussiert auf Markdown |