Add tracked and freeform tag editing
Deploy production / deploy (push) Successful in 4s

This commit is contained in:
2026-08-13 15:56:02 -07:00
parent 841c213087
commit 6c762c3b33
8 changed files with 742 additions and 78 deletions
+15 -13
View File
@@ -40,15 +40,17 @@ making changes; it is the authoritative operations and deployment runbook.
## Tags and filtering
- Treat the child records under `content/tags/` as the single controlled tag
vocabulary. Their lowercase, hyphenated directory names are the canonical
slugs stored in entry `tags` fields and used in public tag URLs.
- Keep the entry model's checkbox choices dynamically sourced from
`content/tags/`; do not duplicate the vocabulary in model configuration or
introduce free-form spelling and capitalization variants.
- Add a tag record before assigning its slug to an entry. When renaming or
retiring a tag, update all references deliberately and verify that no orphan
slug or broken tag URL remains.
- Treat the child records under `content/tags/` as the tracked tag registry.
Their lowercase, hyphenated directory names are the canonical slugs used in
public tag URLs. Entry `tags` fields may also contain normalized freeform
slugs without matching registry records.
- Keep the entry model's tracked checkbox choices dynamically sourced from
`content/tags/`; do not duplicate the registry in model configuration.
Freeform entry tags remain visible but nonlinked and are excluded from
tracked-tag discovery.
- Tracking or untracking a slug must not rewrite content references. Slug
renaming is separate: update all references deliberately and verify that no
old slug or broken tag URL remains.
- Preserve normal links to dedicated tag pages as the no-JavaScript baseline.
Client-side filtering must remain a progressive enhancement with semantic
buttons, keyboard support, and an announced result count.
@@ -86,10 +88,10 @@ making changes; it is the authoritative operations and deployment runbook.
- When template changes rely on updated CSS or other static assets, increment
the relevant cache-busting version in the template and verify that generated
pages reference the new asset URL.
- For taxonomy changes, verify every entry tag has a matching `content/tags/`
record, tag counts match rendered project/devlog/blog/article usage,
dedicated tag URLs build, and listing filters work with valid, absent, and
unknown query values.
- For taxonomy changes, verify tracked-tag counts match rendered
project/devlog/blog/article usage, freeform tags remain visible and unlinked,
dedicated tracked-tag URLs build, and listing filters work with valid,
absent, and unknown query values.
- Run `git diff --check` and review the exact diff before committing.
- If a push was requested, verify the Gitea Action result, deployed revision,
and site health instead of treating a successful `git push` as completion.