#2556·quartz

Tags with children are unreachable: parent tag page collides with its own subdirectory

Author: PyrokineticDarkElfCreated Sep 15, 2026Updated Sep 15, 2026
Labelsbug

Describe the bug When a tag has hierarchical sub-tags (e.g. kubernetes and kubernetes/k3s), generate() writes the parent tag's page as a flat file (tags/kubernetes.html) that ends up sitting next to a same-named directory (tags/kubernetes/) created for its children's pages. On deploy, the directory shadows the file, so the parent tag page 404s even though it built successfully.

To Reproduce Given frontmatter across a vault:

Kubernetes/index.md -> tags: [kubernetes] Kubernetes/K3s-note.md -> tags: [kubernetes/k3s] Kubernetes/Kube-VIP-note.md -> tags: [kubernetes/kube-vip] Kubernetes/Kubectl-note.md -> tags: [kubernetes/kubectl] Build output:

output/tags/kubernetes.html (parent tag page) output/tags/kubernetes/k3s.html output/tags/kubernetes/kube-vip.html output/tags/kubernetes/kubectl.html Requesting /tags/kubernetes/ 404s: the server resolves the tags/kubernetes/ directory, finds no index.html inside it, and never falls back to the sibling tags/kubernetes.html file.

Confirmed on a live Quartz v5 site:

/tags/kubernetes/ -> 404 /tags/docker/ -> 404 (same pattern — has a child docker/docker-compose) /tags/kubernetes/k3s -> 200 /tags/homelab/ -> 200 (no children, unaffected)

Quartz Version: v5.0.0 (this bug reproduces on the v5 branch, commit 68c56e3) node Version: v22.23.2 npm version: 10.9.8 OS: Ubuntu 24.04.4 LTS (bug is build-time, not browser-side) Browser: N/A — this is a build-output/routing issue