import markdownit from 'markdown-it' import emoji from 'markdown-it-emoji' import math from 'markdown-it-math' import hljs from 'highlight.js' var md = markdownit({ typographer: true, linkify: true, html: true, xhtmlOut: true, highlight: function (str, lang) { if (lang && hljs.getLanguage(lang)) { try { return hljs.highlight(lang, str).value } catch (e) {} } return str.replace(/\&/g, '&').replace(/\/g, '>').replace(/\"/g, '"') } }) md.use(emoji, { shortcuts: {} }) md.use(math, { inlineRenderer: function (str) { return `${str}` }, blockRenderer: function (str) { return `
${str}
` } }) md.use(require('markdown-it-checkbox')) let originalRenderToken = md.renderer.renderToken md.renderer.renderToken = function renderToken (tokens, idx, options) { let token = tokens[idx] let result = originalRenderToken.call(md.renderer, tokens, idx, options) if (token.map != null) { return result + '' } return result } export default function markdown (content) { if (content == null) content = '' return md.render(content.toString()) }