Fix tag handling for multi-word tags
Tags with spaces (e.g. #science fiction) were breaking extraction because TAG_RE only matched word characters — it would stop at the space and extract #science instead of #science-fiction. - TAG_RE (backend + frontend): add hyphens to character class so #science-fiction is recognized as a single tag: [\w][\w-]* per segment - System prompt: instruct LLM to use hyphens in multi-word tags, never spaces - tag_suggestions.py: update prompt example + sanitize output by replacing spaces with hyphens as a safety net regardless of LLM output - append-tag route: sanitize incoming tag (spaces → hyphens) before appending Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
const CODE_FENCE_RE = /```[\s\S]*?```|`[^`\n]+`/g;
|
||||
const TAG_RE = /(?<!\w)(?<!&)#([\w]+(?:\/[\w]+)*)/g;
|
||||
const TAG_RE = /(?<!\w)(?<!&)#([\w][\w-]*(?:\/[\w][\w-]*)*)/g;
|
||||
|
||||
function escapeHtmlAttr(s: string): string {
|
||||
return s.replace(/&/g, "&").replace(/"/g, """).replace(/</g, "<").replace(/>/g, ">");
|
||||
|
||||
Reference in New Issue
Block a user