const hljs = require('highlight.js') const MarkdownIt = require('markdown-it') const markdownItContainer = require('markdown-it-container') const markdownItAnchor = require('markdown-it-anchor') const slugify = require('transliteration').slugify const md = new MarkdownIt({ html: true, highlight: function (str, lang) { str = str.replace(/</g, '<') str = str.replace(/>/g, '>') if (lang && hljs.getLanguage(lang)) { try { return '
' + hljs.highlight(lang, str, true).value + ''
} catch (__) {}
}
return '' + md.utils.escapeHtml(str) + ''
}
})
.use(markdownItContainer, 'warning')
.use(markdownItContainer, 'error')
.use(markdownItContainer, 'info')
.use(markdownItAnchor, {
level: 2,
slugify,
permalink: true,
permalinkBefore: true
})
module.exports = (source) => {
const content = md.render(source)
let scriptStart = content.indexOf('') + ''.length
pageScript = content.slice(scriptStart, scriptEnd)
} else {
scriptStart = 0
}
pageHtml.push(content.slice(0, scriptStart))
pageHtml.push(content.slice(scriptEnd))
let output = pageHtml.join('').replace(/\{/g, '{').replace(/\}/g, '}')
return `