LabCodeHub öffentliche Ansicht
Anmelden
Küpper / Quildrop öffentlich

fix: update quilldrop doku

R Rüdiger Küpper <rpr@9it.de> committete am 19.02.2026 02:33
77d8f24773dafbfa40bc7a21d1211af10546da4e
2 geänderte Datei(en) +148 −47
Kontextzeilen: 0 1 2 3 10
geändert README.md
+74 −21 Datei ansehen
@@ -78,2 +78,3 @@ Das mitgelieferte Theme bietet:
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
@@ -118,3 +119,43 @@ Die Startseite zeigt eine konfigurierbare Anzahl von Posts pro Seite (Standard:
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
@@ -135 +176 @@ Seiten werden als Markdown-Dateien im `sites/`-Verzeichnis abgelegt. Verschachte
135 -
Automatisch generierter RSS 2.0 Feed unter `/feed.xml` mit:
176 +
Automatisch generierter RSS 2.0 Feed unter `/index.xml` mit:
@@ -140,0 +182 @@ Automatisch generierter RSS 2.0 Feed unter `/feed.xml` mit:
182 +
- URL `/index.xml` für Kompatibilität mit bestehenden Blog-Setups
@@ -170 +212,3 @@ quilldrop/
170 -
│   ├── js/theme.js
212 +
│   ├── js/
213 +
│   │   ├── theme.js                 # Dark/Light Toggle + TOC Generator
214 +
│   │   └── search.js                # Client-seitige Volltextsuche
@@ -175 +219 @@ quilldrop/
175 -
│   │   ├── post.go                  # Post Struct + FlexTime
219 +
│   │   ├── post.go                  # Post Struct + FlexTime + Tags/Categories
@@ -179 +223,3 @@ quilldrop/
179 -
│   ├── generator/generator.go       # Static Site Generator
223 +
│   ├── generator/
224 +
│   │   ├── generator.go             # Static Site Generator
225 +
│   │   └── search.go                # Search-Index Generator (JSON)
@@ -183 +229 @@ quilldrop/
183 -
│       ├── base.html                # Base Layout
229 +
│       ├── base.html                # Base Layout + Navbar + Suche
@@ -185 +231 @@ quilldrop/
185 -
│       ├── post.html                # Einzelner Post
231 +
│       ├── post.html                # Einzelner Post + Prev/Next Navigation
@@ -188 +234,3 @@ quilldrop/
188 -
│       └── tag.html                 # Tag-Seite
234 +
│       ├── tag.html                 # Tag-Seite
235 +
│       ├── categories.html          # Kategorie-Übersicht
236 +
│       └── category.html            # Kategorie-Seite
@@ -204 +252 @@ quilldrop/
204 -
| JavaScript | Vanilla JS (kein Framework) |
252 +
| JavaScript | Vanilla JS — Theme Toggle, Suche, TOC (kein Framework) |
@@ -326,0 +375,2 @@ Die generierten Dateien im `output/`-Verzeichnis können direkt auf einen Webser
375 +
Alle URLs verwenden konsequent Trailing Slashes, um serverseitige Redirects zu vermeiden:
376 +
@@ -330,7 +380,10 @@ Die generierten Dateien im `output/`-Verzeichnis können direkt auf einen Webser
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) |
@@ -344 +397 @@ Die generierten Dateien im `output/`-Verzeichnis können direkt auf einen Webser
344 -
- **Keine JS-Frameworks** - Vanilla JavaScript, unter 90 Zeilen
397 +
- **Keine JS-Frameworks** - Vanilla JavaScript für Theme, Suche und TOC
geändert sites/projects/quilldrop/index.md
+74 −26 Datei ansehen
@@ -83,2 +83,3 @@ Das mitgelieferte Theme bietet:
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
@@ -123,3 +124,43 @@ Die Startseite zeigt eine konfigurierbare Anzahl von Posts pro Seite (Standard:
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
@@ -140 +181 @@ Seiten werden als Markdown-Dateien im `sites/`-Verzeichnis abgelegt. Verschachte
140 -
Automatisch generierter RSS 2.0 Feed unter `/feed.xml` mit:
181 +
Automatisch generierter RSS 2.0 Feed unter `/index.xml` mit:
@@ -145,0 +187 @@ Automatisch generierter RSS 2.0 Feed unter `/feed.xml` mit:
187 +
- URL `/index.xml` für Kompatibilität mit bestehenden Blog-Setups
@@ -175 +217,3 @@ quilldrop/
175 -
│   ├── js/theme.js
217 +
│   ├── js/
218 +
│   │   ├── theme.js                 # Dark/Light Toggle + TOC Generator
219 +
│   │   └── search.js                # Client-seitige Volltextsuche
@@ -180 +224 @@ quilldrop/
180 -
│   │   ├── post.go                  # Post Struct + FlexTime
224 +
│   │   ├── post.go                  # Post Struct + FlexTime + Tags/Categories
@@ -184 +228,3 @@ quilldrop/
184 -
│   ├── generator/generator.go       # Static Site Generator
228 +
│   ├── generator/
229 +
│   │   ├── generator.go             # Static Site Generator
230 +
│   │   └── search.go                # Search-Index Generator (JSON)
@@ -188 +234 @@ quilldrop/
188 -
│       ├── base.html                # Base Layout
234 +
│       ├── base.html                # Base Layout + Navbar + Suche
@@ -190 +236 @@ quilldrop/
190 -
│       ├── post.html                # Einzelner Post
236 +
│       ├── post.html                # Einzelner Post + Prev/Next Navigation
@@ -193 +239,3 @@ quilldrop/
193 -
│       └── tag.html                 # Tag-Seite
239 +
│       ├── tag.html                 # Tag-Seite
240 +
│       ├── categories.html          # Kategorie-Übersicht
241 +
│       └── category.html            # Kategorie-Seite
@@ -209 +257 @@ quilldrop/
209 -
| JavaScript | Vanilla JS (kein Framework) |
257 +
| JavaScript | Vanilla JS — Theme Toggle, Suche, TOC (kein Framework) |
@@ -304,5 +351,0 @@ Das ist mein erster Post mit **QuillDrop**.
304 -
## Code-Beispiel
305 -
306 -
```go
307 -
fmt.Println("Hello QuillDrop!")
308 -
```
@@ -336,0 +380,2 @@ Die generierten Dateien im `output/`-Verzeichnis können direkt auf einen Webser
380 +
Alle URLs verwenden konsequent Trailing Slashes, um serverseitige Redirects zu vermeiden:
381 +
@@ -340,7 +385,10 @@ Die generierten Dateien im `output/`-Verzeichnis können direkt auf einen Webser
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) |
@@ -354 +402 @@ Die generierten Dateien im `output/`-Verzeichnis können direkt auf einen Webser
354 -
- **Keine JS-Frameworks** - Vanilla JavaScript, unter 90 Zeilen
402 +
- **Keine JS-Frameworks** - Vanilla JavaScript für Theme, Suche und TOC