@muze-nl/simplystore 0.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.
Files changed (366) hide show
  1. package/.dockerignore +8 -0
  2. package/.github/workflows/docker-build.yml +45 -0
  3. package/.gitignore~ +1 -0
  4. package/Dockerfile +60 -0
  5. package/LICENSE +21 -0
  6. package/README.md +99 -0
  7. package/data.jsontag +20 -0
  8. package/design/access-management.md +25 -0
  9. package/design/acid.md +31 -0
  10. package/design/commands.md +25 -0
  11. package/design/identity.md +71 -0
  12. package/design/immutability.md +26 -0
  13. package/design/jsontag-selector.md +365 -0
  14. package/design/multitasking.md +13 -0
  15. package/design/thoughts.md +32 -0
  16. package/docs/docker.md +129 -0
  17. package/package.json +29 -0
  18. package/package.json~ +29 -0
  19. package/src/run.mjs +3 -0
  20. package/src/server.mjs +323 -0
  21. package/src/triplestore.mjs +182 -0
  22. package/www/assets/css/style.css +2296 -0
  23. package/www/assets/feather-sprite.svg +1 -0
  24. package/www/assets/img/simplystore-narrow-white.svg +138 -0
  25. package/www/assets/img/simplystore-narrow.svg +138 -0
  26. package/www/assets/img/simplystore-white.svg +153 -0
  27. package/www/assets/img/simplystore.svg +153 -0
  28. package/www/codemirror/AUTHORS +979 -0
  29. package/www/codemirror/CHANGELOG.md +2208 -0
  30. package/www/codemirror/CONTRIBUTING.md +92 -0
  31. package/www/codemirror/LICENSE +21 -0
  32. package/www/codemirror/README.md +47 -0
  33. package/www/codemirror/addon/comment/comment.js +211 -0
  34. package/www/codemirror/addon/comment/continuecomment.js +114 -0
  35. package/www/codemirror/addon/dialog/dialog.css +32 -0
  36. package/www/codemirror/addon/dialog/dialog.js +163 -0
  37. package/www/codemirror/addon/display/autorefresh.js +47 -0
  38. package/www/codemirror/addon/display/fullscreen.css +6 -0
  39. package/www/codemirror/addon/display/fullscreen.js +41 -0
  40. package/www/codemirror/addon/display/panel.js +133 -0
  41. package/www/codemirror/addon/display/placeholder.js +78 -0
  42. package/www/codemirror/addon/display/rulers.js +51 -0
  43. package/www/codemirror/addon/edit/closebrackets.js +201 -0
  44. package/www/codemirror/addon/edit/closetag.js +185 -0
  45. package/www/codemirror/addon/edit/continuelist.js +101 -0
  46. package/www/codemirror/addon/edit/matchbrackets.js +160 -0
  47. package/www/codemirror/addon/edit/matchtags.js +66 -0
  48. package/www/codemirror/addon/edit/trailingspace.js +27 -0
  49. package/www/codemirror/addon/fold/brace-fold.js +119 -0
  50. package/www/codemirror/addon/fold/comment-fold.js +59 -0
  51. package/www/codemirror/addon/fold/foldcode.js +159 -0
  52. package/www/codemirror/addon/fold/foldgutter.css +20 -0
  53. package/www/codemirror/addon/fold/foldgutter.js +169 -0
  54. package/www/codemirror/addon/fold/indent-fold.js +48 -0
  55. package/www/codemirror/addon/fold/markdown-fold.js +49 -0
  56. package/www/codemirror/addon/fold/xml-fold.js +184 -0
  57. package/www/codemirror/addon/hint/anyword-hint.js +41 -0
  58. package/www/codemirror/addon/hint/css-hint.js +66 -0
  59. package/www/codemirror/addon/hint/html-hint.js +351 -0
  60. package/www/codemirror/addon/hint/javascript-hint.js +162 -0
  61. package/www/codemirror/addon/hint/show-hint.css +37 -0
  62. package/www/codemirror/addon/hint/show-hint.js +523 -0
  63. package/www/codemirror/addon/hint/sql-hint.js +304 -0
  64. package/www/codemirror/addon/hint/xml-hint.js +132 -0
  65. package/www/codemirror/addon/lint/coffeescript-lint.js +47 -0
  66. package/www/codemirror/addon/lint/css-lint.js +40 -0
  67. package/www/codemirror/addon/lint/html-lint.js +59 -0
  68. package/www/codemirror/addon/lint/javascript-lint.js +65 -0
  69. package/www/codemirror/addon/lint/json-lint.js +40 -0
  70. package/www/codemirror/addon/lint/lint.css +79 -0
  71. package/www/codemirror/addon/lint/lint.js +291 -0
  72. package/www/codemirror/addon/lint/yaml-lint.js +41 -0
  73. package/www/codemirror/addon/merge/merge.css +119 -0
  74. package/www/codemirror/addon/merge/merge.js +1018 -0
  75. package/www/codemirror/addon/mode/loadmode.js +66 -0
  76. package/www/codemirror/addon/mode/multiplex.js +136 -0
  77. package/www/codemirror/addon/mode/multiplex_test.js +49 -0
  78. package/www/codemirror/addon/mode/overlay.js +90 -0
  79. package/www/codemirror/addon/mode/simple.js +216 -0
  80. package/www/codemirror/addon/runmode/colorize.js +40 -0
  81. package/www/codemirror/addon/runmode/runmode-standalone.js +334 -0
  82. package/www/codemirror/addon/runmode/runmode.js +76 -0
  83. package/www/codemirror/addon/runmode/runmode.node.js +329 -0
  84. package/www/codemirror/addon/scroll/annotatescrollbar.js +128 -0
  85. package/www/codemirror/addon/scroll/scrollpastend.js +48 -0
  86. package/www/codemirror/addon/scroll/simplescrollbars.css +66 -0
  87. package/www/codemirror/addon/scroll/simplescrollbars.js +152 -0
  88. package/www/codemirror/addon/search/jump-to-line.js +53 -0
  89. package/www/codemirror/addon/search/match-highlighter.js +167 -0
  90. package/www/codemirror/addon/search/matchesonscrollbar.css +8 -0
  91. package/www/codemirror/addon/search/matchesonscrollbar.js +97 -0
  92. package/www/codemirror/addon/search/search.js +295 -0
  93. package/www/codemirror/addon/search/searchcursor.js +305 -0
  94. package/www/codemirror/addon/selection/active-line.js +72 -0
  95. package/www/codemirror/addon/selection/mark-selection.js +119 -0
  96. package/www/codemirror/addon/selection/selection-pointer.js +98 -0
  97. package/www/codemirror/addon/tern/tern.css +87 -0
  98. package/www/codemirror/addon/tern/tern.js +756 -0
  99. package/www/codemirror/addon/tern/worker.js +44 -0
  100. package/www/codemirror/addon/wrap/hardwrap.js +160 -0
  101. package/www/codemirror/bin/source-highlight +48 -0
  102. package/www/codemirror/keymap/emacs.js +545 -0
  103. package/www/codemirror/keymap/sublime.js +720 -0
  104. package/www/codemirror/keymap/vim.js +5978 -0
  105. package/www/codemirror/lib/codemirror.css +344 -0
  106. package/www/codemirror/lib/codemirror.js +9874 -0
  107. package/www/codemirror/mode/apl/apl.js +174 -0
  108. package/www/codemirror/mode/asciiarmor/asciiarmor.js +74 -0
  109. package/www/codemirror/mode/asn.1/asn.1.js +204 -0
  110. package/www/codemirror/mode/asterisk/asterisk.js +220 -0
  111. package/www/codemirror/mode/brainfuck/brainfuck.js +85 -0
  112. package/www/codemirror/mode/clike/clike.js +940 -0
  113. package/www/codemirror/mode/clojure/clojure.js +292 -0
  114. package/www/codemirror/mode/cmake/cmake.js +97 -0
  115. package/www/codemirror/mode/cobol/cobol.js +255 -0
  116. package/www/codemirror/mode/coffeescript/coffeescript.js +359 -0
  117. package/www/codemirror/mode/commonlisp/commonlisp.js +125 -0
  118. package/www/codemirror/mode/crystal/crystal.js +433 -0
  119. package/www/codemirror/mode/css/css.js +862 -0
  120. package/www/codemirror/mode/cypher/cypher.js +152 -0
  121. package/www/codemirror/mode/d/d.js +223 -0
  122. package/www/codemirror/mode/dart/dart.js +166 -0
  123. package/www/codemirror/mode/diff/diff.js +47 -0
  124. package/www/codemirror/mode/django/django.js +356 -0
  125. package/www/codemirror/mode/dockerfile/dockerfile.js +211 -0
  126. package/www/codemirror/mode/dtd/dtd.js +142 -0
  127. package/www/codemirror/mode/dylan/dylan.js +352 -0
  128. package/www/codemirror/mode/ebnf/ebnf.js +195 -0
  129. package/www/codemirror/mode/ecl/ecl.js +206 -0
  130. package/www/codemirror/mode/eiffel/eiffel.js +160 -0
  131. package/www/codemirror/mode/elm/elm.js +245 -0
  132. package/www/codemirror/mode/erlang/erlang.js +619 -0
  133. package/www/codemirror/mode/factor/factor.js +85 -0
  134. package/www/codemirror/mode/fcl/fcl.js +173 -0
  135. package/www/codemirror/mode/forth/forth.js +180 -0
  136. package/www/codemirror/mode/fortran/fortran.js +188 -0
  137. package/www/codemirror/mode/gas/gas.js +353 -0
  138. package/www/codemirror/mode/gfm/gfm.js +129 -0
  139. package/www/codemirror/mode/gherkin/gherkin.js +178 -0
  140. package/www/codemirror/mode/go/go.js +187 -0
  141. package/www/codemirror/mode/groovy/groovy.js +247 -0
  142. package/www/codemirror/mode/haml/haml.js +161 -0
  143. package/www/codemirror/mode/handlebars/handlebars.js +70 -0
  144. package/www/codemirror/mode/haskell/haskell.js +268 -0
  145. package/www/codemirror/mode/haskell-literate/haskell-literate.js +43 -0
  146. package/www/codemirror/mode/haxe/haxe.js +515 -0
  147. package/www/codemirror/mode/htmlembedded/htmlembedded.js +37 -0
  148. package/www/codemirror/mode/htmlmixed/htmlmixed.js +153 -0
  149. package/www/codemirror/mode/http/http.js +113 -0
  150. package/www/codemirror/mode/idl/idl.js +290 -0
  151. package/www/codemirror/mode/javascript/javascript.js +960 -0
  152. package/www/codemirror/mode/jinja2/jinja2.js +193 -0
  153. package/www/codemirror/mode/jsx/jsx.js +148 -0
  154. package/www/codemirror/mode/julia/julia.js +390 -0
  155. package/www/codemirror/mode/livescript/livescript.js +280 -0
  156. package/www/codemirror/mode/lua/lua.js +160 -0
  157. package/www/codemirror/mode/markdown/markdown.js +886 -0
  158. package/www/codemirror/mode/mathematica/mathematica.js +176 -0
  159. package/www/codemirror/mode/mbox/mbox.js +129 -0
  160. package/www/codemirror/mode/meta.js +221 -0
  161. package/www/codemirror/mode/mirc/mirc.js +193 -0
  162. package/www/codemirror/mode/mllike/mllike.js +359 -0
  163. package/www/codemirror/mode/modelica/modelica.js +245 -0
  164. package/www/codemirror/mode/mscgen/mscgen.js +175 -0
  165. package/www/codemirror/mode/mumps/mumps.js +148 -0
  166. package/www/codemirror/mode/nginx/nginx.js +178 -0
  167. package/www/codemirror/mode/nsis/nsis.js +95 -0
  168. package/www/codemirror/mode/ntriples/ntriples.js +195 -0
  169. package/www/codemirror/mode/octave/octave.js +139 -0
  170. package/www/codemirror/mode/oz/oz.js +252 -0
  171. package/www/codemirror/mode/pascal/pascal.js +136 -0
  172. package/www/codemirror/mode/pegjs/pegjs.js +111 -0
  173. package/www/codemirror/mode/perl/perl.js +836 -0
  174. package/www/codemirror/mode/php/php.js +234 -0
  175. package/www/codemirror/mode/pig/pig.js +178 -0
  176. package/www/codemirror/mode/powershell/powershell.js +398 -0
  177. package/www/codemirror/mode/properties/properties.js +78 -0
  178. package/www/codemirror/mode/protobuf/protobuf.js +72 -0
  179. package/www/codemirror/mode/pug/pug.js +591 -0
  180. package/www/codemirror/mode/puppet/puppet.js +220 -0
  181. package/www/codemirror/mode/python/python.js +402 -0
  182. package/www/codemirror/mode/q/q.js +139 -0
  183. package/www/codemirror/mode/r/r.js +190 -0
  184. package/www/codemirror/mode/rpm/changes/index.html +66 -0
  185. package/www/codemirror/mode/rpm/rpm.js +109 -0
  186. package/www/codemirror/mode/rst/rst.js +557 -0
  187. package/www/codemirror/mode/ruby/ruby.js +303 -0
  188. package/www/codemirror/mode/rust/rust.js +72 -0
  189. package/www/codemirror/mode/sas/sas.js +303 -0
  190. package/www/codemirror/mode/sass/sass.js +459 -0
  191. package/www/codemirror/mode/scheme/scheme.js +284 -0
  192. package/www/codemirror/mode/shell/shell.js +168 -0
  193. package/www/codemirror/mode/sieve/sieve.js +193 -0
  194. package/www/codemirror/mode/slim/slim.js +575 -0
  195. package/www/codemirror/mode/smalltalk/smalltalk.js +168 -0
  196. package/www/codemirror/mode/smarty/smarty.js +225 -0
  197. package/www/codemirror/mode/solr/solr.js +104 -0
  198. package/www/codemirror/mode/soy/soy.js +665 -0
  199. package/www/codemirror/mode/sparql/sparql.js +184 -0
  200. package/www/codemirror/mode/spreadsheet/spreadsheet.js +112 -0
  201. package/www/codemirror/mode/sql/sql.js +525 -0
  202. package/www/codemirror/mode/stex/stex.js +264 -0
  203. package/www/codemirror/mode/stylus/stylus.js +775 -0
  204. package/www/codemirror/mode/swift/swift.js +221 -0
  205. package/www/codemirror/mode/tcl/tcl.js +140 -0
  206. package/www/codemirror/mode/textile/textile.js +469 -0
  207. package/www/codemirror/mode/tiddlywiki/tiddlywiki.css +14 -0
  208. package/www/codemirror/mode/tiddlywiki/tiddlywiki.js +308 -0
  209. package/www/codemirror/mode/tiki/tiki.css +26 -0
  210. package/www/codemirror/mode/tiki/tiki.js +312 -0
  211. package/www/codemirror/mode/toml/toml.js +88 -0
  212. package/www/codemirror/mode/tornado/tornado.js +68 -0
  213. package/www/codemirror/mode/troff/troff.js +84 -0
  214. package/www/codemirror/mode/ttcn/ttcn.js +283 -0
  215. package/www/codemirror/mode/ttcn-cfg/ttcn-cfg.js +214 -0
  216. package/www/codemirror/mode/turtle/turtle.js +162 -0
  217. package/www/codemirror/mode/twig/twig.js +141 -0
  218. package/www/codemirror/mode/vb/vb.js +275 -0
  219. package/www/codemirror/mode/vbscript/vbscript.js +350 -0
  220. package/www/codemirror/mode/velocity/velocity.js +202 -0
  221. package/www/codemirror/mode/verilog/verilog.js +781 -0
  222. package/www/codemirror/mode/vhdl/vhdl.js +189 -0
  223. package/www/codemirror/mode/vue/vue.js +77 -0
  224. package/www/codemirror/mode/wast/wast.js +132 -0
  225. package/www/codemirror/mode/webidl/webidl.js +195 -0
  226. package/www/codemirror/mode/xml/xml.js +417 -0
  227. package/www/codemirror/mode/xquery/xquery.js +448 -0
  228. package/www/codemirror/mode/yacas/yacas.js +204 -0
  229. package/www/codemirror/mode/yaml/yaml.js +120 -0
  230. package/www/codemirror/mode/yaml-frontmatter/yaml-frontmatter.js +72 -0
  231. package/www/codemirror/mode/z80/z80.js +116 -0
  232. package/www/codemirror/package.json +52 -0
  233. package/www/codemirror/rollup.config.js +52 -0
  234. package/www/codemirror/src/addon/runmode/codemirror-standalone.js +24 -0
  235. package/www/codemirror/src/addon/runmode/codemirror.node.js +21 -0
  236. package/www/codemirror/src/addon/runmode/runmode-standalone.js +2 -0
  237. package/www/codemirror/src/addon/runmode/runmode.node.js +2 -0
  238. package/www/codemirror/src/codemirror.js +3 -0
  239. package/www/codemirror/src/display/Display.js +116 -0
  240. package/www/codemirror/src/display/focus.js +50 -0
  241. package/www/codemirror/src/display/gutters.js +44 -0
  242. package/www/codemirror/src/display/highlight_worker.js +55 -0
  243. package/www/codemirror/src/display/line_numbers.js +48 -0
  244. package/www/codemirror/src/display/mode_state.js +22 -0
  245. package/www/codemirror/src/display/operations.js +206 -0
  246. package/www/codemirror/src/display/scroll_events.js +132 -0
  247. package/www/codemirror/src/display/scrollbars.js +194 -0
  248. package/www/codemirror/src/display/scrolling.js +186 -0
  249. package/www/codemirror/src/display/selection.js +173 -0
  250. package/www/codemirror/src/display/update_display.js +267 -0
  251. package/www/codemirror/src/display/update_line.js +189 -0
  252. package/www/codemirror/src/display/update_lines.js +82 -0
  253. package/www/codemirror/src/display/view_tracking.js +153 -0
  254. package/www/codemirror/src/edit/CodeMirror.js +217 -0
  255. package/www/codemirror/src/edit/commands.js +178 -0
  256. package/www/codemirror/src/edit/deleteNearSelection.js +30 -0
  257. package/www/codemirror/src/edit/drop_events.js +130 -0
  258. package/www/codemirror/src/edit/fromTextArea.js +61 -0
  259. package/www/codemirror/src/edit/global_events.js +45 -0
  260. package/www/codemirror/src/edit/key_events.js +163 -0
  261. package/www/codemirror/src/edit/legacy.js +62 -0
  262. package/www/codemirror/src/edit/main.js +69 -0
  263. package/www/codemirror/src/edit/methods.js +555 -0
  264. package/www/codemirror/src/edit/mouse_events.js +417 -0
  265. package/www/codemirror/src/edit/options.js +194 -0
  266. package/www/codemirror/src/edit/utils.js +7 -0
  267. package/www/codemirror/src/input/ContentEditableInput.js +546 -0
  268. package/www/codemirror/src/input/TextareaInput.js +380 -0
  269. package/www/codemirror/src/input/indent.js +71 -0
  270. package/www/codemirror/src/input/input.js +134 -0
  271. package/www/codemirror/src/input/keymap.js +147 -0
  272. package/www/codemirror/src/input/keynames.js +17 -0
  273. package/www/codemirror/src/input/movement.js +111 -0
  274. package/www/codemirror/src/line/highlight.js +284 -0
  275. package/www/codemirror/src/line/line_data.js +349 -0
  276. package/www/codemirror/src/line/pos.js +40 -0
  277. package/www/codemirror/src/line/saw_special_spans.js +10 -0
  278. package/www/codemirror/src/line/spans.js +390 -0
  279. package/www/codemirror/src/line/utils_line.js +85 -0
  280. package/www/codemirror/src/measurement/position_measurement.js +702 -0
  281. package/www/codemirror/src/measurement/widgets.js +26 -0
  282. package/www/codemirror/src/model/Doc.js +436 -0
  283. package/www/codemirror/src/model/change_measurement.js +61 -0
  284. package/www/codemirror/src/model/changes.js +339 -0
  285. package/www/codemirror/src/model/chunk.js +167 -0
  286. package/www/codemirror/src/model/document_data.js +112 -0
  287. package/www/codemirror/src/model/history.js +228 -0
  288. package/www/codemirror/src/model/line_widget.js +78 -0
  289. package/www/codemirror/src/model/mark_text.js +293 -0
  290. package/www/codemirror/src/model/selection.js +84 -0
  291. package/www/codemirror/src/model/selection_updates.js +216 -0
  292. package/www/codemirror/src/modes.js +96 -0
  293. package/www/codemirror/src/util/StringStream.js +90 -0
  294. package/www/codemirror/src/util/bidi.js +215 -0
  295. package/www/codemirror/src/util/browser.js +34 -0
  296. package/www/codemirror/src/util/dom.js +101 -0
  297. package/www/codemirror/src/util/event.js +103 -0
  298. package/www/codemirror/src/util/feature_detection.js +84 -0
  299. package/www/codemirror/src/util/misc.js +168 -0
  300. package/www/codemirror/src/util/operation_group.js +72 -0
  301. package/www/codemirror/theme/3024-day.css +41 -0
  302. package/www/codemirror/theme/3024-night.css +39 -0
  303. package/www/codemirror/theme/abbott.css +268 -0
  304. package/www/codemirror/theme/abcdef.css +32 -0
  305. package/www/codemirror/theme/ambiance-mobile.css +5 -0
  306. package/www/codemirror/theme/ambiance.css +74 -0
  307. package/www/codemirror/theme/ayu-dark.css +44 -0
  308. package/www/codemirror/theme/ayu-mirage.css +45 -0
  309. package/www/codemirror/theme/base16-dark.css +40 -0
  310. package/www/codemirror/theme/base16-light.css +38 -0
  311. package/www/codemirror/theme/bespin.css +34 -0
  312. package/www/codemirror/theme/blackboard.css +32 -0
  313. package/www/codemirror/theme/cobalt.css +25 -0
  314. package/www/codemirror/theme/colorforth.css +33 -0
  315. package/www/codemirror/theme/darcula.css +53 -0
  316. package/www/codemirror/theme/dracula.css +40 -0
  317. package/www/codemirror/theme/duotone-dark.css +35 -0
  318. package/www/codemirror/theme/duotone-light.css +36 -0
  319. package/www/codemirror/theme/eclipse.css +23 -0
  320. package/www/codemirror/theme/elegant.css +13 -0
  321. package/www/codemirror/theme/erlang-dark.css +34 -0
  322. package/www/codemirror/theme/gruvbox-dark.css +39 -0
  323. package/www/codemirror/theme/hopscotch.css +34 -0
  324. package/www/codemirror/theme/icecoder.css +43 -0
  325. package/www/codemirror/theme/idea.css +42 -0
  326. package/www/codemirror/theme/isotope.css +34 -0
  327. package/www/codemirror/theme/juejin.css +30 -0
  328. package/www/codemirror/theme/lesser-dark.css +47 -0
  329. package/www/codemirror/theme/liquibyte.css +95 -0
  330. package/www/codemirror/theme/lucario.css +37 -0
  331. package/www/codemirror/theme/material-darker.css +135 -0
  332. package/www/codemirror/theme/material-ocean.css +141 -0
  333. package/www/codemirror/theme/material-palenight.css +141 -0
  334. package/www/codemirror/theme/material.css +141 -0
  335. package/www/codemirror/theme/mbo.css +37 -0
  336. package/www/codemirror/theme/mdn-like.css +46 -0
  337. package/www/codemirror/theme/midnight.css +39 -0
  338. package/www/codemirror/theme/monokai.css +41 -0
  339. package/www/codemirror/theme/moxer.css +143 -0
  340. package/www/codemirror/theme/neat.css +12 -0
  341. package/www/codemirror/theme/neo.css +43 -0
  342. package/www/codemirror/theme/night.css +27 -0
  343. package/www/codemirror/theme/nord.css +42 -0
  344. package/www/codemirror/theme/oceanic-next.css +46 -0
  345. package/www/codemirror/theme/panda-syntax.css +85 -0
  346. package/www/codemirror/theme/paraiso-dark.css +38 -0
  347. package/www/codemirror/theme/paraiso-light.css +38 -0
  348. package/www/codemirror/theme/pastel-on-dark.css +52 -0
  349. package/www/codemirror/theme/railscasts.css +34 -0
  350. package/www/codemirror/theme/rubyblue.css +25 -0
  351. package/www/codemirror/theme/seti.css +44 -0
  352. package/www/codemirror/theme/shadowfox.css +52 -0
  353. package/www/codemirror/theme/solarized.css +165 -0
  354. package/www/codemirror/theme/ssms.css +16 -0
  355. package/www/codemirror/theme/the-matrix.css +30 -0
  356. package/www/codemirror/theme/tomorrow-night-bright.css +35 -0
  357. package/www/codemirror/theme/tomorrow-night-eighties.css +38 -0
  358. package/www/codemirror/theme/ttcn.css +64 -0
  359. package/www/codemirror/theme/twilight.css +32 -0
  360. package/www/codemirror/theme/vibrant-ink.css +34 -0
  361. package/www/codemirror/theme/xq-dark.css +53 -0
  362. package/www/codemirror/theme/xq-light.css +43 -0
  363. package/www/codemirror/theme/yeti.css +44 -0
  364. package/www/codemirror/theme/yonce.css +59 -0
  365. package/www/codemirror/theme/zenburn.css +37 -0
  366. package/www/index.html +216 -0
@@ -0,0 +1,66 @@
1
+ // CodeMirror, copyright (c) by Marijn Haverbeke and others
2
+ // Distributed under an MIT license: https://codemirror.net/5/LICENSE
3
+
4
+ (function(mod) {
5
+ if (typeof exports == "object" && typeof module == "object") // CommonJS
6
+ mod(require("../../lib/codemirror"), "cjs");
7
+ else if (typeof define == "function" && define.amd) // AMD
8
+ define(["../../lib/codemirror"], function(CM) { mod(CM, "amd"); });
9
+ else // Plain browser env
10
+ mod(CodeMirror, "plain");
11
+ })(function(CodeMirror, env) {
12
+ if (!CodeMirror.modeURL) CodeMirror.modeURL = "../mode/%N/%N.js";
13
+
14
+ var loading = {};
15
+ function splitCallback(cont, n) {
16
+ var countDown = n;
17
+ return function() { if (--countDown == 0) cont(); };
18
+ }
19
+ function ensureDeps(mode, cont, options) {
20
+ var modeObj = CodeMirror.modes[mode], deps = modeObj && modeObj.dependencies;
21
+ if (!deps) return cont();
22
+ var missing = [];
23
+ for (var i = 0; i < deps.length; ++i) {
24
+ if (!CodeMirror.modes.hasOwnProperty(deps[i]))
25
+ missing.push(deps[i]);
26
+ }
27
+ if (!missing.length) return cont();
28
+ var split = splitCallback(cont, missing.length);
29
+ for (var i = 0; i < missing.length; ++i)
30
+ CodeMirror.requireMode(missing[i], split, options);
31
+ }
32
+
33
+ CodeMirror.requireMode = function(mode, cont, options) {
34
+ if (typeof mode != "string") mode = mode.name;
35
+ if (CodeMirror.modes.hasOwnProperty(mode)) return ensureDeps(mode, cont, options);
36
+ if (loading.hasOwnProperty(mode)) return loading[mode].push(cont);
37
+
38
+ var file = options && options.path ? options.path(mode) : CodeMirror.modeURL.replace(/%N/g, mode);
39
+ if (options && options.loadMode) {
40
+ options.loadMode(file, function() { ensureDeps(mode, cont, options) })
41
+ } else if (env == "plain") {
42
+ var script = document.createElement("script");
43
+ script.src = file;
44
+ var others = document.getElementsByTagName("script")[0];
45
+ var list = loading[mode] = [cont];
46
+ CodeMirror.on(script, "load", function() {
47
+ ensureDeps(mode, function() {
48
+ for (var i = 0; i < list.length; ++i) list[i]();
49
+ }, options);
50
+ });
51
+ others.parentNode.insertBefore(script, others);
52
+ } else if (env == "cjs") {
53
+ require(file);
54
+ cont();
55
+ } else if (env == "amd") {
56
+ requirejs([file], cont);
57
+ }
58
+ };
59
+
60
+ CodeMirror.autoLoadMode = function(instance, mode, options) {
61
+ if (!CodeMirror.modes.hasOwnProperty(mode))
62
+ CodeMirror.requireMode(mode, function() {
63
+ instance.setOption("mode", instance.getOption("mode"));
64
+ }, options);
65
+ };
66
+ });
@@ -0,0 +1,136 @@
1
+ // CodeMirror, copyright (c) by Marijn Haverbeke and others
2
+ // Distributed under an MIT license: https://codemirror.net/5/LICENSE
3
+
4
+ (function(mod) {
5
+ if (typeof exports == "object" && typeof module == "object") // CommonJS
6
+ mod(require("../../lib/codemirror"));
7
+ else if (typeof define == "function" && define.amd) // AMD
8
+ define(["../../lib/codemirror"], mod);
9
+ else // Plain browser env
10
+ mod(CodeMirror);
11
+ })(function(CodeMirror) {
12
+ "use strict";
13
+
14
+ CodeMirror.multiplexingMode = function(outer /*, others */) {
15
+ // Others should be {open, close, mode [, delimStyle] [, innerStyle] [, parseDelimiters]} objects
16
+ var others = Array.prototype.slice.call(arguments, 1);
17
+
18
+ function indexOf(string, pattern, from, returnEnd) {
19
+ if (typeof pattern == "string") {
20
+ var found = string.indexOf(pattern, from);
21
+ return returnEnd && found > -1 ? found + pattern.length : found;
22
+ }
23
+ var m = pattern.exec(from ? string.slice(from) : string);
24
+ return m ? m.index + from + (returnEnd ? m[0].length : 0) : -1;
25
+ }
26
+
27
+ return {
28
+ startState: function() {
29
+ return {
30
+ outer: CodeMirror.startState(outer),
31
+ innerActive: null,
32
+ inner: null,
33
+ startingInner: false
34
+ };
35
+ },
36
+
37
+ copyState: function(state) {
38
+ return {
39
+ outer: CodeMirror.copyState(outer, state.outer),
40
+ innerActive: state.innerActive,
41
+ inner: state.innerActive && CodeMirror.copyState(state.innerActive.mode, state.inner),
42
+ startingInner: state.startingInner
43
+ };
44
+ },
45
+
46
+ token: function(stream, state) {
47
+ if (!state.innerActive) {
48
+ var cutOff = Infinity, oldContent = stream.string;
49
+ for (var i = 0; i < others.length; ++i) {
50
+ var other = others[i];
51
+ var found = indexOf(oldContent, other.open, stream.pos);
52
+ if (found == stream.pos) {
53
+ if (!other.parseDelimiters) stream.match(other.open);
54
+ state.startingInner = !!other.parseDelimiters
55
+ state.innerActive = other;
56
+
57
+ // Get the outer indent, making sure to handle CodeMirror.Pass
58
+ var outerIndent = 0;
59
+ if (outer.indent) {
60
+ var possibleOuterIndent = outer.indent(state.outer, "", "");
61
+ if (possibleOuterIndent !== CodeMirror.Pass) outerIndent = possibleOuterIndent;
62
+ }
63
+
64
+ state.inner = CodeMirror.startState(other.mode, outerIndent);
65
+ return other.delimStyle && (other.delimStyle + " " + other.delimStyle + "-open");
66
+ } else if (found != -1 && found < cutOff) {
67
+ cutOff = found;
68
+ }
69
+ }
70
+ if (cutOff != Infinity) stream.string = oldContent.slice(0, cutOff);
71
+ var outerToken = outer.token(stream, state.outer);
72
+ if (cutOff != Infinity) stream.string = oldContent;
73
+ return outerToken;
74
+ } else {
75
+ var curInner = state.innerActive, oldContent = stream.string;
76
+ if (!curInner.close && stream.sol()) {
77
+ state.innerActive = state.inner = null;
78
+ return this.token(stream, state);
79
+ }
80
+ var found = curInner.close && !state.startingInner ?
81
+ indexOf(oldContent, curInner.close, stream.pos, curInner.parseDelimiters) : -1;
82
+ if (found == stream.pos && !curInner.parseDelimiters) {
83
+ stream.match(curInner.close);
84
+ state.innerActive = state.inner = null;
85
+ return curInner.delimStyle && (curInner.delimStyle + " " + curInner.delimStyle + "-close");
86
+ }
87
+ if (found > -1) stream.string = oldContent.slice(0, found);
88
+ var innerToken = curInner.mode.token(stream, state.inner);
89
+ if (found > -1) stream.string = oldContent;
90
+ else if (stream.pos > stream.start) state.startingInner = false
91
+
92
+ if (found == stream.pos && curInner.parseDelimiters)
93
+ state.innerActive = state.inner = null;
94
+
95
+ if (curInner.innerStyle) {
96
+ if (innerToken) innerToken = innerToken + " " + curInner.innerStyle;
97
+ else innerToken = curInner.innerStyle;
98
+ }
99
+
100
+ return innerToken;
101
+ }
102
+ },
103
+
104
+ indent: function(state, textAfter, line) {
105
+ var mode = state.innerActive ? state.innerActive.mode : outer;
106
+ if (!mode.indent) return CodeMirror.Pass;
107
+ return mode.indent(state.innerActive ? state.inner : state.outer, textAfter, line);
108
+ },
109
+
110
+ blankLine: function(state) {
111
+ var mode = state.innerActive ? state.innerActive.mode : outer;
112
+ if (mode.blankLine) {
113
+ mode.blankLine(state.innerActive ? state.inner : state.outer);
114
+ }
115
+ if (!state.innerActive) {
116
+ for (var i = 0; i < others.length; ++i) {
117
+ var other = others[i];
118
+ if (other.open === "\n") {
119
+ state.innerActive = other;
120
+ state.inner = CodeMirror.startState(other.mode, mode.indent ? mode.indent(state.outer, "", "") : 0);
121
+ }
122
+ }
123
+ } else if (state.innerActive.close === "\n") {
124
+ state.innerActive = state.inner = null;
125
+ }
126
+ },
127
+
128
+ electricChars: outer.electricChars,
129
+
130
+ innerMode: function(state) {
131
+ return state.inner ? {state: state.inner, mode: state.innerActive.mode} : {state: state.outer, mode: outer};
132
+ }
133
+ };
134
+ };
135
+
136
+ });
@@ -0,0 +1,49 @@
1
+ // CodeMirror, copyright (c) by Marijn Haverbeke and others
2
+ // Distributed under an MIT license: https://codemirror.net/5/LICENSE
3
+
4
+ (function() {
5
+ CodeMirror.defineMode("markdown_with_stex", function(){
6
+ var inner = CodeMirror.getMode({}, "stex");
7
+ var outer = CodeMirror.getMode({}, "markdown");
8
+
9
+ var innerOptions = {
10
+ open: '$',
11
+ close: '$',
12
+ mode: inner,
13
+ delimStyle: 'delim',
14
+ innerStyle: 'inner'
15
+ };
16
+
17
+ return CodeMirror.multiplexingMode(outer, innerOptions);
18
+ });
19
+
20
+ var mode = CodeMirror.getMode({}, "markdown_with_stex");
21
+
22
+ function MT(name) {
23
+ test.mode(
24
+ name,
25
+ mode,
26
+ Array.prototype.slice.call(arguments, 1),
27
+ 'multiplexing');
28
+ }
29
+
30
+ MT(
31
+ "stexInsideMarkdown",
32
+ "[strong **Equation:**] [delim&delim-open $][inner&tag \\pi][delim&delim-close $]");
33
+
34
+ CodeMirror.defineMode("identical_delim_multiplex", function() {
35
+ return CodeMirror.multiplexingMode(CodeMirror.getMode({indentUnit: 2}, "javascript"), {
36
+ open: "#",
37
+ close: "#",
38
+ mode: CodeMirror.getMode({}, "markdown"),
39
+ parseDelimiters: true,
40
+ innerStyle: "q"
41
+ });
42
+ });
43
+
44
+ var mode2 = CodeMirror.getMode({}, "identical_delim_multiplex");
45
+
46
+ test.mode("identical_delimiters_with_parseDelimiters", mode2, [
47
+ "[keyword let] [def x] [operator =] [q #foo][q&em *bar*][q #];"
48
+ ], "multiplexing")
49
+ })();
@@ -0,0 +1,90 @@
1
+ // CodeMirror, copyright (c) by Marijn Haverbeke and others
2
+ // Distributed under an MIT license: https://codemirror.net/5/LICENSE
3
+
4
+ // Utility function that allows modes to be combined. The mode given
5
+ // as the base argument takes care of most of the normal mode
6
+ // functionality, but a second (typically simple) mode is used, which
7
+ // can override the style of text. Both modes get to parse all of the
8
+ // text, but when both assign a non-null style to a piece of code, the
9
+ // overlay wins, unless the combine argument was true and not overridden,
10
+ // or state.overlay.combineTokens was true, in which case the styles are
11
+ // combined.
12
+
13
+ (function(mod) {
14
+ if (typeof exports == "object" && typeof module == "object") // CommonJS
15
+ mod(require("../../lib/codemirror"));
16
+ else if (typeof define == "function" && define.amd) // AMD
17
+ define(["../../lib/codemirror"], mod);
18
+ else // Plain browser env
19
+ mod(CodeMirror);
20
+ })(function(CodeMirror) {
21
+ "use strict";
22
+
23
+ CodeMirror.overlayMode = function(base, overlay, combine) {
24
+ return {
25
+ startState: function() {
26
+ return {
27
+ base: CodeMirror.startState(base),
28
+ overlay: CodeMirror.startState(overlay),
29
+ basePos: 0, baseCur: null,
30
+ overlayPos: 0, overlayCur: null,
31
+ streamSeen: null
32
+ };
33
+ },
34
+ copyState: function(state) {
35
+ return {
36
+ base: CodeMirror.copyState(base, state.base),
37
+ overlay: CodeMirror.copyState(overlay, state.overlay),
38
+ basePos: state.basePos, baseCur: null,
39
+ overlayPos: state.overlayPos, overlayCur: null
40
+ };
41
+ },
42
+
43
+ token: function(stream, state) {
44
+ if (stream != state.streamSeen ||
45
+ Math.min(state.basePos, state.overlayPos) < stream.start) {
46
+ state.streamSeen = stream;
47
+ state.basePos = state.overlayPos = stream.start;
48
+ }
49
+
50
+ if (stream.start == state.basePos) {
51
+ state.baseCur = base.token(stream, state.base);
52
+ state.basePos = stream.pos;
53
+ }
54
+ if (stream.start == state.overlayPos) {
55
+ stream.pos = stream.start;
56
+ state.overlayCur = overlay.token(stream, state.overlay);
57
+ state.overlayPos = stream.pos;
58
+ }
59
+ stream.pos = Math.min(state.basePos, state.overlayPos);
60
+
61
+ // state.overlay.combineTokens always takes precedence over combine,
62
+ // unless set to null
63
+ if (state.overlayCur == null) return state.baseCur;
64
+ else if (state.baseCur != null &&
65
+ state.overlay.combineTokens ||
66
+ combine && state.overlay.combineTokens == null)
67
+ return state.baseCur + " " + state.overlayCur;
68
+ else return state.overlayCur;
69
+ },
70
+
71
+ indent: base.indent && function(state, textAfter, line) {
72
+ return base.indent(state.base, textAfter, line);
73
+ },
74
+ electricChars: base.electricChars,
75
+
76
+ innerMode: function(state) { return {state: state.base, mode: base}; },
77
+
78
+ blankLine: function(state) {
79
+ var baseToken, overlayToken;
80
+ if (base.blankLine) baseToken = base.blankLine(state.base);
81
+ if (overlay.blankLine) overlayToken = overlay.blankLine(state.overlay);
82
+
83
+ return overlayToken == null ?
84
+ baseToken :
85
+ (combine && baseToken != null ? baseToken + " " + overlayToken : overlayToken);
86
+ }
87
+ };
88
+ };
89
+
90
+ });
@@ -0,0 +1,216 @@
1
+ // CodeMirror, copyright (c) by Marijn Haverbeke and others
2
+ // Distributed under an MIT license: https://codemirror.net/5/LICENSE
3
+
4
+ (function(mod) {
5
+ if (typeof exports == "object" && typeof module == "object") // CommonJS
6
+ mod(require("../../lib/codemirror"));
7
+ else if (typeof define == "function" && define.amd) // AMD
8
+ define(["../../lib/codemirror"], mod);
9
+ else // Plain browser env
10
+ mod(CodeMirror);
11
+ })(function(CodeMirror) {
12
+ "use strict";
13
+
14
+ CodeMirror.defineSimpleMode = function(name, states) {
15
+ CodeMirror.defineMode(name, function(config) {
16
+ return CodeMirror.simpleMode(config, states);
17
+ });
18
+ };
19
+
20
+ CodeMirror.simpleMode = function(config, states) {
21
+ ensureState(states, "start");
22
+ var states_ = {}, meta = states.meta || {}, hasIndentation = false;
23
+ for (var state in states) if (state != meta && states.hasOwnProperty(state)) {
24
+ var list = states_[state] = [], orig = states[state];
25
+ for (var i = 0; i < orig.length; i++) {
26
+ var data = orig[i];
27
+ list.push(new Rule(data, states));
28
+ if (data.indent || data.dedent) hasIndentation = true;
29
+ }
30
+ }
31
+ var mode = {
32
+ startState: function() {
33
+ return {state: "start", pending: null,
34
+ local: null, localState: null,
35
+ indent: hasIndentation ? [] : null};
36
+ },
37
+ copyState: function(state) {
38
+ var s = {state: state.state, pending: state.pending,
39
+ local: state.local, localState: null,
40
+ indent: state.indent && state.indent.slice(0)};
41
+ if (state.localState)
42
+ s.localState = CodeMirror.copyState(state.local.mode, state.localState);
43
+ if (state.stack)
44
+ s.stack = state.stack.slice(0);
45
+ for (var pers = state.persistentStates; pers; pers = pers.next)
46
+ s.persistentStates = {mode: pers.mode,
47
+ spec: pers.spec,
48
+ state: pers.state == state.localState ? s.localState : CodeMirror.copyState(pers.mode, pers.state),
49
+ next: s.persistentStates};
50
+ return s;
51
+ },
52
+ token: tokenFunction(states_, config),
53
+ innerMode: function(state) { return state.local && {mode: state.local.mode, state: state.localState}; },
54
+ indent: indentFunction(states_, meta)
55
+ };
56
+ if (meta) for (var prop in meta) if (meta.hasOwnProperty(prop))
57
+ mode[prop] = meta[prop];
58
+ return mode;
59
+ };
60
+
61
+ function ensureState(states, name) {
62
+ if (!states.hasOwnProperty(name))
63
+ throw new Error("Undefined state " + name + " in simple mode");
64
+ }
65
+
66
+ function toRegex(val, caret) {
67
+ if (!val) return /(?:)/;
68
+ var flags = "";
69
+ if (val instanceof RegExp) {
70
+ if (val.ignoreCase) flags = "i";
71
+ if (val.unicode) flags += "u"
72
+ val = val.source;
73
+ } else {
74
+ val = String(val);
75
+ }
76
+ return new RegExp((caret === false ? "" : "^") + "(?:" + val + ")", flags);
77
+ }
78
+
79
+ function asToken(val) {
80
+ if (!val) return null;
81
+ if (val.apply) return val
82
+ if (typeof val == "string") return val.replace(/\./g, " ");
83
+ var result = [];
84
+ for (var i = 0; i < val.length; i++)
85
+ result.push(val[i] && val[i].replace(/\./g, " "));
86
+ return result;
87
+ }
88
+
89
+ function Rule(data, states) {
90
+ if (data.next || data.push) ensureState(states, data.next || data.push);
91
+ this.regex = toRegex(data.regex);
92
+ this.token = asToken(data.token);
93
+ this.data = data;
94
+ }
95
+
96
+ function tokenFunction(states, config) {
97
+ return function(stream, state) {
98
+ if (state.pending) {
99
+ var pend = state.pending.shift();
100
+ if (state.pending.length == 0) state.pending = null;
101
+ stream.pos += pend.text.length;
102
+ return pend.token;
103
+ }
104
+
105
+ if (state.local) {
106
+ if (state.local.end && stream.match(state.local.end)) {
107
+ var tok = state.local.endToken || null;
108
+ state.local = state.localState = null;
109
+ return tok;
110
+ } else {
111
+ var tok = state.local.mode.token(stream, state.localState), m;
112
+ if (state.local.endScan && (m = state.local.endScan.exec(stream.current())))
113
+ stream.pos = stream.start + m.index;
114
+ return tok;
115
+ }
116
+ }
117
+
118
+ var curState = states[state.state];
119
+ for (var i = 0; i < curState.length; i++) {
120
+ var rule = curState[i];
121
+ var matches = (!rule.data.sol || stream.sol()) && stream.match(rule.regex);
122
+ if (matches) {
123
+ if (rule.data.next) {
124
+ state.state = rule.data.next;
125
+ } else if (rule.data.push) {
126
+ (state.stack || (state.stack = [])).push(state.state);
127
+ state.state = rule.data.push;
128
+ } else if (rule.data.pop && state.stack && state.stack.length) {
129
+ state.state = state.stack.pop();
130
+ }
131
+
132
+ if (rule.data.mode)
133
+ enterLocalMode(config, state, rule.data.mode, rule.token);
134
+ if (rule.data.indent)
135
+ state.indent.push(stream.indentation() + config.indentUnit);
136
+ if (rule.data.dedent)
137
+ state.indent.pop();
138
+ var token = rule.token
139
+ if (token && token.apply) token = token(matches)
140
+ if (matches.length > 2 && rule.token && typeof rule.token != "string") {
141
+ for (var j = 2; j < matches.length; j++)
142
+ if (matches[j])
143
+ (state.pending || (state.pending = [])).push({text: matches[j], token: rule.token[j - 1]});
144
+ stream.backUp(matches[0].length - (matches[1] ? matches[1].length : 0));
145
+ return token[0];
146
+ } else if (token && token.join) {
147
+ return token[0];
148
+ } else {
149
+ return token;
150
+ }
151
+ }
152
+ }
153
+ stream.next();
154
+ return null;
155
+ };
156
+ }
157
+
158
+ function cmp(a, b) {
159
+ if (a === b) return true;
160
+ if (!a || typeof a != "object" || !b || typeof b != "object") return false;
161
+ var props = 0;
162
+ for (var prop in a) if (a.hasOwnProperty(prop)) {
163
+ if (!b.hasOwnProperty(prop) || !cmp(a[prop], b[prop])) return false;
164
+ props++;
165
+ }
166
+ for (var prop in b) if (b.hasOwnProperty(prop)) props--;
167
+ return props == 0;
168
+ }
169
+
170
+ function enterLocalMode(config, state, spec, token) {
171
+ var pers;
172
+ if (spec.persistent) for (var p = state.persistentStates; p && !pers; p = p.next)
173
+ if (spec.spec ? cmp(spec.spec, p.spec) : spec.mode == p.mode) pers = p;
174
+ var mode = pers ? pers.mode : spec.mode || CodeMirror.getMode(config, spec.spec);
175
+ var lState = pers ? pers.state : CodeMirror.startState(mode);
176
+ if (spec.persistent && !pers)
177
+ state.persistentStates = {mode: mode, spec: spec.spec, state: lState, next: state.persistentStates};
178
+
179
+ state.localState = lState;
180
+ state.local = {mode: mode,
181
+ end: spec.end && toRegex(spec.end),
182
+ endScan: spec.end && spec.forceEnd !== false && toRegex(spec.end, false),
183
+ endToken: token && token.join ? token[token.length - 1] : token};
184
+ }
185
+
186
+ function indexOf(val, arr) {
187
+ for (var i = 0; i < arr.length; i++) if (arr[i] === val) return true;
188
+ }
189
+
190
+ function indentFunction(states, meta) {
191
+ return function(state, textAfter, line) {
192
+ if (state.local && state.local.mode.indent)
193
+ return state.local.mode.indent(state.localState, textAfter, line);
194
+ if (state.indent == null || state.local || meta.dontIndentStates && indexOf(state.state, meta.dontIndentStates) > -1)
195
+ return CodeMirror.Pass;
196
+
197
+ var pos = state.indent.length - 1, rules = states[state.state];
198
+ scan: for (;;) {
199
+ for (var i = 0; i < rules.length; i++) {
200
+ var rule = rules[i];
201
+ if (rule.data.dedent && rule.data.dedentIfLineStart !== false) {
202
+ var m = rule.regex.exec(textAfter);
203
+ if (m && m[0]) {
204
+ pos--;
205
+ if (rule.next || rule.push) rules = states[rule.next || rule.push];
206
+ textAfter = textAfter.slice(m[0].length);
207
+ continue scan;
208
+ }
209
+ }
210
+ }
211
+ break;
212
+ }
213
+ return pos < 0 ? 0 : state.indent[pos];
214
+ };
215
+ }
216
+ });
@@ -0,0 +1,40 @@
1
+ // CodeMirror, copyright (c) by Marijn Haverbeke and others
2
+ // Distributed under an MIT license: https://codemirror.net/5/LICENSE
3
+
4
+ (function(mod) {
5
+ if (typeof exports == "object" && typeof module == "object") // CommonJS
6
+ mod(require("../../lib/codemirror"), require("./runmode"));
7
+ else if (typeof define == "function" && define.amd) // AMD
8
+ define(["../../lib/codemirror", "./runmode"], mod);
9
+ else // Plain browser env
10
+ mod(CodeMirror);
11
+ })(function(CodeMirror) {
12
+ "use strict";
13
+
14
+ var isBlock = /^(p|li|div|h\\d|pre|blockquote|td)$/;
15
+
16
+ function textContent(node, out) {
17
+ if (node.nodeType == 3) return out.push(node.nodeValue);
18
+ for (var ch = node.firstChild; ch; ch = ch.nextSibling) {
19
+ textContent(ch, out);
20
+ if (isBlock.test(node.nodeType)) out.push("\n");
21
+ }
22
+ }
23
+
24
+ CodeMirror.colorize = function(collection, defaultMode) {
25
+ if (!collection) collection = document.body.getElementsByTagName("pre");
26
+
27
+ for (var i = 0; i < collection.length; ++i) {
28
+ var node = collection[i];
29
+ var mode = node.getAttribute("data-lang") || defaultMode;
30
+ if (!mode) continue;
31
+
32
+ var text = [];
33
+ textContent(node, text);
34
+ node.textContent = "";
35
+ CodeMirror.runMode(text.join(""), mode, node);
36
+
37
+ node.className += " cm-s-default";
38
+ }
39
+ };
40
+ });