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
@@ -76,6 +76,7 @@ Das mitgelieferte Theme bietet:
76 76
- **Futuristisches Design** - Dunkle Hintergrunde, Cyan-Akzente, subtile Glow-Effekte
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
81 82
@@ -116,7 +117,47 @@ Die Startseite zeigt eine konfigurierbare Anzahl von Posts pro Seite (Standard:
116 117
### Tags und Kategorien
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
122 163
### Statische Seiten
@@ -133,5 +174,5 @@ Seiten werden als Markdown-Dateien im `sites/`-Verzeichnis abgelegt. Verschachte
133 174
### RSS Feed
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
137 178
- Den letzten 20 Posts
@@ -139,4 +180,5 @@ Automatisch generierter RSS 2.0 Feed unter `/feed.xml` mit:
139 180
- RSS-Autodiscovery im HTML-Head
140 181
- RSS-Icon in der Navigation
182 +
- URL `/index.xml` für Kompatibilität mit bestehenden Blog-Setups
141 183
142 184
### Cover-Bilder
@@ -168,23 +210,29 @@ quilldrop/
168 210
├── static/                          # Statische Assets
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/
172 216
├── internal/
173 217
│   ├── config/config.go             # YAML Config Loader
174 218
│   ├── content/
175 -
│   │   ├── post.go                  # Post Struct + FlexTime
219 +
│   │   ├── post.go                  # Post Struct + FlexTime + Tags/Categories
176 220
│   │   ├── parser.go                # Markdown + Frontmatter Parser
177 221
│   │   └── page.go                  # Statische Seiten Parser
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/
181 227
│       ├── render.go                # Template Engine + Functions
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
190 238
```
@@ -202,5 +250,5 @@ quilldrop/
202 250
| Fonts | Inter + JetBrains Mono (Google Fonts) |
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
206 254
### Dependencies
@@ -325,14 +373,19 @@ Die generierten Dateien im `output/`-Verzeichnis können direkt auf einen Webser
325 373
## URL-Schema
326 374
375 +
Alle URLs verwenden konsequent Trailing Slashes, um serverseitige Redirects zu vermeiden:
376 +
327 377
| URL | Beschreibung |
328 378
|-----|-------------|
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 |
338 391
| `/images/posts/2025/11/cover.webp` | Bilder |
@@ -342,5 +395,5 @@ Die generierten Dateien im `output/`-Verzeichnis können direkt auf einen Webser
342 395
- **Keine Datenbank** - Dateisystem als einzige Datenquelle
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
346 399
- **Blitzschnell** - Generiert 100+ Posts in unter 3 Sekunden
geändert sites/projects/quilldrop/index.md
+74 −26 Datei ansehen
@@ -81,6 +81,7 @@ Das mitgelieferte Theme bietet:
81 81
- **Futuristisches Design** - Dunkle Hintergrunde, Cyan-Akzente, subtile Glow-Effekte
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
86 87
@@ -121,7 +122,47 @@ Die Startseite zeigt eine konfigurierbare Anzahl von Posts pro Seite (Standard:
121 122
### Tags und Kategorien
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
127 168
### Statische Seiten
@@ -138,5 +179,5 @@ Seiten werden als Markdown-Dateien im `sites/`-Verzeichnis abgelegt. Verschachte
138 179
### RSS Feed
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
142 183
- Den letzten 20 Posts
@@ -144,4 +185,5 @@ Automatisch generierter RSS 2.0 Feed unter `/feed.xml` mit:
144 185
- RSS-Autodiscovery im HTML-Head
145 186
- RSS-Icon in der Navigation
187 +
- URL `/index.xml` für Kompatibilität mit bestehenden Blog-Setups
146 188
147 189
### Cover-Bilder
@@ -173,23 +215,29 @@ quilldrop/
173 215
├── static/                          # Statische Assets
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/
177 221
├── internal/
178 222
│   ├── config/config.go             # YAML Config Loader
179 223
│   ├── content/
180 -
│   │   ├── post.go                  # Post Struct + FlexTime
224 +
│   │   ├── post.go                  # Post Struct + FlexTime + Tags/Categories
181 225
│   │   ├── parser.go                # Markdown + Frontmatter Parser
182 226
│   │   └── page.go                  # Statische Seiten Parser
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/
186 232
│       ├── render.go                # Template Engine + Functions
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
195 243
```
@@ -207,5 +255,5 @@ quilldrop/
207 255
| Fonts | Inter + JetBrains Mono (Google Fonts) |
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
211 259
### Dependencies
@@ -302,9 +350,4 @@ toc: false
302 350
Das ist mein erster Post mit **QuillDrop**.
303 351
304 -
## Code-Beispiel
305 -
306 -
```go
307 -
fmt.Println("Hello QuillDrop!")
308 -
```
309 352
```
310 353
@@ -335,14 +378,19 @@ Die generierten Dateien im `output/`-Verzeichnis können direkt auf einen Webser
335 378
## URL-Schema
336 379
380 +
Alle URLs verwenden konsequent Trailing Slashes, um serverseitige Redirects zu vermeiden:
381 +
337 382
| URL | Beschreibung |
338 383
|-----|-------------|
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 |
348 396
| `/images/posts/2025/11/cover.webp` | Bilder |
@@ -352,5 +400,5 @@ Die generierten Dateien im `output/`-Verzeichnis können direkt auf einen Webser
352 400
- **Keine Datenbank** - Dateisystem als einzige Datenquelle
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
356 404
- **Blitzschnell** - Generiert 100+ Posts in unter 3 Sekunden