diff options
Diffstat (limited to 'AGENTS.md')
| -rw-r--r-- | AGENTS.md | 10 |
1 files changed, 6 insertions, 4 deletions
@@ -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. |
