ledger_web 1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/.gitignore +10 -0
- data/LICENSE +7 -0
- data/README.md +140 -0
- data/Rakefile +11 -0
- data/bin/ledger_web +14 -0
- data/ledger_web.gemspec +26 -0
- data/lib/ledger_web/app.rb +69 -0
- data/lib/ledger_web/config.rb +87 -0
- data/lib/ledger_web/db/migrate/20111226180900_initial_schema.rb +38 -0
- data/lib/ledger_web/db/migrate/20111231132900_add_views.rb +37 -0
- data/lib/ledger_web/db.rb +54 -0
- data/lib/ledger_web/helpers.rb +62 -0
- data/lib/ledger_web/public/bootstrap-dropdown.js +55 -0
- data/lib/ledger_web/public/bootstrap.min.css +356 -0
- data/lib/ledger_web/public/codemirror/keymap/emacs.js +29 -0
- data/lib/ledger_web/public/codemirror/keymap/vim.js +76 -0
- data/lib/ledger_web/public/codemirror/lib/codemirror.css +104 -0
- data/lib/ledger_web/public/codemirror/lib/codemirror.js +2761 -0
- data/lib/ledger_web/public/codemirror/lib/util/dialog.css +23 -0
- data/lib/ledger_web/public/codemirror/lib/util/dialog.js +63 -0
- data/lib/ledger_web/public/codemirror/lib/util/foldcode.js +66 -0
- data/lib/ledger_web/public/codemirror/lib/util/formatting.js +291 -0
- data/lib/ledger_web/public/codemirror/lib/util/javascript-hint.js +83 -0
- data/lib/ledger_web/public/codemirror/lib/util/overlay.js +51 -0
- data/lib/ledger_web/public/codemirror/lib/util/runmode.js +27 -0
- data/lib/ledger_web/public/codemirror/lib/util/search.js +114 -0
- data/lib/ledger_web/public/codemirror/lib/util/searchcursor.js +117 -0
- data/lib/ledger_web/public/codemirror/lib/util/simple-hint.css +16 -0
- data/lib/ledger_web/public/codemirror/lib/util/simple-hint.js +66 -0
- data/lib/ledger_web/public/codemirror/mode/clike/clike.js +249 -0
- data/lib/ledger_web/public/codemirror/mode/clike/index.html +101 -0
- data/lib/ledger_web/public/codemirror/mode/clojure/clojure.js +207 -0
- data/lib/ledger_web/public/codemirror/mode/clojure/index.html +66 -0
- data/lib/ledger_web/public/codemirror/mode/coffeescript/LICENSE +22 -0
- data/lib/ledger_web/public/codemirror/mode/coffeescript/coffeescript.js +325 -0
- data/lib/ledger_web/public/codemirror/mode/coffeescript/index.html +721 -0
- data/lib/ledger_web/public/codemirror/mode/css/css.js +124 -0
- data/lib/ledger_web/public/codemirror/mode/css/index.html +55 -0
- data/lib/ledger_web/public/codemirror/mode/diff/diff.css +3 -0
- data/lib/ledger_web/public/codemirror/mode/diff/diff.js +13 -0
- data/lib/ledger_web/public/codemirror/mode/diff/index.html +99 -0
- data/lib/ledger_web/public/codemirror/mode/gfm/gfm.js +108 -0
- data/lib/ledger_web/public/codemirror/mode/gfm/index.html +47 -0
- data/lib/ledger_web/public/codemirror/mode/groovy/groovy.js +210 -0
- data/lib/ledger_web/public/codemirror/mode/groovy/index.html +71 -0
- data/lib/ledger_web/public/codemirror/mode/haskell/haskell.js +242 -0
- data/lib/ledger_web/public/codemirror/mode/haskell/index.html +60 -0
- data/lib/ledger_web/public/codemirror/mode/htmlembedded/htmlembedded.js +68 -0
- data/lib/ledger_web/public/codemirror/mode/htmlembedded/index.html +49 -0
- data/lib/ledger_web/public/codemirror/mode/htmlmixed/htmlmixed.js +83 -0
- data/lib/ledger_web/public/codemirror/mode/htmlmixed/index.html +51 -0
- data/lib/ledger_web/public/codemirror/mode/javascript/index.html +77 -0
- data/lib/ledger_web/public/codemirror/mode/javascript/javascript.js +360 -0
- data/lib/ledger_web/public/codemirror/mode/jinja2/index.html +37 -0
- data/lib/ledger_web/public/codemirror/mode/jinja2/jinja2.js +42 -0
- data/lib/ledger_web/public/codemirror/mode/lua/index.html +72 -0
- data/lib/ledger_web/public/codemirror/mode/lua/lua.js +140 -0
- data/lib/ledger_web/public/codemirror/mode/markdown/index.html +339 -0
- data/lib/ledger_web/public/codemirror/mode/markdown/markdown.js +242 -0
- data/lib/ledger_web/public/codemirror/mode/ntriples/index.html +32 -0
- data/lib/ledger_web/public/codemirror/mode/ntriples/ntriples.js +172 -0
- data/lib/ledger_web/public/codemirror/mode/pascal/LICENSE +7 -0
- data/lib/ledger_web/public/codemirror/mode/pascal/index.html +48 -0
- data/lib/ledger_web/public/codemirror/mode/pascal/pascal.js +138 -0
- data/lib/ledger_web/public/codemirror/mode/perl/LICENSE +19 -0
- data/lib/ledger_web/public/codemirror/mode/perl/index.html +62 -0
- data/lib/ledger_web/public/codemirror/mode/perl/perl.js +816 -0
- data/lib/ledger_web/public/codemirror/mode/php/index.html +48 -0
- data/lib/ledger_web/public/codemirror/mode/php/php.js +120 -0
- data/lib/ledger_web/public/codemirror/mode/plsql/index.html +62 -0
- data/lib/ledger_web/public/codemirror/mode/plsql/plsql.js +217 -0
- data/lib/ledger_web/public/codemirror/mode/python/LICENSE.txt +21 -0
- data/lib/ledger_web/public/codemirror/mode/python/index.html +122 -0
- data/lib/ledger_web/public/codemirror/mode/python/python.js +333 -0
- data/lib/ledger_web/public/codemirror/mode/r/LICENSE +24 -0
- data/lib/ledger_web/public/codemirror/mode/r/index.html +73 -0
- data/lib/ledger_web/public/codemirror/mode/r/r.js +141 -0
- data/lib/ledger_web/public/codemirror/mode/rpm/changes/changes.js +19 -0
- data/lib/ledger_web/public/codemirror/mode/rpm/changes/index.html +53 -0
- data/lib/ledger_web/public/codemirror/mode/rpm/spec/index.html +99 -0
- data/lib/ledger_web/public/codemirror/mode/rpm/spec/spec.css +5 -0
- data/lib/ledger_web/public/codemirror/mode/rpm/spec/spec.js +66 -0
- data/lib/ledger_web/public/codemirror/mode/rst/index.html +525 -0
- data/lib/ledger_web/public/codemirror/mode/rst/rst.js +326 -0
- data/lib/ledger_web/public/codemirror/mode/ruby/LICENSE +24 -0
- data/lib/ledger_web/public/codemirror/mode/ruby/index.html +171 -0
- data/lib/ledger_web/public/codemirror/mode/ruby/ruby.js +195 -0
- data/lib/ledger_web/public/codemirror/mode/rust/index.html +48 -0
- data/lib/ledger_web/public/codemirror/mode/rust/rust.js +411 -0
- data/lib/ledger_web/public/codemirror/mode/scheme/index.html +64 -0
- data/lib/ledger_web/public/codemirror/mode/scheme/scheme.js +202 -0
- data/lib/ledger_web/public/codemirror/mode/smalltalk/index.html +55 -0
- data/lib/ledger_web/public/codemirror/mode/smalltalk/smalltalk.js +139 -0
- data/lib/ledger_web/public/codemirror/mode/sparql/index.html +40 -0
- data/lib/ledger_web/public/codemirror/mode/sparql/sparql.js +143 -0
- data/lib/ledger_web/public/codemirror/mode/stex/index.html +95 -0
- data/lib/ledger_web/public/codemirror/mode/stex/stex.js +167 -0
- data/lib/ledger_web/public/codemirror/mode/tiddlywiki/index.html +183 -0
- data/lib/ledger_web/public/codemirror/mode/tiddlywiki/tiddlywiki.css +21 -0
- data/lib/ledger_web/public/codemirror/mode/tiddlywiki/tiddlywiki.js +374 -0
- data/lib/ledger_web/public/codemirror/mode/velocity/index.html +103 -0
- data/lib/ledger_web/public/codemirror/mode/velocity/velocity.js +146 -0
- data/lib/ledger_web/public/codemirror/mode/xml/index.html +44 -0
- data/lib/ledger_web/public/codemirror/mode/xml/xml.js +252 -0
- data/lib/ledger_web/public/codemirror/mode/xmlpure/index.html +59 -0
- data/lib/ledger_web/public/codemirror/mode/xmlpure/xmlpure.js +485 -0
- data/lib/ledger_web/public/codemirror/mode/yaml/index.html +67 -0
- data/lib/ledger_web/public/codemirror/mode/yaml/yaml.js +95 -0
- data/lib/ledger_web/public/codemirror/theme/cobalt.css +18 -0
- data/lib/ledger_web/public/codemirror/theme/eclipse.css +25 -0
- data/lib/ledger_web/public/codemirror/theme/elegant.css +10 -0
- data/lib/ledger_web/public/codemirror/theme/monokai.css +28 -0
- data/lib/ledger_web/public/codemirror/theme/neat.css +9 -0
- data/lib/ledger_web/public/codemirror/theme/night.css +21 -0
- data/lib/ledger_web/public/codemirror/theme/rubyblue.css +21 -0
- data/lib/ledger_web/public/jquery-1.7.1.min.js +4 -0
- data/lib/ledger_web/public/jquery.tablesorter.min.js +4 -0
- data/lib/ledger_web/public/ledger.css +14 -0
- data/lib/ledger_web/report.rb +187 -0
- data/lib/ledger_web/reports/savings_rate.erb +49 -0
- data/lib/ledger_web/version.rb +3 -0
- data/lib/ledger_web/views/error.erb +5 -0
- data/lib/ledger_web/views/help.erb +6 -0
- data/lib/ledger_web/views/layout.erb +44 -0
- data/lib/ledger_web/views/table.erb +31 -0
- data/lib/ledger_web/watcher.rb +37 -0
- data/lib/ledger_web.rb +20 -0
- metadata +229 -0
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
<!doctype html>
|
|
2
|
+
<html>
|
|
3
|
+
<head>
|
|
4
|
+
<title>CodeMirror: sTeX mode</title>
|
|
5
|
+
<link rel="stylesheet" href="../../lib/codemirror.css">
|
|
6
|
+
<script src="../../lib/codemirror.js"></script>
|
|
7
|
+
<script src="stex.js"></script>
|
|
8
|
+
<style>.CodeMirror {background: #f8f8f8;}</style>
|
|
9
|
+
<link rel="stylesheet" href="../../doc/docs.css">
|
|
10
|
+
</head>
|
|
11
|
+
<body>
|
|
12
|
+
<h1>CodeMirror: sTeX mode</h1>
|
|
13
|
+
<form><textarea id="code" name="code">
|
|
14
|
+
\begin{module}[id=bbt-size]
|
|
15
|
+
\importmodule[balanced-binary-trees]{balanced-binary-trees}
|
|
16
|
+
\importmodule[\KWARCslides{dmath/en/cardinality}]{cardinality}
|
|
17
|
+
|
|
18
|
+
\begin{frame}
|
|
19
|
+
\frametitle{Size Lemma for Balanced Trees}
|
|
20
|
+
\begin{itemize}
|
|
21
|
+
\item
|
|
22
|
+
\begin{assertion}[id=size-lemma,type=lemma]
|
|
23
|
+
Let $G=\tup{V,E}$ be a \termref[cd=binary-trees]{balanced binary tree}
|
|
24
|
+
of \termref[cd=graph-depth,name=vertex-depth]{depth}$n>i$, then the set
|
|
25
|
+
$\defeq{\livar{V}i}{\setst{\inset{v}{V}}{\gdepth{v} = i}}$ of
|
|
26
|
+
\termref[cd=graphs-intro,name=node]{nodes} at
|
|
27
|
+
\termref[cd=graph-depth,name=vertex-depth]{depth} $i$ has
|
|
28
|
+
\termref[cd=cardinality,name=cardinality]{cardinality} $\power2i$.
|
|
29
|
+
\end{assertion}
|
|
30
|
+
\item
|
|
31
|
+
\begin{sproof}[id=size-lemma-pf,proofend=,for=size-lemma]{via induction over the depth $i$.}
|
|
32
|
+
\begin{spfcases}{We have to consider two cases}
|
|
33
|
+
\begin{spfcase}{$i=0$}
|
|
34
|
+
\begin{spfstep}[display=flow]
|
|
35
|
+
then $\livar{V}i=\set{\livar{v}r}$, where $\livar{v}r$ is the root, so
|
|
36
|
+
$\eq{\card{\livar{V}0},\card{\set{\livar{v}r}},1,\power20}$.
|
|
37
|
+
\end{spfstep}
|
|
38
|
+
\end{spfcase}
|
|
39
|
+
\begin{spfcase}{$i>0$}
|
|
40
|
+
\begin{spfstep}[display=flow]
|
|
41
|
+
then $\livar{V}{i-1}$ contains $\power2{i-1}$ vertexes
|
|
42
|
+
\begin{justification}[method=byIH](IH)\end{justification}
|
|
43
|
+
\end{spfstep}
|
|
44
|
+
\begin{spfstep}
|
|
45
|
+
By the \begin{justification}[method=byDef]definition of a binary
|
|
46
|
+
tree\end{justification}, each $\inset{v}{\livar{V}{i-1}}$ is a leaf or has
|
|
47
|
+
two children that are at depth $i$.
|
|
48
|
+
\end{spfstep}
|
|
49
|
+
\begin{spfstep}
|
|
50
|
+
As $G$ is \termref[cd=balanced-binary-trees,name=balanced-binary-tree]{balanced} and $\gdepth{G}=n>i$, $\livar{V}{i-1}$ cannot contain
|
|
51
|
+
leaves.
|
|
52
|
+
\end{spfstep}
|
|
53
|
+
\begin{spfstep}[type=conclusion]
|
|
54
|
+
Thus $\eq{\card{\livar{V}i},{\atimes[cdot]{2,\card{\livar{V}{i-1}}}},{\atimes[cdot]{2,\power2{i-1}}},\power2i}$.
|
|
55
|
+
\end{spfstep}
|
|
56
|
+
\end{spfcase}
|
|
57
|
+
\end{spfcases}
|
|
58
|
+
\end{sproof}
|
|
59
|
+
\item
|
|
60
|
+
\begin{assertion}[id=fbbt,type=corollary]
|
|
61
|
+
A fully balanced tree of depth $d$ has $\power2{d+1}-1$ nodes.
|
|
62
|
+
\end{assertion}
|
|
63
|
+
\item
|
|
64
|
+
\begin{sproof}[for=fbbt,id=fbbt-pf]{}
|
|
65
|
+
\begin{spfstep}
|
|
66
|
+
Let $\defeq{G}{\tup{V,E}}$ be a fully balanced tree
|
|
67
|
+
\end{spfstep}
|
|
68
|
+
\begin{spfstep}
|
|
69
|
+
Then $\card{V}=\Sumfromto{i}1d{\power2i}= \power2{d+1}-1$.
|
|
70
|
+
\end{spfstep}
|
|
71
|
+
\end{sproof}
|
|
72
|
+
\end{itemize}
|
|
73
|
+
\end{frame}
|
|
74
|
+
\begin{note}
|
|
75
|
+
\begin{omtext}[type=conclusion,for=binary-tree]
|
|
76
|
+
This shows that balanced binary trees grow in breadth very quickly, a consequence of
|
|
77
|
+
this is that they are very shallow (and this compute very fast), which is the essence of
|
|
78
|
+
the next result.
|
|
79
|
+
\end{omtext}
|
|
80
|
+
\end{note}
|
|
81
|
+
\end{module}
|
|
82
|
+
|
|
83
|
+
%%% Local Variables:
|
|
84
|
+
%%% mode: LaTeX
|
|
85
|
+
%%% TeX-master: "all"
|
|
86
|
+
%%% End: \end{document}
|
|
87
|
+
</textarea></form>
|
|
88
|
+
<script>
|
|
89
|
+
var editor = CodeMirror.fromTextArea(document.getElementById("code"), {});
|
|
90
|
+
</script>
|
|
91
|
+
|
|
92
|
+
<p><strong>MIME types defined:</strong> <code>text/stex</code>.</p>
|
|
93
|
+
|
|
94
|
+
</body>
|
|
95
|
+
</html>
|
|
@@ -0,0 +1,167 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Author: Constantin Jucovschi (c.jucovschi@jacobs-university.de)
|
|
3
|
+
* Licence: MIT
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
CodeMirror.defineMode("stex", function(cmCfg, modeCfg)
|
|
7
|
+
{
|
|
8
|
+
function pushCommand(state, command) {
|
|
9
|
+
state.cmdState.push(command);
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
function peekCommand(state) {
|
|
13
|
+
if (state.cmdState.length>0)
|
|
14
|
+
return state.cmdState[state.cmdState.length-1];
|
|
15
|
+
else
|
|
16
|
+
return null;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
function popCommand(state) {
|
|
20
|
+
if (state.cmdState.length>0) {
|
|
21
|
+
var plug = state.cmdState.pop();
|
|
22
|
+
plug.closeBracket();
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
function applyMostPowerful(state) {
|
|
27
|
+
var context = state.cmdState;
|
|
28
|
+
for (var i = context.length - 1; i >= 0; i--) {
|
|
29
|
+
var plug = context[i];
|
|
30
|
+
if (plug.name=="DEFAULT")
|
|
31
|
+
continue;
|
|
32
|
+
return plug.styleIdentifier();
|
|
33
|
+
}
|
|
34
|
+
return null;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
function addPluginPattern(pluginName, cmdStyle, brackets, styles) {
|
|
38
|
+
return function () {
|
|
39
|
+
this.name=pluginName;
|
|
40
|
+
this.bracketNo = 0;
|
|
41
|
+
this.style=cmdStyle;
|
|
42
|
+
this.styles = styles;
|
|
43
|
+
this.brackets = brackets;
|
|
44
|
+
|
|
45
|
+
this.styleIdentifier = function(content) {
|
|
46
|
+
if (this.bracketNo<=this.styles.length)
|
|
47
|
+
return this.styles[this.bracketNo-1];
|
|
48
|
+
else
|
|
49
|
+
return null;
|
|
50
|
+
};
|
|
51
|
+
this.openBracket = function(content) {
|
|
52
|
+
this.bracketNo++;
|
|
53
|
+
return "bracket";
|
|
54
|
+
};
|
|
55
|
+
this.closeBracket = function(content) {
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
var plugins = new Array();
|
|
61
|
+
|
|
62
|
+
plugins["importmodule"] = addPluginPattern("importmodule", "tag", "{[", ["string", "builtin"]);
|
|
63
|
+
plugins["documentclass"] = addPluginPattern("documentclass", "tag", "{[", ["", "atom"]);
|
|
64
|
+
plugins["usepackage"] = addPluginPattern("documentclass", "tag", "[", ["atom"]);
|
|
65
|
+
plugins["begin"] = addPluginPattern("documentclass", "tag", "[", ["atom"]);
|
|
66
|
+
plugins["end"] = addPluginPattern("documentclass", "tag", "[", ["atom"]);
|
|
67
|
+
|
|
68
|
+
plugins["DEFAULT"] = function () {
|
|
69
|
+
this.name="DEFAULT";
|
|
70
|
+
this.style="tag";
|
|
71
|
+
|
|
72
|
+
this.styleIdentifier = function(content) {
|
|
73
|
+
};
|
|
74
|
+
this.openBracket = function(content) {
|
|
75
|
+
};
|
|
76
|
+
this.closeBracket = function(content) {
|
|
77
|
+
};
|
|
78
|
+
};
|
|
79
|
+
|
|
80
|
+
function setState(state, f) {
|
|
81
|
+
state.f = f;
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
function normal(source, state) {
|
|
85
|
+
if (source.match(/^\\[a-z]+/)) {
|
|
86
|
+
var cmdName = source.current();
|
|
87
|
+
cmdName = cmdName.substr(1, cmdName.length-1);
|
|
88
|
+
var plug = plugins[cmdName];
|
|
89
|
+
if (typeof(plug) == 'undefined') {
|
|
90
|
+
plug = plugins["DEFAULT"];
|
|
91
|
+
}
|
|
92
|
+
plug = new plug();
|
|
93
|
+
pushCommand(state, plug);
|
|
94
|
+
setState(state, beginParams);
|
|
95
|
+
return plug.style;
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
var ch = source.next();
|
|
99
|
+
if (ch == "%") {
|
|
100
|
+
setState(state, inCComment);
|
|
101
|
+
return "comment";
|
|
102
|
+
}
|
|
103
|
+
else if (ch=='}' || ch==']') {
|
|
104
|
+
plug = peekCommand(state);
|
|
105
|
+
if (plug) {
|
|
106
|
+
plug.closeBracket(ch);
|
|
107
|
+
setState(state, beginParams);
|
|
108
|
+
} else
|
|
109
|
+
return "error";
|
|
110
|
+
return "bracket";
|
|
111
|
+
} else if (ch=='{' || ch=='[') {
|
|
112
|
+
plug = plugins["DEFAULT"];
|
|
113
|
+
plug = new plug();
|
|
114
|
+
pushCommand(state, plug);
|
|
115
|
+
return "bracket";
|
|
116
|
+
}
|
|
117
|
+
else if (/\d/.test(ch)) {
|
|
118
|
+
source.eatWhile(/[\w.%]/);
|
|
119
|
+
return "atom";
|
|
120
|
+
}
|
|
121
|
+
else {
|
|
122
|
+
source.eatWhile(/[\w-_]/);
|
|
123
|
+
return applyMostPowerful(state);
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
function inCComment(source, state) {
|
|
128
|
+
source.skipToEnd();
|
|
129
|
+
setState(state, normal);
|
|
130
|
+
return "comment";
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
function beginParams(source, state) {
|
|
134
|
+
var ch = source.peek();
|
|
135
|
+
if (ch == '{' || ch == '[') {
|
|
136
|
+
var lastPlug = peekCommand(state);
|
|
137
|
+
var style = lastPlug.openBracket(ch);
|
|
138
|
+
source.eat(ch);
|
|
139
|
+
setState(state, normal);
|
|
140
|
+
return "bracket";
|
|
141
|
+
}
|
|
142
|
+
if (/[ \t\r]/.test(ch)) {
|
|
143
|
+
source.eat(ch);
|
|
144
|
+
return null;
|
|
145
|
+
}
|
|
146
|
+
setState(state, normal);
|
|
147
|
+
lastPlug = peekCommand(state);
|
|
148
|
+
if (lastPlug) {
|
|
149
|
+
popCommand(state);
|
|
150
|
+
}
|
|
151
|
+
return normal(source, state);
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
return {
|
|
155
|
+
startState: function() { return { f:normal, cmdState:[] }; },
|
|
156
|
+
copyState: function(s) { return { f: s.f, cmdState: s.cmdState.slice(0, s.cmdState.length) }; },
|
|
157
|
+
|
|
158
|
+
token: function(stream, state) {
|
|
159
|
+
var t = state.f(stream, state);
|
|
160
|
+
var w = stream.current();
|
|
161
|
+
return t;
|
|
162
|
+
}
|
|
163
|
+
};
|
|
164
|
+
});
|
|
165
|
+
|
|
166
|
+
|
|
167
|
+
CodeMirror.defineMIME("text/x-stex", "stex");
|
|
@@ -0,0 +1,183 @@
|
|
|
1
|
+
<!doctype html>
|
|
2
|
+
<html>
|
|
3
|
+
<head>
|
|
4
|
+
<title>CodeMirror: TiddlyWiki mode</title>
|
|
5
|
+
<link rel="stylesheet" href="../../lib/codemirror.css">
|
|
6
|
+
<script src="../../lib/codemirror.js"></script>
|
|
7
|
+
<script src="tiddlywiki.js"></script>
|
|
8
|
+
<link rel="stylesheet" href="tiddlywiki.css">
|
|
9
|
+
<link rel="stylesheet" href="../../doc/docs.css">
|
|
10
|
+
<style type="text/css">.CodeMirror {border-top: 1px solid black; border-bottom: 1px solid black;}</style>
|
|
11
|
+
</head>
|
|
12
|
+
<body>
|
|
13
|
+
<h1>CodeMirror: TiddlyWiki mode</h1>
|
|
14
|
+
|
|
15
|
+
<div><textarea id="code" name="code">
|
|
16
|
+
!TiddlyWiki Formatting
|
|
17
|
+
* Rendered versions can be found at: http://www.tiddlywiki.com/#Reference
|
|
18
|
+
|
|
19
|
+
|!Option|!Syntax|!Output|
|
|
20
|
+
|bold font|{{{''bold''}}}|''bold''|
|
|
21
|
+
|italic type|{{{//italic//}}}|//italic//|
|
|
22
|
+
|underlined text|{{{__underlined__}}}|__underlined__|
|
|
23
|
+
|strikethrough text|{{{--strikethrough--}}}|--strikethrough--|
|
|
24
|
+
|superscript text|{{{^^super^^script}}}|^^super^^script|
|
|
25
|
+
|subscript text|{{{~~sub~~script}}}|~~sub~~script|
|
|
26
|
+
|highlighted text|{{{@@highlighted@@}}}|@@highlighted@@|
|
|
27
|
+
|preformatted text|<html><code>{{{preformatted}}}</code></html>|{{{preformatted}}}|
|
|
28
|
+
|
|
29
|
+
!Block Elements
|
|
30
|
+
!!Headings
|
|
31
|
+
{{{
|
|
32
|
+
!Heading 1
|
|
33
|
+
!!Heading 2
|
|
34
|
+
!!!Heading 3
|
|
35
|
+
!!!!Heading 4
|
|
36
|
+
!!!!!Heading 5
|
|
37
|
+
}}}
|
|
38
|
+
<<<
|
|
39
|
+
|
|
40
|
+
!Heading 1
|
|
41
|
+
|
|
42
|
+
!!Heading 2
|
|
43
|
+
|
|
44
|
+
!!!Heading 3
|
|
45
|
+
|
|
46
|
+
!!!!Heading 4
|
|
47
|
+
|
|
48
|
+
!!!!!Heading 5
|
|
49
|
+
<<<
|
|
50
|
+
|
|
51
|
+
!!Lists
|
|
52
|
+
{{{
|
|
53
|
+
* unordered list, level 1
|
|
54
|
+
** unordered list, level 2
|
|
55
|
+
*** unordered list, level 3
|
|
56
|
+
|
|
57
|
+
# ordered list, level 1
|
|
58
|
+
## ordered list, level 2
|
|
59
|
+
### unordered list, level 3
|
|
60
|
+
|
|
61
|
+
; definition list, term
|
|
62
|
+
: definition list, description
|
|
63
|
+
}}}
|
|
64
|
+
<<<
|
|
65
|
+
* unordered list, level 1
|
|
66
|
+
** unordered list, level 2
|
|
67
|
+
*** unordered list, level 3
|
|
68
|
+
|
|
69
|
+
# ordered list, level 1
|
|
70
|
+
## ordered list, level 2
|
|
71
|
+
### unordered list, level 3
|
|
72
|
+
|
|
73
|
+
; definition list, term
|
|
74
|
+
: definition list, description
|
|
75
|
+
<<<
|
|
76
|
+
|
|
77
|
+
!!Blockquotes
|
|
78
|
+
{{{
|
|
79
|
+
> blockquote, level 1
|
|
80
|
+
>> blockquote, level 2
|
|
81
|
+
>>> blockquote, level 3
|
|
82
|
+
|
|
83
|
+
<<<
|
|
84
|
+
blockquote
|
|
85
|
+
<<<
|
|
86
|
+
}}}
|
|
87
|
+
<<<
|
|
88
|
+
> blockquote, level 1
|
|
89
|
+
>> blockquote, level 2
|
|
90
|
+
>>> blockquote, level 3
|
|
91
|
+
|
|
92
|
+
> blockquote
|
|
93
|
+
<<<
|
|
94
|
+
|
|
95
|
+
!!Preformatted Text
|
|
96
|
+
<html><pre>
|
|
97
|
+
{{{
|
|
98
|
+
preformatted (e.g. code)
|
|
99
|
+
}}}
|
|
100
|
+
</pre></html>
|
|
101
|
+
<<<
|
|
102
|
+
{{{
|
|
103
|
+
preformatted (e.g. code)
|
|
104
|
+
}}}
|
|
105
|
+
<<<
|
|
106
|
+
|
|
107
|
+
!!Code Sections
|
|
108
|
+
{{{
|
|
109
|
+
Text style code
|
|
110
|
+
}}}
|
|
111
|
+
|
|
112
|
+
//{{{
|
|
113
|
+
JS styled code. TiddlyWiki mixed mode should support highlighter switching in the future.
|
|
114
|
+
//}}}
|
|
115
|
+
|
|
116
|
+
<!--{{{-->
|
|
117
|
+
XML styled code. TiddlyWiki mixed mode should support highlighter switching in the future.
|
|
118
|
+
<!--}}}-->
|
|
119
|
+
|
|
120
|
+
!!Tables
|
|
121
|
+
{{{
|
|
122
|
+
|CssClass|k
|
|
123
|
+
|!heading column 1|!heading column 2|
|
|
124
|
+
|row 1, column 1|row 1, column 2|
|
|
125
|
+
|row 2, column 1|row 2, column 2|
|
|
126
|
+
|>|COLSPAN|
|
|
127
|
+
|ROWSPAN| ... |
|
|
128
|
+
|~| ... |
|
|
129
|
+
|CssProperty:value;...| ... |
|
|
130
|
+
|caption|c
|
|
131
|
+
}}}
|
|
132
|
+
''Annotation:''
|
|
133
|
+
* The {{{>}}} marker creates a "colspan", causing the current cell to merge with the one to the right.
|
|
134
|
+
* The {{{~}}} marker creates a "rowspan", causing the current cell to merge with the one above.
|
|
135
|
+
<<<
|
|
136
|
+
|CssClass|k
|
|
137
|
+
|!heading column 1|!heading column 2|
|
|
138
|
+
|row 1, column 1|row 1, column 2|
|
|
139
|
+
|row 2, column 1|row 2, column 2|
|
|
140
|
+
|>|COLSPAN|
|
|
141
|
+
|ROWSPAN| ... |
|
|
142
|
+
|~| ... |
|
|
143
|
+
|CssProperty:value;...| ... |
|
|
144
|
+
|caption|c
|
|
145
|
+
<<<
|
|
146
|
+
!!Images /% TODO %/
|
|
147
|
+
cf. [[TiddlyWiki.com|http://www.tiddlywiki.com/#EmbeddedImages]]
|
|
148
|
+
|
|
149
|
+
!Hyperlinks
|
|
150
|
+
* [[WikiWords|WikiWord]] are automatically transformed to hyperlinks to the respective tiddler
|
|
151
|
+
** the automatic transformation can be suppressed by preceding the respective WikiWord with a tilde ({{{~}}}): {{{~WikiWord}}}
|
|
152
|
+
* [[PrettyLinks]] are enclosed in square brackets and contain the desired tiddler name: {{{[[tiddler name]]}}}
|
|
153
|
+
** optionally, a custom title or description can be added, separated by a pipe character ({{{|}}}): {{{[[title|target]]}}}<br>'''N.B.:''' In this case, the target can also be any website (i.e. URL).
|
|
154
|
+
|
|
155
|
+
!Custom Styling
|
|
156
|
+
* {{{@@CssProperty:value;CssProperty:value;...@@}}}<br>''N.B.:'' CSS color definitions should use lowercase letters to prevent the inadvertent creation of WikiWords.
|
|
157
|
+
* <html><code>{{customCssClass{...}}}</code></html>
|
|
158
|
+
* raw HTML can be inserted by enclosing the respective code in HTML tags: {{{<html> ... </html>}}}
|
|
159
|
+
|
|
160
|
+
!Special Markers
|
|
161
|
+
* {{{<br>}}} forces a manual line break
|
|
162
|
+
* {{{----}}} creates a horizontal ruler
|
|
163
|
+
* [[HTML entities|http://www.tiddlywiki.com/#HtmlEntities]]
|
|
164
|
+
* [[HTML entities local|HtmlEntities]]
|
|
165
|
+
* {{{<<macroName>>}}} calls the respective [[macro|Macros]]
|
|
166
|
+
* To hide text within a tiddler so that it is not displayed, it can be wrapped in {{{/%}}} and {{{%/}}}.<br/>This can be a useful trick for hiding drafts or annotating complex markup.
|
|
167
|
+
* To prevent wiki markup from taking effect for a particular section, that section can be enclosed in three double quotes: e.g. {{{"""WikiWord"""}}}.
|
|
168
|
+
</textarea></div>
|
|
169
|
+
|
|
170
|
+
<script>
|
|
171
|
+
var editor = CodeMirror.fromTextArea(document.getElementById("code"), {
|
|
172
|
+
mode: 'tiddlywiki',
|
|
173
|
+
lineNumbers: true,
|
|
174
|
+
enterMode: 'keep',
|
|
175
|
+
matchBrackets: true
|
|
176
|
+
});
|
|
177
|
+
</script>
|
|
178
|
+
|
|
179
|
+
<p>TiddlyWiki mode supports a single configuration.</p>
|
|
180
|
+
|
|
181
|
+
<p><strong>MIME types defined:</strong> <code>text/x-tiddlywiki</code>.</p>
|
|
182
|
+
</body>
|
|
183
|
+
</html>
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
.cm-s-default span.cm-header {color: blue; font-weight:bold;}
|
|
2
|
+
.cm-s-default span.cm-code {color: #a50;}
|
|
3
|
+
.cm-s-default span.cm-code-inline {color: #660;}
|
|
4
|
+
|
|
5
|
+
.cm-s-default span.cm-quote {color: #555;}
|
|
6
|
+
.cm-s-default span.cm-list {color: #c60;}
|
|
7
|
+
.cm-s-default span.cm-hr {color: #999;}
|
|
8
|
+
.cm-s-default span.cm-em {font-style: italic;}
|
|
9
|
+
.cm-s-default span.cm-strong {font-weight: bold;}
|
|
10
|
+
|
|
11
|
+
.cm-s-default span.cm-link-external {color: blue;}
|
|
12
|
+
.cm-s-default span.cm-brace {color: #170; font-weight: bold;}
|
|
13
|
+
.cm-s-default span.cm-macro {color: #9E3825;}
|
|
14
|
+
.cm-s-default span.cm-table {color: blue;}
|
|
15
|
+
.cm-s-default span.cm-warning {color: red; font-weight: bold;}
|
|
16
|
+
|
|
17
|
+
.cm-s-default span.cm-underlined {text-decoration: underline;}
|
|
18
|
+
.cm-s-default span.cm-line-through {text-decoration: line-through;}
|
|
19
|
+
|
|
20
|
+
.cm-s-default span.cm-comment {color: #666;}
|
|
21
|
+
|