add language support to code blocks

This commit is contained in:
Hans Pagel
2020-09-30 16:25:32 +02:00
parent 5d7435f3fe
commit 576f3e1caa
2 changed files with 29 additions and 1 deletions

View File

@@ -26,7 +26,25 @@ export default new Node()
defining: true,
draggable: false,
parseDOM: [
{ tag: 'pre', preserveWhitespace: 'full' },
{
tag: 'pre',
preserveWhitespace: 'full',
getAttrs(dom) {
const code = (dom as HTMLElement).firstChild
if (!code) {
return null
}
const classAttribute = ((code as HTMLElement).getAttribute('class') as string)
if (!classAttribute) {
return null
}
return { language: classAttribute.replace(/^(language-)/, '') }
},
},
],
toDOM: node => ['pre', ['code', { class: node.attrs.language && `language-${node.attrs.language}` }, 0]],
}))