diff --git a/src/lib/components/chat/Messages/Markdown/MarkdownInlineTokens/MentionToken.svelte b/src/lib/components/chat/Messages/Markdown/MarkdownInlineTokens/MentionToken.svelte index 3c74f57299..19f23b2aa0 100644 --- a/src/lib/components/chat/Messages/Markdown/MarkdownInlineTokens/MentionToken.svelte +++ b/src/lib/components/chat/Messages/Markdown/MarkdownInlineTokens/MentionToken.svelte @@ -68,11 +68,12 @@ - + { if (triggerChar === '@') { if (idType === 'U') { diff --git a/src/lib/utils/marked/mention-extension.ts b/src/lib/utils/marked/mention-extension.ts index 21aa6bc687..4e3865fd89 100644 --- a/src/lib/utils/marked/mention-extension.ts +++ b/src/lib/utils/marked/mention-extension.ts @@ -20,9 +20,9 @@ function mentionStart(src: string) { function mentionTokenizer(this: any, src: string, options: MentionOptions = {}) { const trigger = options.triggerChar ?? '@'; - // Build dynamic regex for `<@id>`, `<@id|label>`, `<@id|>` - const re = new RegExp(`^<\\${trigger}([\\w.\\-:]+)(?:\\|([^>]*))?>`); + // Added forward slash (/) to the character class for IDs + const re = new RegExp(`^<\\${trigger}([\\w.\\-:/]+)(?:\\|([^>]*))?>`); const m = re.exec(src); if (!m) return; @@ -71,14 +71,3 @@ export function mentionExtension(opts: MentionOptions = {}) { // Usage: // import { marked } from 'marked'; // marked.use({ extensions: [mentionExtension({ triggerChar: '@' })] }); -// -// "<@llama3.2:latest>" → -// @llama3.2:latest -// -// "<@llama3.2:latest|friendly>" → -// @friendly -// -// "<@llama3.2:latest|>" → -// @llama3.2:latest -// -// If triggerChar = "#"