diff --git a/src/renderer/components/markdown/TheMarkdown.vue b/src/renderer/components/markdown/TheMarkdown.vue
index e7ae2f61..4de69cf9 100644
--- a/src/renderer/components/markdown/TheMarkdown.vue
+++ b/src/renderer/components/markdown/TheMarkdown.vue
@@ -29,7 +29,7 @@ const snippetStore = useSnippetStore()
const forceRefresh = ref()
const init = () => {
- const renderer = {
+ const renderer: marked.RendererObject = {
code (code: string, lang: string) {
if (lang === 'mermaid') {
return `
${code}
`
@@ -66,7 +66,71 @@ onMounted(() => {
const getRenderer = () => {
const raw = marked.parse(props.value)
const html = sanitizeHtml(raw, {
- allowedTags: false,
+ allowedTags: [
+ 'h1',
+ 'h2',
+ 'h3',
+ 'h4',
+ 'h5',
+ 'h6',
+ 'h7',
+ 'h8',
+ 'br',
+ 'b',
+ 'i',
+ 'strong',
+ 'em',
+ 'a',
+ 'pre',
+ 'code',
+ 'img',
+ 'tt',
+ 'div',
+ 'ins',
+ 'del',
+ 'sup',
+ 'sub',
+ 'p',
+ 'ol',
+ 'ul',
+ 'table',
+ 'thead',
+ 'tbody',
+ 'tfoot',
+ 'blockquote',
+ 'dl',
+ 'dt',
+ 'dd',
+ 'kbd',
+ 'q',
+ 'samp',
+ 'var',
+ 'hr',
+ 'ruby',
+ 'rt',
+ 'rp',
+ 'li',
+ 'tr',
+ 'td',
+ 'th',
+ 's',
+ 'strike',
+ 'summary',
+ 'details',
+ 'caption',
+ 'figure',
+ 'figcaption',
+ 'abbr',
+ 'bdo',
+ 'cite',
+ 'dfn',
+ 'mark',
+ 'small',
+ 'span',
+ 'time',
+ 'wbr',
+ 'input'
+ ],
allowedAttributes: {
'*': [
'align',
@@ -77,7 +141,10 @@ const getRenderer = () => {
'src',
'target',
'width',
- 'class'
+ 'class',
+ 'type',
+ 'checked',
+ 'disabled'
]
}
})