From 155087ac6f5b00ae24468facf37bd7bb42b06385 Mon Sep 17 00:00:00 2001 From: Brian Powell Jr Date: Fri, 1 Nov 2024 01:48:37 -0400 Subject: [PATCH] Added basic asciidoc extension for [SUCCESS] block admonition. Need to fix corner radii not rendering --- client/components/editor/editor-asciidoc.vue | 5 ++++- client/modules/asciidoc-extended.js | 17 +++++++++++++++++ .../modules/rendering/asciidoc-core/renderer.js | 5 ++++- 3 files changed, 25 insertions(+), 2 deletions(-) create mode 100644 client/modules/asciidoc-extended.js diff --git a/client/components/editor/editor-asciidoc.vue b/client/components/editor/editor-asciidoc.vue index b72fc2d8..8c1d5908 100644 --- a/client/components/editor/editor-asciidoc.vue +++ b/client/components/editor/editor-asciidoc.vue @@ -163,6 +163,8 @@ import cmFold from './common/cmFold' // INIT // ======================================== const asciidoctor = require('asciidoctor')() +const registry = asciidoctor.Extensions.create() +require('../../modules/asciidoc-extended')(registry) const cheerio = require('cheerio') // Platform detection @@ -222,7 +224,8 @@ export default { attributes: { showtitle: true, icons: 'font' - } + }, + 'extension_registry': registry }) const $ = cheerio.load(html, { decodeEntities: true diff --git a/client/modules/asciidoc-extended.js b/client/modules/asciidoc-extended.js new file mode 100644 index 00000000..2a2aa84d --- /dev/null +++ b/client/modules/asciidoc-extended.js @@ -0,0 +1,17 @@ +// Asciidoctor API Documentation for HTML5Converter: +// https://www.rubydoc.info/gems/asciidoctor/2.0.23/Asciidoctor/Converter/Html5Converter#convert_admonition-instance_method + +module.exports = function (registry) { + // Success Admonition block rendering + // [SUCCESS] + // + registry.block(function () { + var self = this + self.named('SUCCESS') + self.onContext('paragraph') + self.process(function (parent, reader) { + var lines = reader.getLines() + return self.createBlock(parent, 'admonition', lines, {name: 'success', textlabel: 'Success'}) + }) + }) +} diff --git a/server/modules/rendering/asciidoc-core/renderer.js b/server/modules/rendering/asciidoc-core/renderer.js index e37217d8..d5824c6f 100644 --- a/server/modules/rendering/asciidoc-core/renderer.js +++ b/server/modules/rendering/asciidoc-core/renderer.js @@ -1,4 +1,6 @@ const asciidoctor = require('asciidoctor')() +const registry = asciidoctor.Extensions.create() +require('../../../../client/modules/asciidoc-extended')(registry) const cheerio = require('cheerio') module.exports = { @@ -9,7 +11,8 @@ module.exports = { attributes: { showtitle: true, icons: 'font' - } + }, + 'extension_registry': registry }) const $ = cheerio.load(html, {