fix potential problems with highlighter callback and escapes.

This commit is contained in:
Christopher Jeffrey 2012-04-11 01:57:17 -05:00
parent b814a0af9b
commit f7be7f9640
2 changed files with 11 additions and 6 deletions

View File

@ -81,9 +81,9 @@ marked.setOptions({
pedantic: false,
sanitize: true,
// callback for code highlighter
highlight: function(code, language) {
if (language === 'js') {
code = highlight(code);
highlight: function(code, lang) {
if (lang === 'js') {
return javascriptHighlighter(code);
}
return code;
}

View File

@ -531,10 +531,15 @@ var tok = function() {
+ '>\n';
}
case 'code': {
if (options.highlight) {
token.code = options.highlight(token.text, token.lang);
if (token.code != null && token.code !== token.text) {
token.escaped = true;
token.text = token.code;
}
}
if (!token.escaped) {
token.text = options.highlight
? options.highlight(token.text, token.lang)
: escape(token.text, true);
token.text = escape(token.text, true);
}
return '<pre><code'
+ (token.lang