import { Marked, type Token } from 'marked'
export const markdown = new Marked({
breaks: true,
gfm: true,
/**
* Render paragraphs without `
` wrappers
* for check answers summary list `
`
*/
extensions: [
{
name: 'paragraph',
renderer({ tokens = [] }) {
const text = this.parser.parseInline(tokens)
return tokens.length > 1 ? `${text}
` : text
}
}
],
/**
* Restrict allowed Markdown tokens
*/
walkTokens(token) {
const tokens: Token['type'][] = [
'br',
'escape',
'link',
'list',
'list_item',
'paragraph',
'space',
'text'
]
if (!tokens.includes(token.type)) {
token.type = 'text'
}
}
})