diff --git a/sitegin/transformer-markdown.js b/sitegin/transformer-markdown.js
index 4dce021c6f50619f2bc751072da7fb546d5c13d6..9e146f4ca3ae42c48fa801cfe60cdcf910722c24 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();
   }
 }