feat: add asciidoc editor module (#5954)
* feat: add asciidoc editor module * fix storage file extension for asciidoc pages * fix: asciidoc editor + rendering improvements * fix: description list css improvements Co-authored-by: NGPixel <github@ngpixel.com>
This commit is contained in:
20
server/modules/rendering/asciidoc-core/definition.yml
Normal file
20
server/modules/rendering/asciidoc-core/definition.yml
Normal file
@@ -0,0 +1,20 @@
|
||||
key: asciidocCore
|
||||
title: Core
|
||||
description: Basic Asciidoc Parser
|
||||
author: dzruyk (Based on asciidoctor.js renderer)
|
||||
input: asciidoc
|
||||
output: html
|
||||
icon: mdi-sitemap
|
||||
enabledDefault: true
|
||||
props:
|
||||
safeMode:
|
||||
type: String
|
||||
default: server
|
||||
title: Safe Mode
|
||||
hint: Sets the safe mode to use when parsing content to HTML.
|
||||
order: 1
|
||||
enum:
|
||||
- unsafe
|
||||
- safe
|
||||
- server
|
||||
- secure
|
26
server/modules/rendering/asciidoc-core/renderer.js
Normal file
26
server/modules/rendering/asciidoc-core/renderer.js
Normal file
@@ -0,0 +1,26 @@
|
||||
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()
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user