Files
notesnook/packages/tinymce-plugins/codeblock/utils.js
2021-11-04 11:06:44 +05:00

37 lines
727 B
JavaScript

const TAGNAME = "PRE";
const state = {
activeBlock: null,
languages: [],
};
function createCodeBlock(content) {
const pre = document.createElement(TAGNAME);
pre.spellcheck = false;
pre.classList.add("hljs");
pre.innerHTML = content;
return pre;
}
function isCodeBlock(node) {
return node.nodeName === TAGNAME;
}
function isInsideCodeBlock(element) {
let elem = element;
while (elem.tagName !== TAGNAME && !!elem.parentElement) {
elem = elem.parentElement;
if (elem.classList.contains("mce-content-body")) {
elem = undefined;
break;
}
}
return elem && elem.tagName === TAGNAME;
}
module.exports = {
isInsideCodeBlock,
createCodeBlock,
isCodeBlock,
TAGNAME,
state,
};