Skip to content

Commit 3df7871

Browse files
committed
fix: review
1 parent 6ac1c7e commit 3df7871

1 file changed

Lines changed: 6 additions & 11 deletions

File tree

packages/plugins/robot/src/mcp/MarkdownRenderer.vue

Lines changed: 6 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -44,24 +44,23 @@ const props = defineProps({
4444
4545
const themeClass = computed(() => `hljs-theme-${props.theme}`)
4646
47+
const escapeHtml = (s: string) =>
48+
s.replace(/[&<>"']/g, (ch) => ({ '&': '&amp;', '<': '&lt;', '>': '&gt;', '"': '&quot;', "'": '&#39;' }[ch]!))
49+
4750
const markdownIt = new MarkdownIt({
4851
html: true,
4952
breaks: true,
5053
typographer: true,
5154
highlight: (str: string, lang: string) => {
5255
if (lang && hljs.getLanguage(lang)) {
5356
try {
54-
return `<pre class="hljs"><code>${
55-
hljs.highlight(str, {
56-
language: lang,
57-
ignoreIllegals: true
58-
}).value
59-
}</code></pre>`
57+
const { value } = hljs.highlight(str, { language: lang, ignoreIllegals: true })
58+
return `<pre class="hljs"><code class="language-${lang}">${value}</code></pre>`
6059
} catch (e) {
6160
/* ignore */
6261
}
6362
}
64-
return `<pre class="hljs"><code>${DOMPurify.sanitize(str)}</code></pre>`
63+
return `<pre class="hljs"><code>${escapeHtml(str)}</code></pre>`
6564
},
6665
...props.options
6766
})
@@ -88,17 +87,13 @@ const renderContent = computed(() => {
8887
// TODO: 适配TInyEngine主题,实现跟随主题自动切换
8988
/* 亮色主题 */
9089
&.hljs-theme-light {
91-
@import 'highlight.js/styles/github.css';
92-
9390
pre {
9491
background-color: #f6f8fa;
9592
}
9693
}
9794
9895
/* 暗色主题 */
9996
&.hljs-theme-dark {
100-
@import 'highlight.js/styles/github-dark.css';
101-
10297
pre {
10398
background-color: #0d1117;
10499
}

0 commit comments

Comments
 (0)