I created a simple mode for embedding arbitrary expressions inside of {{}} blocks inside JSON:
CodeMirror.defineMode("fancyjson", (config) => {
return CodeMirror.multiplexingMode(
CodeMirror.getMode(config, { name: "javascript", json: true }),
{
open: "{{",
close: "}}",
mode: CodeMirror.getMode(config, "text/plain"),
parseDelimiters: false
}
);
});
const els = document.querySelectorAll(".code");
els.forEach((el) => {
CodeMirror.fromTextArea(el, {
lineNumbers: true,
mode: "fancyjson"
});
});
Codepen is here.
Screenshot:
Note how the string syntax highlight is incorrect in the second block. Is this expected behavior?