##// END OF EJS Templates
Merge pull request #6077 from minrk/json-unicode-keys...
Merge pull request #6077 from minrk/json-unicode-keys allow unicode keys in dicts in json_clean

File last commit:

r14206:7a0e96e3
r17148:99cdf189 merge
Show More
marked.js
54 lines | 1.7 KiB | application/javascript | JavascriptLexer
// Node.js script for markdown to html conversion
// This applies the same math extraction and marked settings
// that we use in the live notebook.
// IPython static_path dir relative to here:
var static_path = __dirname + "/../../html/static/";
var fs = require('fs');
var IPython;
// marked can be loaded with require,
// the others must be execfiled
var marked = require(static_path + 'components/marked/lib/marked.js');
eval(fs.readFileSync(static_path + "components/highlight.js/build/highlight.pack.js", 'utf8'));
eval(fs.readFileSync(static_path + "base/js/namespace.js", 'utf8'));
eval(fs.readFileSync(static_path + "base/js/utils.js", 'utf8'));
eval(fs.readFileSync(static_path + "notebook/js/mathjaxutils.js", 'utf8'));
// this is copied from notebook.main. Should it be moved somewhere we can reuse it?
marked.setOptions({
gfm : true,
tables: true,
langPrefix: "language-",
highlight: function(code, lang) {
if (!lang) {
// no language, no highlight
return code;
}
var highlighted;
try {
highlighted = hljs.highlight(lang, code, false);
} catch(err) {
highlighted = hljs.highlightAuto(code);
}
return highlighted.value;
}
});
// read the markdown from stdin
var md='';
process.stdin.on("data", function (data) {
md += data;
});
// perform the md2html transform once stdin is complete
process.stdin.on("end", function () {
var text_and_math = IPython.mathjaxutils.remove_math(md);
var text = text_and_math[0];
var math = text_and_math[1];
var html = marked.parser(marked.lexer(text));
html = IPython.mathjaxutils.replace_math(html, math);
process.stdout.write(html);
});