gatsby-remark-prismjs
Version:
Adds syntax highlighting to code blocks at build time using PrismJS
20 lines (19 loc) • 579 B
JavaScript
;
module.exports = (code, additionalHtmlEscapes = {}) => {
const baseHTMLEscapes = {
"&": `&`,
">": `>`,
"<": `<`,
'"': `"`,
"'": `'`
};
const htmlEscapes = {
...additionalHtmlEscapes,
...baseHTMLEscapes
};
const escapedChars = char => htmlEscapes[char];
const chars = Object.keys(htmlEscapes);
const charsRe = new RegExp(`[${chars.join(``)}]`, `g`);
const rehasUnescapedChars = new RegExp(charsRe.source);
return code && rehasUnescapedChars.test(code) ? code.replace(charsRe, escapedChars) : code;
};