27 lines
641 B
JavaScript
27 lines
641 B
JavaScript
|
const asciidoctor = require('asciidoctor')()
|
||
|
const cheerio = require('cheerio')
|
||
|
|
||
|
module.exports = {
|
||
|
async render() {
|
||
|
const html = asciidoctor.convert(this.input, {
|
||
|
standalone: false,
|
||
|
safe: this.config.safeMode,
|
||
|
attributes: {
|
||
|
showtitle: true,
|
||
|
icons: 'font'
|
||
|
}
|
||
|
})
|
||
|
|
||
|
const $ = cheerio.load(html, {
|
||
|
decodeEntities: true
|
||
|
})
|
||
|
|
||
|
$('pre.highlight > code.language-diagram').each((i, elm) => {
|
||
|
const diagramContent = Buffer.from($(elm).html(), 'base64').toString()
|
||
|
$(elm).parent().replaceWith(`<pre class="diagram">${diagramContent}</div>`)
|
||
|
})
|
||
|
|
||
|
return $.html()
|
||
|
}
|
||
|
}
|