From e132da91b5e8e723802c29089283bdf156f51cd9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20Sko=C5=99epa?= <jakub@skorepa.info> Date: Thu, 25 Feb 2016 18:22:33 +0100 Subject: [PATCH] Allow lang selection for code highlighting Metadata: lang="c" You can only select lang for whole article for now --- sitegin/transformer-markdown.js | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/sitegin/transformer-markdown.js b/sitegin/transformer-markdown.js index 4dce021..9e146f4 100644 --- a/sitegin/transformer-markdown.js +++ b/sitegin/transformer-markdown.js @@ -1,6 +1,7 @@ var marked = require('marked'); var renderer = new marked.Renderer(); var toURL = require('./transformer-urlizetags.js').toURL; +var highlightjs = require('highlight.js'); renderer.image = function(href, title, text) { if(process.argv[3] !== "final") { @@ -38,9 +39,6 @@ marked.setOptions({ sanitize: false, smartLists: true, smartypants: false, - highlight: function (code) { - return require('highlight.js').highlightAuto(code).value; - } }); module.exports = function() { @@ -48,7 +46,16 @@ module.exports = function() { tr.fancyname = "transformer markdown"; tr.forEachPage = function(article, cb) { article.origContent = article.content; - article.content = marked(article.content); + article.content = marked(article.content, { + highlight: function (code) { + var h; + if(highlightjs.getLanguage(article.metadata.lang)) + h = highlightjs.highlight(article.metadata.lang, code, true); + else + h = highlightjs.highlightAuto(code); + return h.value; + } + }); cb(); } } -- GitLab