Notes/packages/turndown-plugin-gfm/src/highlighted-code-block.js
Elian Doran d3423127d8 Add 'packages/turndown-plugin-gfm/' from commit '0f43299c17108e9508e7e6237369e86f504ea60a'
git-subtree-dir: packages/turndown-plugin-gfm
git-subtree-mainline: ebebdd0b07edda953fdc71b0003c223a6531e05c
git-subtree-split: 0f43299c17108e9508e7e6237369e86f504ea60a
2025-03-19 18:16:20 +02:00

26 lines
755 B
JavaScript

var highlightRegExp = /highlight-(?:text|source)-([a-z0-9]+)/
export default function highlightedCodeBlock (turndownService) {
turndownService.addRule('highlightedCodeBlock', {
filter: function (node) {
var firstChild = node.firstChild
return (
node.nodeName === 'DIV' &&
highlightRegExp.test(node.className) &&
firstChild &&
firstChild.nodeName === 'PRE'
)
},
replacement: function (content, node, options) {
var className = node.className || ''
var language = (className.match(highlightRegExp) || [null, ''])[1]
return (
'\n\n' + options.fence + language + '\n' +
node.firstChild.textContent +
'\n' + options.fence + '\n\n'
)
}
})
}