Files
noodl-docs/plugins/markdown-syntax.js
Eric Tuvesson 53f0d6320e Initial commit
Co-Authored-By: kotte <14197736+mrtamagotchi@users.noreply.github.com>
Co-Authored-By: mikaeltellhed <2311083+mikaeltellhed@users.noreply.github.com>
Co-Authored-By: Tore Knudsen <18231882+torekndsn@users.noreply.github.com>
Co-Authored-By: Michael Cartner <32543275+michaelcartner@users.noreply.github.com>
2023-09-05 12:08:55 +02:00

38 lines
954 B
JavaScript

function _visit(children, fn) {
children.forEach((ch) => {
fn(ch)
if (ch.children) _visit(ch.children, fn)
})
}
function _parseNoodlMarkupPlugin() {
return function (ast) {
_visit(ast.children, (node) => {
if (typeof node.value === 'string') {
node.value = node.value.replace(
/(&lt;|<)\#\#.*?\#\#(&gt;|>)/g,
''
)
}
})
}
}
function _parseRenderedMarkupPlugin() {
return function (ast) {
_visit(ast.children, (node) => {
if (node.type === 'element' && node.tagName === 'p') {
const hasContent = node.children.find((child) =>
Boolean(child.value)
)
if (!hasContent) node.properties.class = 'is-hidden'
}
})
}
}
module.exports = {
_parseNoodlMarkupPlugin,
_parseRenderedMarkupPlugin,
}