##// END OF EJS Templates
more profile awareness from config.manager to IPython subclass...
more profile awareness from config.manager to IPython subclass also enables specifying profile by name, instead of full path.

File last commit:

r17205:96cc3c79
r20867:432981e3
Show More
marked.js
63 lines | 1.9 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/";
// Excerpt from the example in require.js docs
// http://requirejs.org/docs/node.html
var requirejs = require('requirejs');
requirejs.config({
//Pass the top-level main.js/index.js require
//function to requirejs so that node modules
//are loaded relative to the top-level JS file.
nodeRequire: require,
baseUrl: static_path,
});
requirejs([
'fs',
'components/marked/lib/marked',
'components/highlight.js/build/highlight.pack',
'base/js/utils',
'notebook/js/mathjaxutils',
], function(fs, marked, hljs, utils, mathjaxutils) {
// 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 = mathjaxutils.remove_math(md);
var text = text_and_math[0];
var math = text_and_math[1];
var html = marked.parser(marked.lexer(text));
html = mathjaxutils.replace_math(html, math);
process.stdout.write(html);
});
});