TagTrees - novoid/lazyblorg GitHub Wiki
Tag Pages > TagTrees
TagTrees provide a way to navigate your blog articles by combining multiple tags. Starting from any tag page, you can drill down by selecting additional tags to narrow down the list of articles.
A tag page like example.com/tags/python/ shows all articles tagged
with python. A TagTree page like example.com/tags/python/emacs/
shows only articles tagged with both python and emacs.
This combinatorial drill-down lets readers find exactly the articles they are interested in, without needing a full-text search.
On each tag page, you will find a section labeled “Drill down to more specific tags” if there are co-occurring tags. These are displayed as tag links styled the same way as the tags on article pages. Clicking one of these tags takes you to a TagTree page that combines the current tag(s) with the selected one.
From there, you can continue drilling down further, as long as there are articles matching the combined tags and the maximum depth has not been reached.
Each TagTree page shows:
- A breadcrumb navigation at the top (e.g., Tags >> python >> emacs)
- Links to drill down further, if available
- A list of all articles matching the combined tags
Suppose your blog has articles with these tags:
| Article | Tags |
|---|---|
| Python Tips | python, programming |
| Emacs and Python | python, emacs |
| Org-mode Workflow | emacs, orgmode |
| Python in Emacs | python, emacs, orgmode |
Starting from the python tag page (/tags/python/), you see all
four articles tagged with python and the drill-down tags emacs
and programming.
Clicking emacs takes you to /tags/python/emacs/ which shows only
the two articles tagged with both python and emacs. From there,
you could drill down further to orgmode via
/tags/python/emacs/orgmode/, narrowing it down to one article.
Note that /tags/python/emacs/ and /tags/emacs/python/ are
separate pages but list the same articles. The order in the URL
reflects the navigation path the reader took.
The maximum depth of TagTree pages is controlled by the
TAGTREE_DEPTH setting in config.py (default: 3). This limits how
many tags can be combined in a single TagTree path to keep the number
of generated pages manageable.
TagTree pages are generated automatically. You do not need to create any additional Org-mode entries. As long as your articles have tags and tag pages exist, the TagTree drill-down pages will be generated during the publishing process.