Object.keys(files).forEach(function (file) { debug('checking file: %s', file); if (!markdown(file)) { return; } var data = files[file], str = data.contents.toString(), end = /^(\s*)```(.*)/m, remainder = str, pos = 0, endpos = 0, replacements = []; while (end.test(remainder)) { var match = end.exec(remainder), candidate = match[2] && match[2].trim(), lang = (candidate && candidate.length) > 0 ? candidate : null, prev = pos, buff = match[0].length, leadingSpaceLength = match[1] ? match[1].length : 0; pos = pos + match.index + buff; remainder = str.substring(pos); var ends = end.exec(remainder); if (ends === null) { break; } endpos = ends.index; replacements.push(str.substring(prev, pos - buff + leadingSpaceLength)); var fencePrefixLength = (ends[1] ? ends[1].length : 0) + 3; var nextPos = pos + endpos + fencePrefixLength; remainder = str.substring(nextPos); var code = str.substring(pos, pos + endpos); code = code.trim('(\r\n|\n)'); pos = nextPos; if (lang === null) { replacements.push('<pre><code class="hljs">' + hljs.highlightAuto(code).value + '</code></pre>'); } else { try { if (lang === 'no-highlight') { replacements.push('<pre><code class="hljs ' + lang + '">' + entities.encodeHTML(code) + '</code></pre>'); } else { replacements.push('<pre><code class="hljs ' + lang + '">' + hljs.highlight(lang, code).value + '</code></pre>'); } } catch (err) { replacements.push('<pre><code>' + hljs.highlightAuto(code).value + '</code></pre>'); } } } if (pos < (str.length - 1)) { replacements.push(str.substring(pos)); } files[file].contents = new Buffer(replacements.join('')); debug(files[file].contents.toString()); });
module.exports = function(raw, options){ var options = _.extend(defaults, options); if (options.tab){ raw = raw.replace(/\n(\t+)/g, function(match, tabs){ var result = '\n'; for (var i=0, len=tabs.length; i<len; i++){ result += options.tab; } return result; }); } if (!options.lang){ var compiled = hljs.highlightAuto(raw).value; } else if (options.lang === 'plain'){ var compiled = raw; } else { var lang = options.lang.toLowerCase(); if (keys.indexOf(lang) !== -1) lang = alias[lang]; try { var compiled = hljs.highlight(lang, raw).value; } catch (e){ var compiled = hljs.highlightAuto(raw).value; } } var lines = compiled.split('\n'), numbers = '', content = '', firstLine = options.first_line; lines.forEach(function(item, i){ numbers += (i + firstLine) + '\n'; content += item + '\n'; }); if (options.gutter){ var result = '<figure class="highlight' + (options.lang ? ' lang-' + options.lang : '') + '">'+ (options.caption ? '<figcaption>' + options.caption + '</figcaption>' : '') + '<table>'+ '<tr>'+ '<td class="gutter"><pre>' + numbers + '</pre></td>'+ '<td class="code"><pre>' + content + '</pre></td>'+ '</tr>'+ '</table>'+ '</figure>'; } else { var result = content; } return result; };
highlight: function (aCode, aLang) { var obj = null; var lang = [ // NOTE: More likely to less likely 'javascript', 'xpath', 'xml', 'css', 'less', 'scss', 'json', 'diff', 'shell', 'bash', 'dos', 'vbscript' ]; if (aLang && hljs.getLanguage(aLang)) { try { return hljs.highlight(aLang, aCode).value; } catch (aE) { if (isDev) { console.error([ colors.red('Dependency named highlighting failed with:'), aE ].join('\n')); } } } try { obj = hljs.highlightAuto(aCode); if (lang.indexOf(obj.language) > -1) { return obj.value; } else { if (isDev) { console.log([ colors.yellow('Unusual auto-detected md language code is') + '`' + colors.cyan(obj.language) + '`', ].join('\n')); } return hljs.highlightAuto(aCode, lang).value; } } catch (aE) { if (isDev) { console.error([ colors.red('Dependency automatic named highlighting failed with:'), aE ].join('\n')); } } // If any external package failure don't block return e.g. prevent empty return aCode; },
highlight: function highlight(data, lang) { var fallback = !this.mapping[lang] ? 'default' : undefined; var hl = this.unescape(data); if (lang !== 'markdown') { if (!lang) { hl = hljs.highlightAuto(hl); } else { try { hl = hljs.highlight(lang, hl); } catch (e) { hl = hljs.highlightAuto(hl); } } if (hl.language) { fallback = hl.language; } hl = hl.value; } hl = this.format(hl); var mappingLang = fallback || lang; mappingLang = !this.mapping[mappingLang] ? 'default' : mappingLang; // If a custom language is detected, apply its styles. for (var color in this.mapping[mappingLang]) { if (this.mapping[mappingLang].hasOwnProperty(color)) { var clr = String(color).replace(/[0-9]/g, ''); hl = String(hl).replace(this.mapping[mappingLang][color], chalk[clr]('$1')); } } // If the "default" styles weren't applied, apply them now. if (mappingLang !== 'default') { for (var color in this.mapping['default']) { if (this.mapping['default'].hasOwnProperty(color)) { var clr = String(color).replace(/[0-9]/g, ''); hl = String(hl).replace(this.mapping['default'][color], chalk[clr]('$1')); } } } // Catch any highlighting tags not given in // that theme file, and reset any color on them. for (var style in this.mapping.fallback) { if (this.mapping.fallback.hasOwnProperty(style)) { hl = String(hl).replace(this.mapping.fallback[style], chalk.reset('$1')); } } return hl; },
.each(function (key, value) { var langDiv = $(value); if (langDiv.length > 0) { var reallang = langDiv[0].className.replace(/hljs|wrap/g, '').trim(); var codeDiv = langDiv.find('.code'); var code = ""; if (codeDiv.length > 0) code = codeDiv.html(); else code = langDiv.html(); code = md.utils.unescapeAll(code); if (!reallang) { var result = { value: md.utils.escapeHtml(code) }; } else if (reallang == "tiddlywiki" || reallang == "mediawiki") { var result = { value: Prism.highlight(code, Prism.languages.wiki) }; } else { var languages = hljs.listLanguages(); if (languages.indexOf(reallang) == -1) { var result = hljs.highlightAuto(code); } else { var result = hljs.highlight(reallang, code); } } if (codeDiv.length > 0) codeDiv.html(result.value); else langDiv.html(result.value); } });
function highlightHelper(text) { if (text && text.length) { return new handlebars.SafeString(hljs.highlightAuto(text).value); } else { return ''; } }
function highlightCodeblocks(parsed) { var walker = parsed.walker(); var event, node; while ((event = walker.next())) { node = event.node; if (node.type === 'CodeBlock') { var info = node.info ? node.info.split(/\s+/) : []; var lang = info[0]; var highlighted; var classes = ['hljs']; if (lang) { highlighted = highlightjs.highlight(lang, node.literal).value; classes.push('lang-'+lang); } else { highlighted = highlightjs.highlightAuto(node.literal).value; } var htmlBlock = new commonmark.Node('HtmlBlock', node.sourcepos); htmlBlock.literal = ['<pre>', '<code class="'+classes.join(' ')+'">', highlighted, '</code>', '</pre>'].join(''); node.insertBefore(htmlBlock); node.unlink(); } } }
highlight: function (code, lang) { if (lang) { return highlight.highlight(lang, code).value; } return highlight.highlightAuto(code).value; }
highlight: function(code, lang) { if (hljs.LANGUAGES[lang]) { return hljs.highlight(lang, code).value } else { return hljs.highlightAuto(code).value } },
markup.highlight = function (text, language, style) { if (language === false) return blessed.escape(text); var highlighted; if (language) { try { highlighted = hljs.highlight(language, text, true); } catch (e) {} } if (!highlighted) highlighted = hljs.highlightAuto(text); var $ = cheerio.load(blessed.escape(highlighted.value)); // Assumes hljs output doesn't use curlies do { var lastElCount = elCount; var elCount = $('*:not(:has(*))').replaceWith(function () { var $el = $(this); var tags = ($el.attr('class') || '') .split(' ') .map(function (className) { if (!(className in style)) logger.debug(className + ' unstyled'); return style[className] || ''; }) .join(''); return entities.encodeHTML(textUtil .splitLines($el.text()) .map(function (line) { return markup(line, tags); }) .join('')); }).length; } while (lastElCount !== elCount); return $.root().text(); };
.concat(comment.examples.reduce(function(memo, example) { language = hljsOptions.highlightAuto ? hljs.highlightAuto(example.description).language : "javascript"; return memo.concat(example.caption ? [u("paragraph", [u("emphasis", example.caption)])] : []).concat([u("code", {lang: language}, example.description)]); }, []));
options.highlight = function(code, lang) { if (lang) { return hljs.highlight(lang, code).value; } else { return hljs.highlightAuto(code).value; } };
highlight: function (code, lang) { if (typeof lang !== "undefined" && langs.indexOf(lang) > 0) { return hljs.highlight(lang, code).value; } else { return hljs.highlightAuto(code).value; } }
renderer.code = function(code, language) { var code = language ? hljs.highlight(language, code).value : hljs.highlightAuto(code).value; return buildTemplate("code", { "LANGUAGE": language, "CODE": code }); }
function highlightCode(code, lang) { if (lang) { return highlight.highlight(lang, code, true).value; } else { return highlight.highlightAuto(code).value; } }
var marked_highlight = function (code, lang) { if (lang && hljs.LANGUAGES[lang]) { return hljs.highlight(lang, code).value; } else { return hljs.highlightAuto(code).value; } };
, highlight : function (str, lang) { if (lang && hljs.getLanguage(lang)) { return hljs.highlight(lang, str, true).value; } else { return hljs.highlightAuto(str).value; } }
renderer.code = function (code, lang, escaped) { if (lang === 'mermaid' && mermaid.parse(code)) { return '<div class="mermaid">' + code + '</div>'; } var out = highlight.highlightAuto(code).value; //var out = code + ' '; if (out != null && out !== code) { escaped = true; code = out; } if (!lang) { return '<pre><code>' + (escaped ? code : escape(code, true)) + '\n</code></pre>'; } return '<pre><code class="' + this.options.langPrefix + escape(lang, true) + '">' + (escaped ? code : escape(code, true)) + '\n</code></pre>\n'; };
highlight: function (aCode, aLang) { if (aLang && hljs.getLanguage(aLang)) { return hljs.highlight(aLang, aCode).value; } else { return hljs.highlightAuto(aCode).value; } },
highlight : function(code, lang){ if(lang && hljs.getLanguage(lang)){ return hljs.highlight(lang, code).value; } else { return hljs.highlightAuto(code).value; } }
options.highlight = function(code) { var out = hljs.highlightAuto(code).value; if(shouldWrap) { out = wrapLines(out); } return out; };
highlight: function (code, lang) { var output = code; if (lang) { output = highlight.highlightAuto(output).value; } return '<div class="hljs">' + output + '</div>'; }
Kirja.highlight = function (code, lang) { if (lang) return HighlightJs.highlight(lang, code, true).value; return HighlightJs.highlightAuto(code).value; };
highlight: function (code, lang) { try { return hljs.highlight(lang, code).value; } catch(e) { return hljs.highlightAuto(code).value; } }
swig.setFilter('code', function(code, lang) { try { return hljs.highlight(lang, code).value; } catch(e) { return hljs.highlightAuto(code).value; } });
blocks.each(data.examples, function (example) { var root = { name: '', children: [] }; var current = root; var parents = []; var parser = new parse5.SimpleApiParser({ startTag: function (tagName, attrs) { var node = { name: attrs[0].value, children: [] }; parents.push(current); current.children.push(node); current = node; }, endTag: function () { current = parents.pop(); }, text: function (text) { current.children.push(text); } }); parser.parse(hljs.highlightAuto(example.code, [example.language]).value); example.code = root; });
.concat(comment.examples.reduce(function (memo, example) { language = hljsOptions.highlightAuto ? hljs.highlightAuto(example.description).language : 'javascript'; return memo.concat(example.caption ? [u('paragraph', [u('emphasis', [u('text', example.caption)])])] : []).concat([u('code', { lang: language }, example.description)]); }, []));
function generateCode(code, lang) { const result = lang && highlight.getLanguage(lang) ? highlight.highlight(lang, code) : highlight.highlightAuto(code); return `<div class="highlight"><pre><code language=${result.language}>${result.value}</code></pre></div>`; }
this.options.highlight = function (code, lang) { try { code = hljs.highlight(lang, code).value; } catch (e) { code = hljs.highlightAuto(code).value; } return code; };
highlight: function (code, lang) { if (lang === "nohighlight") return code; if (lang) return hljs.highlight(lang, code, true).value; else return hljs.highlightAuto(code).value; }