mirror of
https://github.com/jupyter/notebook.git
synced 2025-02-05 12:19:58 +08:00
Merge pull request #3101 from minrk/marked
use marked / highlight.js instead of pagedown and prettify
This commit is contained in:
commit
d3da03069d
@ -42,7 +42,6 @@ $(document).ready(function () {
|
||||
var baseProjectUrl = $('body').data('baseProjectUrl')
|
||||
|
||||
IPython.page = new IPython.Page();
|
||||
IPython.markdown_converter = new Markdown.Converter();
|
||||
IPython.layout_manager = new IPython.LayoutManager();
|
||||
IPython.pager = new IPython.Pager('div#pager', 'div#pager_splitter');
|
||||
IPython.quick_help = new IPython.QuickHelp('span#quick_help_area');
|
||||
@ -94,6 +93,23 @@ $(document).ready(function () {
|
||||
|
||||
$([IPython.events]).on('notebook_loaded.Notebook', first_load);
|
||||
IPython.notebook.load_notebook($('body').data('notebookId'));
|
||||
|
||||
if (marked) {
|
||||
marked.setOptions({
|
||||
gfm : true,
|
||||
tables: true,
|
||||
langPrefix: "language-",
|
||||
highlight: function(code, lang) {
|
||||
var highlighted;
|
||||
if (lang) {
|
||||
highlighted = hljs.highlight(lang, code, false);
|
||||
} else {
|
||||
highlighted = hljs.highlightAuto(code);
|
||||
}
|
||||
return highlighted.value;
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
|
@ -298,7 +298,7 @@ var IPython = (function (IPython) {
|
||||
|
||||
MarkdownCell.options_default = {
|
||||
cm_config: {
|
||||
mode: 'markdown'
|
||||
mode: 'gfm'
|
||||
},
|
||||
placeholder: "Type *Markdown* and LaTeX: $\\alpha^2$"
|
||||
}
|
||||
@ -315,9 +315,9 @@ var IPython = (function (IPython) {
|
||||
if (this.rendered === false) {
|
||||
var text = this.get_text();
|
||||
if (text === "") { text = this.placeholder; }
|
||||
text = IPython.mathjaxutils.remove_math(text)
|
||||
var html = IPython.markdown_converter.makeHtml(text);
|
||||
html = IPython.mathjaxutils.replace_math(html)
|
||||
text = IPython.mathjaxutils.remove_math(text);
|
||||
var html = marked.parser(marked.lexer(text));
|
||||
html = IPython.mathjaxutils.replace_math(html);
|
||||
try {
|
||||
this.set_rendered(html);
|
||||
} catch (e) {
|
||||
@ -329,18 +329,6 @@ var IPython = (function (IPython) {
|
||||
}
|
||||
this.element.find('div.text_cell_input').hide();
|
||||
this.element.find("div.text_cell_render").show();
|
||||
var code_snippets = this.element.find("pre > code");
|
||||
code_snippets.replaceWith(function () {
|
||||
var code = $(this).html();
|
||||
/* Substitute br for newlines and for spaces
|
||||
before highlighting, since prettify doesn't
|
||||
preserve those on all browsers */
|
||||
code = code.replace(/(\r\n|\n|\r)/gm, "<br/>");
|
||||
code = code.replace(/ /gm, ' ');
|
||||
code = prettyPrintOne(code);
|
||||
|
||||
return '<code class="prettyprint">' + code + '</code>';
|
||||
});
|
||||
this.typeset()
|
||||
this.rendered = true;
|
||||
}
|
||||
|
157
IPython/frontend/html/notebook/static/less/highlight.less
Normal file
157
IPython/frontend/html/notebook/static/less/highlight.less
Normal file
@ -0,0 +1,157 @@
|
||||
/*
|
||||
|
||||
Original style from softwaremaniacs.org (c) Ivan Sagalaev <Maniac@SoftwareManiacs.Org>
|
||||
Adapted from GitHub theme
|
||||
|
||||
*/
|
||||
|
||||
pre code {
|
||||
display: block;
|
||||
padding: 0.5em;
|
||||
}
|
||||
|
||||
.highlight-base,
|
||||
pre code,
|
||||
pre .subst,
|
||||
pre .tag .title,
|
||||
pre .lisp .title,
|
||||
pre .clojure .built_in,
|
||||
pre .nginx .title {
|
||||
color: black;
|
||||
}
|
||||
|
||||
.highlight-string,
|
||||
pre .string,
|
||||
pre .constant,
|
||||
pre .parent,
|
||||
pre .tag .value,
|
||||
pre .rules .value,
|
||||
pre .rules .value .number,
|
||||
pre .preprocessor,
|
||||
pre .ruby .symbol,
|
||||
pre .ruby .symbol .string,
|
||||
pre .aggregate,
|
||||
pre .template_tag,
|
||||
pre .django .variable,
|
||||
pre .smalltalk .class,
|
||||
pre .addition,
|
||||
pre .flow,
|
||||
pre .stream,
|
||||
pre .bash .variable,
|
||||
pre .apache .tag,
|
||||
pre .apache .cbracket,
|
||||
pre .tex .command,
|
||||
pre .tex .special,
|
||||
pre .erlang_repl .function_or_atom,
|
||||
pre .markdown .header {
|
||||
color: #BA2121;
|
||||
}
|
||||
|
||||
.highlight-comment,
|
||||
pre .comment,
|
||||
pre .annotation,
|
||||
pre .template_comment,
|
||||
pre .diff .header,
|
||||
pre .chunk,
|
||||
pre .markdown .blockquote {
|
||||
color: #408080;
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
.highlight-number,
|
||||
pre .number,
|
||||
pre .date,
|
||||
pre .regexp,
|
||||
pre .literal,
|
||||
pre .smalltalk .symbol,
|
||||
pre .smalltalk .char,
|
||||
pre .go .constant,
|
||||
pre .change,
|
||||
pre .markdown .bullet,
|
||||
pre .markdown .link_url {
|
||||
color: #080;
|
||||
}
|
||||
|
||||
pre .label,
|
||||
pre .javadoc,
|
||||
pre .ruby .string,
|
||||
pre .decorator,
|
||||
pre .filter .argument,
|
||||
pre .localvars,
|
||||
pre .array,
|
||||
pre .attr_selector,
|
||||
pre .important,
|
||||
pre .pseudo,
|
||||
pre .pi,
|
||||
pre .doctype,
|
||||
pre .deletion,
|
||||
pre .envvar,
|
||||
pre .shebang,
|
||||
pre .apache .sqbracket,
|
||||
pre .nginx .built_in,
|
||||
pre .tex .formula,
|
||||
pre .erlang_repl .reserved,
|
||||
pre .prompt,
|
||||
pre .markdown .link_label,
|
||||
pre .vhdl .attribute,
|
||||
pre .clojure .attribute,
|
||||
pre .coffeescript .property {
|
||||
color: #88F
|
||||
}
|
||||
|
||||
.highlight-keyword,
|
||||
pre .keyword,
|
||||
pre .id,
|
||||
pre .phpdoc,
|
||||
pre .aggregate,
|
||||
pre .css .tag,
|
||||
pre .javadoctag,
|
||||
pre .phpdoc,
|
||||
pre .yardoctag,
|
||||
pre .smalltalk .class,
|
||||
pre .winutils,
|
||||
pre .bash .variable,
|
||||
pre .apache .tag,
|
||||
pre .go .typename,
|
||||
pre .tex .command,
|
||||
pre .markdown .strong,
|
||||
pre .request,
|
||||
pre .status {
|
||||
color: #008000;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.highlight-builtin,
|
||||
pre .built_in {
|
||||
color: #008000;
|
||||
}
|
||||
|
||||
pre .markdown .emphasis {
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
pre .nginx .built_in {
|
||||
font-weight: normal;
|
||||
}
|
||||
|
||||
pre .coffeescript .javascript,
|
||||
pre .javascript .xml,
|
||||
pre .tex .formula,
|
||||
pre .xml .javascript,
|
||||
pre .xml .vbscript,
|
||||
pre .xml .css,
|
||||
pre .xml .cdata {
|
||||
opacity: 0.5;
|
||||
}
|
||||
|
||||
/* apply the same style to codemirror */
|
||||
|
||||
.cm-s-ipython span.cm-variable { .highlight-base()}
|
||||
.cm-s-ipython span.cm-keyword { .highlight-keyword() }
|
||||
.cm-s-ipython span.cm-number { .highlight-number() }
|
||||
.cm-s-ipython span.cm-comment { .highlight-comment() }
|
||||
.cm-s-ipython span.cm-string { .highlight-string()}
|
||||
.cm-s-ipython span.cm-builtin { .highlight-builtin() }
|
||||
.cm-s-ipython span.cm-error { color: #f00; }
|
||||
.cm-s-ipython span.cm-operator {color: #AA22FF; font-weight: bold;}
|
||||
.cm-s-ipython span.cm-meta {color: #AA22FF;}
|
@ -5,7 +5,7 @@
|
||||
*/
|
||||
|
||||
@import "variables.less";
|
||||
|
||||
@import "highlight.less";
|
||||
|
||||
body {
|
||||
background-color:@notebook_background;
|
||||
|
@ -12,9 +12,6 @@ window.mathjax_url = "{{mathjax_url}}";
|
||||
</script>
|
||||
|
||||
<link rel="stylesheet" href="{{ static_url("components/codemirror/lib/codemirror.css") }}">
|
||||
<link rel="stylesheet" href="{{ static_url("css/codemirror-ipython.css") }}">
|
||||
|
||||
<link rel="stylesheet" href="{{ static_url("prettify/prettify.css") }}"/>
|
||||
|
||||
<link rel="stylesheet" href="{{ static_url("css/celltoolbar.css") }}" type="text/css" />
|
||||
|
||||
@ -198,6 +195,7 @@ class="notebook_app"
|
||||
<script src="{{ static_url("components/codemirror/lib/codemirror.js") }}" charset="utf-8"></script>
|
||||
<script src="{{ static_url("components/codemirror/addon/mode/loadmode.js") }}" charset="utf-8"></script>
|
||||
<script src="{{ static_url("components/codemirror/addon/mode/multiplex.js") }}" charset="utf-8"></script>
|
||||
<script src="{{ static_url("components/codemirror/addon/mode/overlay.js") }}" charset="utf-8"></script>
|
||||
<script src="{{ static_url("js/codemirror-ipython.js") }}" charset="utf-8"></script>
|
||||
<script src="{{ static_url("components/codemirror/mode/htmlmixed/htmlmixed.js") }}" charset="utf-8"></script>
|
||||
<script src="{{ static_url("components/codemirror/mode/xml/xml.js") }}" charset="utf-8"></script>
|
||||
@ -205,10 +203,11 @@ class="notebook_app"
|
||||
<script src="{{ static_url("components/codemirror/mode/css/css.js") }}" charset="utf-8"></script>
|
||||
<script src="{{ static_url("components/codemirror/mode/rst/rst.js") }}" charset="utf-8"></script>
|
||||
<script src="{{ static_url("components/codemirror/mode/markdown/markdown.js") }}" charset="utf-8"></script>
|
||||
<script src="{{ static_url("components/codemirror/mode/gfm/gfm.js") }}" charset="utf-8"></script>
|
||||
|
||||
<script src="{{ static_url("pagedown/Markdown.Converter.js") }}" charset="utf-8"></script>
|
||||
<script src="{{ static_url("components/marked/lib/marked.js") }}" charset="utf-8"></script>
|
||||
<script src="{{ static_url("components/highlight.js/build/highlight.pack.js") }}" charset="utf-8"></script>
|
||||
|
||||
<script src="{{ static_url("prettify/prettify.js") }}" charset="utf-8"></script>
|
||||
<script src="{{ static_url("dateformat/date.format.js") }}" charset="utf-8"></script>
|
||||
|
||||
<script src="{{ static_url("js/events.js") }}" type="text/javascript" charset="utf-8"></script>
|
||||
|
Loading…
Reference in New Issue
Block a user