diff options
Diffstat (limited to 'lib/parse')
-rw-r--r-- | lib/parse/page.js | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/lib/parse/page.js b/lib/parse/page.js index 937d84e..75eca9d 100644 --- a/lib/parse/page.js +++ b/lib/parse/page.js @@ -4,6 +4,9 @@ var hljs = require('highlight.js'); var renderer = require('./renderer'); +var lnormalize = require('../utils/lang').normalize; + + // Synchronous highlighting with highlight.js marked.setOptions({ highlight: function (code, lang) { @@ -100,10 +103,22 @@ function parsePage(src, options) { 'type': 'code' }); + // Languages in code blocks + var langs = _.pluck(codeNodes, 'lang').map(lnormalize); + + // Check that they are all the same + var validLangs = _.all(_.map(langs, function(lang) { + return lang && lang === langs[0]; + })); + + // Main language + var lang = validLangs ? langs[0] : null; + return { id: id, type: section.type, content: render(nonCodeNodes), + lang: lang, code: { base: codeNodes[0].text, solution: codeNodes[1].text, |