aboutsummaryrefslogtreecommitdiffstats
path: root/AGENTS.md
diff options
context:
space:
mode:
Diffstat (limited to 'AGENTS.md')
-rw-r--r--AGENTS.md10
1 files changed, 6 insertions, 4 deletions
diff --git a/AGENTS.md b/AGENTS.md
index 974fc10..18bc043 100644
--- a/AGENTS.md
+++ b/AGENTS.md
@@ -278,10 +278,12 @@ internal/web/ server.go (host router, middleware, render helpers)
the URL (`/tag/<slug>`, `handleBlogTag`, published posts of every page,
paginated) and the dedupe key — "Go" and "go" are one tag, the first
spelling wins. `Post.Tags` rides along in `postCols` as two arrays.
- The post form offers the blog's existing tags as checkboxes (`tag`) plus
- a comma-separated `new_tags` box; `parseTags` normalises both into one
- list (20 per post, 40 runes each; nothing slug-worthy → dropped) and
- `SetPostTags` stores it after the post is saved. Tags no post carries
+ The post form is one comma-separated `tags` box (prefilled by
+ `tagsText`); the blog's existing tags sit folded under it as chips that
+ a small inline script toggles in the box (a plain list without JS).
+ `parseTags` normalises the box (20 per post, 40 runes each; nothing
+ slug-worthy → dropped) and `SetPostTags` stores it after the post is
+ saved. Tags no post carries
are deleted (`deleteOrphanTags`, also after post/page deletion), so the
form only lists tags in use. `TagCounts` counts published posts only:
a tag on hidden posts alone shows nowhere public and its page is a 404.