You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Great Docs lets you categorize pages with tags for improved discoverability. Add tags to any user guide, recipe, or custom section page via frontmatter, and Great Docs will generate a tags index page, render tag pills above page titles, and support hierarchical tag organization.
11
+
As a documentation site grows, the sidebar and search bar are not always enough to help readers find
12
+
what they need. Tags offer a second axis of navigation, organized by topic rather than page order. A
13
+
reader looking for everything related to "Testing" can find it in one place, even if those pages are
14
+
spread across the User Guide, Recipes, and custom sections.
15
+
16
+
Great Docs lets you categorize pages with tags for improved discoverability. Add tags to any user
17
+
guide, recipe, or custom section page via frontmatter, and Great Docs will generate a tags index
18
+
page, render tag pills above page titles, and support hierarchical tag organization.
Tags can be any string. They are case-sensitive, so `Python` and `python` are treated as different tags.
140
+
Tags can be any string. They are case-sensitive, so `Python` and `python` are treated as different
141
+
tags.
38
142
39
143
## Tags Index Page
40
144
41
-
When tags are enabled, Great Docs automatically generates a `tags/index.qmd` page that lists every tag and the pages associated with it. A "Tags" link is added to the site's top navigation bar (positioned before "Reference").
145
+
When tags are enabled, Great Docs automatically generates a `tags/index.qmd` page that lists every
146
+
tag and the pages associated with it. A "Tags" link is added to the site's top navigation bar
147
+
(positioned before "Reference").
42
148
43
-
Each tag becomes a heading on the index page, with links to all pages that use that tag. Section badges (e.g., "User Guide", "Recipes") appear next to each page link so readers can see where the page lives.
149
+
Each tag becomes a heading on the index page, with links to all pages that use that tag. Section
150
+
badges (e.g., "User Guide", "Recipes") appear next to each page link so readers can see where the
By default, tagged pages display small pill-shaped links above the page title. Each pill links to the corresponding tag's section on the tags index page. This helps readers discover related content.
174
+
By default, tagged pages display small pill-shaped links below the page title. Each pill links to
175
+
the corresponding tag's section on the tags index page, helping readers discover related content:
To disable the pills while keeping the tags index page:
60
183
@@ -66,7 +189,9 @@ tags:
66
189
67
190
## Tag Location
68
191
69
-
By default, tag pills appear at the **top** of the page, just below the title (and subtitle, if present). You can move them to the **bottom** of the page instead, where they appear after the page metadata block (dates and author info) or under a horizontal rule if no metadata is present.
192
+
By default, tag pills appear at the **top** of the page, just below the title (and subtitle, if
193
+
present). You can move them to the **bottom** of the page instead, where they appear after the page
194
+
metadata block (dates and author info) or under a horizontal rule if no metadata is present.
70
195
71
196
Set the default location globally in `great-docs.yml`:
72
197
@@ -90,15 +215,20 @@ tag-location: top
90
215
---
91
216
```
92
217
93
-
This is useful when most pages use bottom placement but a few key pages benefit from prominent top placement (or vice versa).
218
+
This is useful when most pages use bottom placement but a few key pages benefit from prominent top
219
+
placement (or vice versa).
94
220
95
221
::: {.callout-tip}
96
-
When tags are placed at the bottom, they are rendered *after* the page metadata (creation/modification dates and author info). If page metadata is not enabled, tags appear at the end of the main content under a horizontal rule.
222
+
When tags are placed at the bottom, they are rendered *after* the page metadata
223
+
(creation/modification dates and author info). If page metadata is not enabled, tags appear at the
224
+
end of the main content under a horizontal rule.
97
225
:::
98
226
99
227
## Hierarchical Tags
100
228
101
-
Tags support a hierarchy using the `/` separator. For example, `Python/Testing` creates a parent "Python" group with a "Testing" child. On the tags index page, hierarchical tags are rendered with nested headings:
229
+
Tags support a hierarchy using the `/` separator. For example, `Python/Testing` creates a parent
230
+
"Python" group with a "Testing" child. On the tags index page, hierarchical tags are rendered with
231
+
nested headings:
102
232
103
233
```yaml
104
234
---
@@ -120,11 +250,19 @@ This produces an index page structure like:
120
250
- Unit Testing Guide
121
251
```
122
252
123
-
On the page itself, hierarchical tag pills display the leaf name (e.g., "Testing") with the full path shown as a tooltip on hover.
253
+
On the page itself, hierarchical tag pills display as segmented pills with the parent and leaf
254
+
separated by a vertical divider. The full path is shown as a tooltip on hover:
If a tag name contains a literal `/` that should **not** be treated as a hierarchy separator, escape it with a backslash: `\/`. For example, `AI\/LLM` displays as "AI/LLM" without creating a hierarchy.
264
+
If a tag name contains a literal `/` that should **not** be treated as a hierarchy separator, escape
265
+
it with a backslash: `\/`. For example, `AI\/LLM` displays as "AI/LLM" without creating a hierarchy.
In YAML, leave the tag unquoted (e.g., `AI\/LLM`) so the backslash is preserved. Double-quoted YAML strings will consume the backslash as an escape character.
275
+
In YAML, leave the tag unquoted (e.g., `AI\/LLM`) so the backslash is preserved. Double-quoted YAML
276
+
strings will consume the backslash as an escape character.
138
277
:::
139
278
140
279
To disable hierarchical tag support entirely and treat all `/` characters as literal:
@@ -147,9 +286,13 @@ tags:
147
286
148
287
## Shadow Tags
149
288
150
-
Shadow tags are tags used for internal organization that are hidden from public view. Pages with shadow tags are still indexed internally, but the tags themselves are not rendered as pills on pages or shown on the tags index page.
289
+
Not all tags are meant for readers. Shadow tags let you use the tagging system for internal
290
+
organization without exposing those labels publicly. Pages with shadow tags are still indexed
291
+
internally, but the tags themselves are not rendered as pills on pages or shown on the tags index
292
+
page.
151
293
152
-
This is useful for editorial workflows. For example one can tag pages as `needs-review` or `draft` without exposing those labels to readers.
294
+
This is useful for editorial workflows. For example, you can tag pages as `needs-review` or `draft`
In this example, "Configuration" and "API" appear as pills and on the index page, while "needs-review" is silently ignored in the public output.
315
+
In this example, "Configuration" and "API" appear as pills and on the index page, while
316
+
"needs-review" is silently ignored in the public output.
173
317
174
318
## Tag Icons
175
319
176
-
You can associate tags with icons from the [Lucide](https://lucide.dev/icons/) icon set (the same icon set used by `nav_icons`). Icons appear inside the tag pill and next to the tag heading on the index page.
320
+
You can associate tags with icons from the [Lucide](https://lucide.dev/icons/) icon set (the same
321
+
icon set used by `nav_icons`). Icons appear inside the tag pill and next to the tag heading on the
322
+
index page.
177
323
178
324
```{.yaml filename="great-docs.yml"}
179
325
tags:
@@ -185,7 +331,8 @@ tags:
185
331
Testing: flask-conical
186
332
```
187
333
188
-
The icon names are Lucide icon names (lowercase, hyphenated). Browse the full catalogue at [lucide.dev/icons](https://lucide.dev/icons/).
334
+
The icon names are Lucide icon names (lowercase, hyphenated). Browse the full catalogue at
335
+
[lucide.dev/icons](https://lucide.dev/icons/).
189
336
190
337
## Full Configuration Reference
191
338
@@ -213,19 +360,30 @@ Great Docs scans for tags in `.qmd` files found in:
213
360
-**Recipes** pages (`recipes/`)
214
361
-**Custom sections** (any section defined in `sections:` config)
215
362
216
-
Index pages (`index.qmd`) in these directories are skipped. API reference pages and the changelog are not scanned for tags.
363
+
Index pages (`index.qmd`) in these directories are skipped. API reference pages and the changelog
364
+
are not scanned for tags.
217
365
218
366
## Tips
219
367
220
-
-**Start simple**: begin with a flat list of 5–10 tags and add hierarchy later as your documentation grows.
368
+
A few guidelines help keep your tag system useful as your documentation grows.
369
+
370
+
-**Start simple**: begin with a flat list of 5-10 tags and add hierarchy later as your
371
+
documentation grows.
221
372
-**Be consistent**: establish a tag naming convention early (e.g., always use title case).
222
-
-**Use shadow tags for workflow**: tags like `needs-update` or `v2-migration` help you track editorial tasks without cluttering the reader experience.
223
-
-**Combine with search**: tags improve discoverability today, and will integrate with enhanced search in a future release.
373
+
-**Use shadow tags for workflow**: tags like `needs-update` or `v2-migration` help you track
374
+
editorial tasks without cluttering the reader experience.
375
+
-**Combine with search**: tags improve discoverability today, and will integrate with enhanced
376
+
search in a future release.
224
377
225
378
## Next Steps
226
379
227
-
Tags give readers a second way to navigate your documentation, organized by topic rather than page order. Start with a small set of well-chosen tags and expand as your content grows.
380
+
Tags give readers a second way to navigate your documentation, organized by topic rather than page
381
+
order. Start with a small set of well-chosen tags and expand as your content grows.
228
382
229
-
-[Page Status Badges](page-status-badges.qmd) adds lifecycle indicators (new, updated, deprecated) to pages
230
-
-[Custom Sections](custom-sections.qmd) covers organizing pages into named groups with sidebar navigation
383
+
-[Page Status Badges](page-status-badges.qmd) adds lifecycle indicators (new, updated, deprecated)
384
+
to pages
385
+
-[Custom Sections](custom-sections.qmd) covers organizing pages into named groups with sidebar
386
+
navigation
387
+
-[Internationalization](internationalization.qmd) covers language support for tag-related UI
388
+
elements
231
389
-[Configuration](configuration.qmd) covers all tag settings in `great-docs.yml`
0 commit comments