codemirror-ipythongfm.js
64 lines
| 2.1 KiB
| application/javascript
|
JavascriptLexer
|
r16787 | // IPython GFM (GitHub Flavored Markdown) mode is just a slightly altered GFM | ||
// Mode with support for latex. | ||||
// | ||||
// Latex support was supported by Codemirror GFM as of | ||||
|
r17940 | // https://github.com/codemirror/CodeMirror/pull/567 | ||
|
r16787 | // But was later removed in | ||
|
r17940 | // https://github.com/codemirror/CodeMirror/commit/d9c9f1b1ffe984aee41307f3e927f80d1f23590c | ||
|
r16787 | |||
|
r18280 | |||
(function(mod) { | ||||
if (typeof exports == "object" && typeof module == "object"){ // CommonJS | ||||
mod(require("codemirror/lib/codemirror") | ||||
,require("codemirror/addon/mode/multiplex") | ||||
,require("codemirror/mode/gfm/gfm") | ||||
,require("codemirror/mode/stex/stex") | ||||
); | ||||
} else if (typeof define == "function" && define.amd){ // AMD | ||||
define(["codemirror/lib/codemirror" | ||||
,"codemirror/addon/mode/multiplex" | ||||
,"codemirror/mode/python/python" | ||||
,"codemirror/mode/stex/stex" | ||||
], mod); | ||||
} else {// Plain browser env | ||||
mod(CodeMirror); | ||||
} | ||||
})( function(CodeMirror){ | ||||
"use strict"; | ||||
CodeMirror.defineMode("ipythongfm", function(config, parserConfig) { | ||||
var gfm_mode = CodeMirror.getMode(config, "gfm"); | ||||
var tex_mode = CodeMirror.getMode(config, "stex"); | ||||
|
r16787 | |||
|
r18280 | return CodeMirror.multiplexingMode( | ||
gfm_mode, | ||||
{ | ||||
open: "$", close: "$", | ||||
mode: tex_mode, | ||||
delimStyle: "delimit" | ||||
}, | ||||
{ | ||||
// not sure this works as $$ is interpreted at (opening $, closing $, as defined just above) | ||||
open: "$$", close: "$$", | ||||
mode: tex_mode, | ||||
delimStyle: "delimit" | ||||
}, | ||||
{ | ||||
open: "\\(", close: "\\)", | ||||
mode: tex_mode, | ||||
delimStyle: "delimit" | ||||
}, | ||||
{ | ||||
open: "\\[", close: "\\]", | ||||
mode: tex_mode, | ||||
delimStyle: "delimit" | ||||
} | ||||
// .. more multiplexed styles can follow here | ||||
); | ||||
}, 'gfm'); | ||||
CodeMirror.defineMIME("text/x-ipythongfm", "ipythongfm"); | ||||
}) | ||||