init
This commit is contained in:
50
public/tinymce/plugins/codemirror/CodeMirror/mode/jinja2/index.html
vendored
Normal file
50
public/tinymce/plugins/codemirror/CodeMirror/mode/jinja2/index.html
vendored
Normal file
@ -0,0 +1,50 @@
|
||||
<!doctype html>
|
||||
|
||||
<title>CodeMirror: Jinja2 mode</title>
|
||||
<meta charset="utf-8"/>
|
||||
<link rel=stylesheet href="../../doc/docs.css">
|
||||
|
||||
<link rel="stylesheet" href="../../lib/codemirror.css">
|
||||
<script src="../../lib/codemirror.js"></script>
|
||||
<script src="jinja2.js"></script>
|
||||
<style type="text/css">.CodeMirror {border-top: 1px solid black; border-bottom: 1px solid black;}</style>
|
||||
<div id=nav>
|
||||
<a href="http://codemirror.net"><img id=logo src="../../doc/logo.png"></a>
|
||||
|
||||
<ul>
|
||||
<li><a href="../../index.html">Home</a>
|
||||
<li><a href="../../doc/manual.html">Manual</a>
|
||||
<li><a href="https://github.com/marijnh/codemirror">Code</a>
|
||||
</ul>
|
||||
<ul>
|
||||
<li><a href="../index.html">Language modes</a>
|
||||
<li><a class=active href="#">Jinja2</a>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<article>
|
||||
<h2>Jinja2 mode</h2>
|
||||
<form><textarea id="code" name="code">
|
||||
<html style="color: green">
|
||||
<!-- this is a comment -->
|
||||
<head>
|
||||
<title>Jinja2 Example</title>
|
||||
</head>
|
||||
<body>
|
||||
<ul>
|
||||
{# this is a comment #}
|
||||
{%- for item in li -%}
|
||||
<li>
|
||||
{{ item.label }}
|
||||
</li>
|
||||
{% endfor -%}
|
||||
</ul>
|
||||
</body>
|
||||
</html>
|
||||
</textarea></form>
|
||||
<script>
|
||||
var editor =
|
||||
CodeMirror.fromTextArea(document.getElementById("code"), {mode:
|
||||
{name: "jinja2", htmlMode: true}});
|
||||
</script>
|
||||
</article>
|
52
public/tinymce/plugins/codemirror/CodeMirror/mode/jinja2/jinja2.js
vendored
Normal file
52
public/tinymce/plugins/codemirror/CodeMirror/mode/jinja2/jinja2.js
vendored
Normal file
@ -0,0 +1,52 @@
|
||||
CodeMirror.defineMode("jinja2", function() {
|
||||
var keywords = ["and", "as", "block", "endblock", "by", "cycle", "debug", "else", "elif",
|
||||
"extends", "filter", "endfilter", "firstof", "for",
|
||||
"endfor", "if", "endif", "ifchanged", "endifchanged",
|
||||
"ifequal", "endifequal", "ifnotequal",
|
||||
"endifnotequal", "in", "include", "load", "not", "now", "or",
|
||||
"parsed", "regroup", "reversed", "spaceless",
|
||||
"endspaceless", "ssi", "templatetag", "openblock",
|
||||
"closeblock", "openvariable", "closevariable",
|
||||
"openbrace", "closebrace", "opencomment",
|
||||
"closecomment", "widthratio", "url", "with", "endwith",
|
||||
"get_current_language", "trans", "noop", "blocktrans",
|
||||
"endblocktrans", "get_available_languages",
|
||||
"get_current_language_bidi", "plural"];
|
||||
keywords = new RegExp("^((" + keywords.join(")|(") + "))\\b");
|
||||
|
||||
function tokenBase (stream, state) {
|
||||
var ch = stream.next();
|
||||
if (ch == "{") {
|
||||
if (ch = stream.eat(/\{|%|#/)) {
|
||||
stream.eat("-");
|
||||
state.tokenize = inTag(ch);
|
||||
return "tag";
|
||||
}
|
||||
}
|
||||
}
|
||||
function inTag (close) {
|
||||
if (close == "{") {
|
||||
close = "}";
|
||||
}
|
||||
return function (stream, state) {
|
||||
var ch = stream.next();
|
||||
if ((ch == close || (ch == "-" && stream.eat(close)))
|
||||
&& stream.eat("}")) {
|
||||
state.tokenize = tokenBase;
|
||||
return "tag";
|
||||
}
|
||||
if (stream.match(keywords)) {
|
||||
return "keyword";
|
||||
}
|
||||
return close == "#" ? "comment" : "string";
|
||||
};
|
||||
}
|
||||
return {
|
||||
startState: function () {
|
||||
return {tokenize: tokenBase};
|
||||
},
|
||||
token: function (stream, state) {
|
||||
return state.tokenize(stream, state);
|
||||
}
|
||||
};
|
||||
});
|
Reference in New Issue
Block a user