diff --git a/packages/node_modules/@node-red/editor-client/src/js/ui/utils.js b/packages/node_modules/@node-red/editor-client/src/js/ui/utils.js index d67a5d93d..34f7569bc 100644 --- a/packages/node_modules/@node-red/editor-client/src/js/ui/utils.js +++ b/packages/node_modules/@node-red/editor-client/src/js/ui/utils.js @@ -22,8 +22,82 @@ RED.utils = (function() { return renderMarkdown(txt); } - _marked.setOptions({ - renderer: new _marked.Renderer(), + let enable = true; + const descriptionList = { + name: 'descriptionList', + level: 'block', // Is this a block-level or inline-level tokenizer? + start(src) { + if (!src) return null + return src.match(/:[^:\n]/)?.index; // Hint to Marked.js to stop and check for a match + }, + tokenizer(src, tokens) { + if (!src) return null; + const rule = /^(?::[^:\n]+:[^:\n]*(?:\n|$))+/; // Regex for the complete token + const match = rule.exec(src); + if (match) { + return { // Token to generate + type: 'descriptionList', // Should match "name" above + raw: match[0], // Text to consume from the source + text: match[0].trim(), // Additional custom properties + tokens: this.inlineTokens(match[0].trim()) // inlineTokens to process **bold**, *italics*, etc. + }; + } + }, + renderer(token) { + return `
`; // parseInline to turn child tokens into HTML + } + }; + + const description = { + name: 'description', + level: 'inline', // Is this a block-level or inline-level tokenizer? + start(src) { + if (!enable) return null + src.match(/:/)?.index; // Hint to Marked.js to stop and check for a match + }, + tokenizer(src, tokens) { + if (!enable) return null; + const rule = /^:([^:\n]+)\(([^:\n]+)\).*?:([^:\n]*)(?:\n|$)/; // Regex for the complete token + const match = rule.exec(src); + if (match) { + return { // Token to generate + type: 'description', // Should match "name" above + raw: match[0], // Text to consume from the source + dt: this.inlineTokens(match[1].trim()), // Additional custom properties + types: this.inlineTokens(match[2].trim()), + dd: this.inlineTokens(match[3].trim()), + }; + } + }, + renderer(token) { + return `\n