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
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