diff --git a/lib/renderer/markdown-it-prism/index.js b/lib/renderer/markdown-it-prism/index.js index 23c9548..714a530 100644 --- a/lib/renderer/markdown-it-prism/index.js +++ b/lib/renderer/markdown-it-prism/index.js @@ -2,6 +2,9 @@ const Prism = require('prismjs'); const loadLanguages = require('prismjs/components/'); const pangu = require('pangu'); const LanguagesTip = require('./lang'); +const { escapeHTML, unescapeHTML } = require('hexo-util'); +const escapeSwigTag = str => str.replace(/{/g, '{').replace(/}/g, '}'); +const unescapeSwigTag = str => str.replace(/{/g, '{').replace(/}/g, '}'); loadLanguages.silent = true; @@ -48,7 +51,7 @@ module.exports = function (md, options) { const token = tokens[idx] const info = token.info const text = token.content.trim() - const lang = info.split(" ")[0] + const lang = info.trim().split(" ")[0] var code = null let [langToUse, langShow, prismLang] = selectLanguage(config, lang); @@ -61,13 +64,14 @@ module.exports = function (md, options) { } = getOptions(info.slice(lang.length)); if (prismLang) { - code = Prism.highlight(text.replace(/{/g, '{').replace(/}/g, '}'), prismLang, langToUse).replace(/{/g, '{').replace(/}/g, '}'); + code = Prism.highlight(unescapeSwigTag(text), prismLang, langToUse); } else if(lang == 'raw') { - code = pangu.spacing(text); + code = escapeHTML(pangu.spacing(unescapeSwigTag(text))); langShow = null; } if(code) { + code = escapeSwigTag(code); const lines = code.split('\n'); let content = ''; @@ -103,7 +107,7 @@ module.exports = function (md, options) { } if (lang == 'info') { - return `
${pangu.spacing(text)}`;
+ return `${escapeHTML(pangu.spacing(unescapeSwigTag(text)))}`;
} else {
return defaultRenderer(tokens, idx, options, env, self);
}
diff --git a/package.json b/package.json
index 49023bf..71b6b74 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "hexo-renderer-multi-markdown-it",
- "version": "0.1.4",
+ "version": "0.1.5",
"description": "A Markdown parser for Hexo and auto Minify HTML, CSS, JS.",
"main": "index.js",
"repository": "https://github.com/amehime/hexo-renderer-multi-markdown-it.git",