meld
Version:
Meld: A template language for LLM prompts
26 lines (24 loc) • 953 B
JavaScript
// Custom markdown-it plugin to escape template syntax in code blocks
function escapeTemplatePlugin(md) {
const defaultFence = md.renderer.rules.fence;
md.renderer.rules.fence = function(tokens, idx, options, env, self) {
const token = tokens[idx];
token.content = token.content
.replace(/{{/g, '{{')
.replace(/}}/g, '}}')
.replace(/{%/g, '{%')
.replace(/%}/g, '%}');
return defaultFence(tokens, idx, options, env, self);
};
const defaultInlineCode = md.renderer.rules.code_inline;
md.renderer.rules.code_inline = function(tokens, idx, options, env, self) {
const token = tokens[idx];
token.content = token.content
.replace(/{{/g, '{{')
.replace(/}}/g, '}}')
.replace(/{%/g, '{%')
.replace(/%}/g, '%}');
return defaultInlineCode(tokens, idx, options, env, self);
};
}
module.exports = escapeTemplatePlugin;