UNPKG

@tencentcloud/ai-desk-customer-vue

Version:

Vue UIKit for AI Desk

32 lines (29 loc) 1.13 kB
import {Marked} from 'marked'; export const marked = new Marked( {mangle: false, headerIds: false}, { renderer: { image(this: any, href: string | null, title: string | null, text: string) { const safeHref = encodeURIComponent(href || ''); return `<div class="image-container" onclick="onMarkdownImageClicked('${safeHref}')" style="cursor:pointer;" > <img src="${href}" alt="${text}" onload="onMarkdownImageLoad()"/> </div> `; }, link(this: any, href: string | null, title: string | null, text: string) { // a 标签 href 如果异常(包含非 ASCII 字符),则当成普通文本处理 if (href && /[^\x00-\x7F]/g.test(href)) { return text; } return `<a target="_blank" rel="noreferrer noopenner" class="message-marked_link" href="${href || ''}" title="${title}">${text}</a>`; }, }, }, ); export const parseMarkdown = (text: string) => { let ret = marked.parse(text); return typeof ret === 'string' ? ret : ''; };