poly-cms 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (460) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +10 -0
  3. data/Gemfile +27 -0
  4. data/Gemfile.lock +95 -0
  5. data/README.md +3 -0
  6. data/Rakefile +45 -0
  7. data/bin/poly +88 -0
  8. data/config.ru +3 -0
  9. data/core/admin/assets/images/icons/cache-clear.svg +11 -0
  10. data/core/admin/assets/images/icons/delete-dark.svg +10 -0
  11. data/core/admin/assets/images/icons/delete.svg +10 -0
  12. data/core/admin/assets/images/icons/handle.svg +12 -0
  13. data/core/admin/assets/images/icons/logout.svg +13 -0
  14. data/core/admin/assets/images/icons/move.svg +10 -0
  15. data/core/admin/assets/images/icons/new.svg +9 -0
  16. data/core/admin/assets/images/icons/prompt.svg +11 -0
  17. data/core/admin/assets/images/icons/refresh.svg +40 -0
  18. data/core/admin/assets/images/icons/save.svg +7 -0
  19. data/core/admin/assets/images/poly-small-boxed.svg +51 -0
  20. data/core/admin/assets/images/poly-small.svg +52 -0
  21. data/core/admin/assets/images/poly.svg +36 -0
  22. data/core/admin/assets/js/app/file-ext.js +15 -0
  23. data/core/admin/assets/js/app/views/editor.js +300 -0
  24. data/core/admin/assets/js/app/views/git.js +65 -0
  25. data/core/admin/assets/js/app/views/main.js +59 -0
  26. data/core/admin/assets/js/main.js +44 -0
  27. data/core/admin/assets/js/routes.js +25 -0
  28. data/core/admin/assets/js/vendor/backbone.js +4 -0
  29. data/core/admin/assets/js/vendor/codemirror/.gitattributes +8 -0
  30. data/core/admin/assets/js/vendor/codemirror/.gitignore +6 -0
  31. data/core/admin/assets/js/vendor/codemirror/.travis.yml +3 -0
  32. data/core/admin/assets/js/vendor/codemirror/addon/comment/comment.js +145 -0
  33. data/core/admin/assets/js/vendor/codemirror/addon/comment/continuecomment.js +54 -0
  34. data/core/admin/assets/js/vendor/codemirror/addon/dialog/dialog.css +32 -0
  35. data/core/admin/assets/js/vendor/codemirror/addon/dialog/dialog.js +80 -0
  36. data/core/admin/assets/js/vendor/codemirror/addon/display/fullscreen.css +6 -0
  37. data/core/admin/assets/js/vendor/codemirror/addon/display/fullscreen.js +30 -0
  38. data/core/admin/assets/js/vendor/codemirror/addon/display/placeholder.js +54 -0
  39. data/core/admin/assets/js/vendor/codemirror/addon/edit/closebrackets.js +82 -0
  40. data/core/admin/assets/js/vendor/codemirror/addon/edit/closetag.js +87 -0
  41. data/core/admin/assets/js/vendor/codemirror/addon/edit/continuelist.js +25 -0
  42. data/core/admin/assets/js/vendor/codemirror/addon/edit/matchbrackets.js +86 -0
  43. data/core/admin/assets/js/vendor/codemirror/addon/edit/matchtags.js +56 -0
  44. data/core/admin/assets/js/vendor/codemirror/addon/edit/trailingspace.js +15 -0
  45. data/core/admin/assets/js/vendor/codemirror/addon/fold/brace-fold.js +93 -0
  46. data/core/admin/assets/js/vendor/codemirror/addon/fold/comment-fold.js +40 -0
  47. data/core/admin/assets/js/vendor/codemirror/addon/fold/foldcode.js +75 -0
  48. data/core/admin/assets/js/vendor/codemirror/addon/fold/foldgutter.css +21 -0
  49. data/core/admin/assets/js/vendor/codemirror/addon/fold/foldgutter.js +124 -0
  50. data/core/admin/assets/js/vendor/codemirror/addon/fold/indent-fold.js +26 -0
  51. data/core/admin/assets/js/vendor/codemirror/addon/fold/xml-fold.js +167 -0
  52. data/core/admin/assets/js/vendor/codemirror/addon/hint/anyword-hint.js +34 -0
  53. data/core/admin/assets/js/vendor/codemirror/addon/hint/css-hint.js +50 -0
  54. data/core/admin/assets/js/vendor/codemirror/addon/hint/html-hint.js +337 -0
  55. data/core/admin/assets/js/vendor/codemirror/addon/hint/javascript-hint.js +130 -0
  56. data/core/admin/assets/js/vendor/codemirror/addon/hint/pig-hint.js +121 -0
  57. data/core/admin/assets/js/vendor/codemirror/addon/hint/python-hint.js +95 -0
  58. data/core/admin/assets/js/vendor/codemirror/addon/hint/show-hint.css +38 -0
  59. data/core/admin/assets/js/vendor/codemirror/addon/hint/show-hint.js +274 -0
  60. data/core/admin/assets/js/vendor/codemirror/addon/hint/sql-hint.js +105 -0
  61. data/core/admin/assets/js/vendor/codemirror/addon/hint/xml-hint.js +69 -0
  62. data/core/admin/assets/js/vendor/codemirror/addon/lint/coffeescript-lint.js +27 -0
  63. data/core/admin/assets/js/vendor/codemirror/addon/lint/css-lint.js +19 -0
  64. data/core/admin/assets/js/vendor/codemirror/addon/lint/javascript-lint.js +126 -0
  65. data/core/admin/assets/js/vendor/codemirror/addon/lint/json-lint.js +17 -0
  66. data/core/admin/assets/js/vendor/codemirror/addon/lint/lint.css +73 -0
  67. data/core/admin/assets/js/vendor/codemirror/addon/lint/lint.js +203 -0
  68. data/core/admin/assets/js/vendor/codemirror/addon/merge/dep/diff_match_patch.js +50 -0
  69. data/core/admin/assets/js/vendor/codemirror/addon/merge/merge.css +92 -0
  70. data/core/admin/assets/js/vendor/codemirror/addon/merge/merge.js +474 -0
  71. data/core/admin/assets/js/vendor/codemirror/addon/mode/loadmode.js +51 -0
  72. data/core/admin/assets/js/vendor/codemirror/addon/mode/multiplex.js +101 -0
  73. data/core/admin/assets/js/vendor/codemirror/addon/mode/multiplex_test.js +30 -0
  74. data/core/admin/assets/js/vendor/codemirror/addon/mode/overlay.js +59 -0
  75. data/core/admin/assets/js/vendor/codemirror/addon/runmode/colorize.js +29 -0
  76. data/core/admin/assets/js/vendor/codemirror/addon/runmode/runmode-standalone.js +136 -0
  77. data/core/admin/assets/js/vendor/codemirror/addon/runmode/runmode.js +56 -0
  78. data/core/admin/assets/js/vendor/codemirror/addon/runmode/runmode.node.js +103 -0
  79. data/core/admin/assets/js/vendor/codemirror/addon/scroll/scrollpastend.js +34 -0
  80. data/core/admin/assets/js/vendor/codemirror/addon/search/match-highlighter.js +91 -0
  81. data/core/admin/assets/js/vendor/codemirror/addon/search/search.js +133 -0
  82. data/core/admin/assets/js/vendor/codemirror/addon/search/searchcursor.js +143 -0
  83. data/core/admin/assets/js/vendor/codemirror/addon/selection/active-line.js +39 -0
  84. data/core/admin/assets/js/vendor/codemirror/addon/selection/mark-selection.js +108 -0
  85. data/core/admin/assets/js/vendor/codemirror/addon/tern/tern.css +85 -0
  86. data/core/admin/assets/js/vendor/codemirror/addon/tern/tern.js +632 -0
  87. data/core/admin/assets/js/vendor/codemirror/addon/tern/worker.js +41 -0
  88. data/core/admin/assets/js/vendor/codemirror/addon/wrap/hardwrap.js +99 -0
  89. data/core/admin/assets/js/vendor/codemirror/bin/authors.sh +6 -0
  90. data/core/admin/assets/js/vendor/codemirror/bin/compress +92 -0
  91. data/core/admin/assets/js/vendor/codemirror/bin/lint +16 -0
  92. data/core/admin/assets/js/vendor/codemirror/bin/source-highlight +61 -0
  93. data/core/admin/assets/js/vendor/codemirror/bower.json +15 -0
  94. data/core/admin/assets/js/vendor/codemirror/demo/activeline.html +78 -0
  95. data/core/admin/assets/js/vendor/codemirror/demo/anywordhint.html +79 -0
  96. data/core/admin/assets/js/vendor/codemirror/demo/bidi.html +74 -0
  97. data/core/admin/assets/js/vendor/codemirror/demo/btree.html +86 -0
  98. data/core/admin/assets/js/vendor/codemirror/demo/buffers.html +109 -0
  99. data/core/admin/assets/js/vendor/codemirror/demo/changemode.html +59 -0
  100. data/core/admin/assets/js/vendor/codemirror/demo/closebrackets.html +63 -0
  101. data/core/admin/assets/js/vendor/codemirror/demo/closetag.html +40 -0
  102. data/core/admin/assets/js/vendor/codemirror/demo/complete.html +80 -0
  103. data/core/admin/assets/js/vendor/codemirror/demo/emacs.html +75 -0
  104. data/core/admin/assets/js/vendor/codemirror/demo/folding.html +75 -0
  105. data/core/admin/assets/js/vendor/codemirror/demo/fullscreen.html +130 -0
  106. data/core/admin/assets/js/vendor/codemirror/demo/hardwrap.html +69 -0
  107. data/core/admin/assets/js/vendor/codemirror/demo/html5complete.html +54 -0
  108. data/core/admin/assets/js/vendor/codemirror/demo/indentwrap.html +58 -0
  109. data/core/admin/assets/js/vendor/codemirror/demo/lint.html +171 -0
  110. data/core/admin/assets/js/vendor/codemirror/demo/loadmode.html +49 -0
  111. data/core/admin/assets/js/vendor/codemirror/demo/marker.html +52 -0
  112. data/core/admin/assets/js/vendor/codemirror/demo/markselection.html +45 -0
  113. data/core/admin/assets/js/vendor/codemirror/demo/matchhighlighter.html +47 -0
  114. data/core/admin/assets/js/vendor/codemirror/demo/matchtags.html +49 -0
  115. data/core/admin/assets/js/vendor/codemirror/demo/merge.html +82 -0
  116. data/core/admin/assets/js/vendor/codemirror/demo/multiplex.html +75 -0
  117. data/core/admin/assets/js/vendor/codemirror/demo/mustache.html +68 -0
  118. data/core/admin/assets/js/vendor/codemirror/demo/placeholder.html +45 -0
  119. data/core/admin/assets/js/vendor/codemirror/demo/preview.html +88 -0
  120. data/core/admin/assets/js/vendor/codemirror/demo/resize.html +58 -0
  121. data/core/admin/assets/js/vendor/codemirror/demo/runmode.html +62 -0
  122. data/core/admin/assets/js/vendor/codemirror/demo/search.html +94 -0
  123. data/core/admin/assets/js/vendor/codemirror/demo/spanaffectswrapping_shim.html +85 -0
  124. data/core/admin/assets/js/vendor/codemirror/demo/tern.html +128 -0
  125. data/core/admin/assets/js/vendor/codemirror/demo/theme.html +121 -0
  126. data/core/admin/assets/js/vendor/codemirror/demo/trailingspace.html +48 -0
  127. data/core/admin/assets/js/vendor/codemirror/demo/variableheight.html +61 -0
  128. data/core/admin/assets/js/vendor/codemirror/demo/vim.html +74 -0
  129. data/core/admin/assets/js/vendor/codemirror/demo/visibletabs.html +62 -0
  130. data/core/admin/assets/js/vendor/codemirror/demo/widget.html +85 -0
  131. data/core/admin/assets/js/vendor/codemirror/demo/xmlcomplete.html +116 -0
  132. data/core/admin/assets/js/vendor/codemirror/doc/activebookmark.js +42 -0
  133. data/core/admin/assets/js/vendor/codemirror/doc/compress.html +231 -0
  134. data/core/admin/assets/js/vendor/codemirror/doc/docs.css +226 -0
  135. data/core/admin/assets/js/vendor/codemirror/doc/internals.html +503 -0
  136. data/core/admin/assets/js/vendor/codemirror/doc/logo.png +0 -0
  137. data/core/admin/assets/js/vendor/codemirror/doc/logo.svg +147 -0
  138. data/core/admin/assets/js/vendor/codemirror/doc/manual.html +2512 -0
  139. data/core/admin/assets/js/vendor/codemirror/doc/realworld.html +134 -0
  140. data/core/admin/assets/js/vendor/codemirror/doc/releases.html +779 -0
  141. data/core/admin/assets/js/vendor/codemirror/doc/reporting.html +61 -0
  142. data/core/admin/assets/js/vendor/codemirror/doc/upgrade_v2.2.html +96 -0
  143. data/core/admin/assets/js/vendor/codemirror/doc/upgrade_v3.html +230 -0
  144. data/core/admin/assets/js/vendor/codemirror/index.html +192 -0
  145. data/core/admin/assets/js/vendor/codemirror/keymap/emacs.js +387 -0
  146. data/core/admin/assets/js/vendor/codemirror/keymap/extra.js +43 -0
  147. data/core/admin/assets/js/vendor/codemirror/keymap/vim.js +3704 -0
  148. data/core/admin/assets/js/vendor/codemirror/lib/codemirror.css +263 -0
  149. data/core/admin/assets/js/vendor/codemirror/lib/codemirror.js +5910 -0
  150. data/core/admin/assets/js/vendor/codemirror/mode/apl/apl.js +160 -0
  151. data/core/admin/assets/js/vendor/codemirror/mode/apl/index.html +72 -0
  152. data/core/admin/assets/js/vendor/codemirror/mode/asterisk/asterisk.js +183 -0
  153. data/core/admin/assets/js/vendor/codemirror/mode/asterisk/index.html +154 -0
  154. data/core/admin/assets/js/vendor/codemirror/mode/clike/clike.js +362 -0
  155. data/core/admin/assets/js/vendor/codemirror/mode/clike/index.html +195 -0
  156. data/core/admin/assets/js/vendor/codemirror/mode/clike/scala.html +767 -0
  157. data/core/admin/assets/js/vendor/codemirror/mode/clojure/clojure.js +224 -0
  158. data/core/admin/assets/js/vendor/codemirror/mode/clojure/index.html +88 -0
  159. data/core/admin/assets/js/vendor/codemirror/mode/cobol/cobol.js +240 -0
  160. data/core/admin/assets/js/vendor/codemirror/mode/cobol/index.html +210 -0
  161. data/core/admin/assets/js/vendor/codemirror/mode/coffeescript/coffeescript.js +349 -0
  162. data/core/admin/assets/js/vendor/codemirror/mode/coffeescript/index.html +740 -0
  163. data/core/admin/assets/js/vendor/codemirror/mode/commonlisp/commonlisp.js +105 -0
  164. data/core/admin/assets/js/vendor/codemirror/mode/commonlisp/index.html +177 -0
  165. data/core/admin/assets/js/vendor/codemirror/mode/css/css.js +639 -0
  166. data/core/admin/assets/js/vendor/codemirror/mode/css/index.html +70 -0
  167. data/core/admin/assets/js/vendor/codemirror/mode/css/scss.html +157 -0
  168. data/core/admin/assets/js/vendor/codemirror/mode/css/scss_test.js +84 -0
  169. data/core/admin/assets/js/vendor/codemirror/mode/css/test.js +130 -0
  170. data/core/admin/assets/js/vendor/codemirror/mode/d/d.js +205 -0
  171. data/core/admin/assets/js/vendor/codemirror/mode/d/index.html +273 -0
  172. data/core/admin/assets/js/vendor/codemirror/mode/diff/diff.js +32 -0
  173. data/core/admin/assets/js/vendor/codemirror/mode/diff/index.html +117 -0
  174. data/core/admin/assets/js/vendor/codemirror/mode/dtd/dtd.js +127 -0
  175. data/core/admin/assets/js/vendor/codemirror/mode/dtd/index.html +89 -0
  176. data/core/admin/assets/js/vendor/codemirror/mode/ecl/ecl.js +192 -0
  177. data/core/admin/assets/js/vendor/codemirror/mode/ecl/index.html +52 -0
  178. data/core/admin/assets/js/vendor/codemirror/mode/eiffel/eiffel.js +147 -0
  179. data/core/admin/assets/js/vendor/codemirror/mode/eiffel/index.html +430 -0
  180. data/core/admin/assets/js/vendor/codemirror/mode/erlang/erlang.js +484 -0
  181. data/core/admin/assets/js/vendor/codemirror/mode/erlang/index.html +75 -0
  182. data/core/admin/assets/js/vendor/codemirror/mode/fortran/fortran.js +173 -0
  183. data/core/admin/assets/js/vendor/codemirror/mode/fortran/index.html +81 -0
  184. data/core/admin/assets/js/vendor/codemirror/mode/gas/gas.js +330 -0
  185. data/core/admin/assets/js/vendor/codemirror/mode/gas/index.html +68 -0
  186. data/core/admin/assets/js/vendor/codemirror/mode/gfm/gfm.js +97 -0
  187. data/core/admin/assets/js/vendor/codemirror/mode/gfm/index.html +82 -0
  188. data/core/admin/assets/js/vendor/codemirror/mode/gfm/test.js +112 -0
  189. data/core/admin/assets/js/vendor/codemirror/mode/gherkin/gherkin.js +168 -0
  190. data/core/admin/assets/js/vendor/codemirror/mode/gherkin/index.html +48 -0
  191. data/core/admin/assets/js/vendor/codemirror/mode/go/go.js +168 -0
  192. data/core/admin/assets/js/vendor/codemirror/mode/go/index.html +85 -0
  193. data/core/admin/assets/js/vendor/codemirror/mode/groovy/groovy.js +211 -0
  194. data/core/admin/assets/js/vendor/codemirror/mode/groovy/index.html +84 -0
  195. data/core/admin/assets/js/vendor/codemirror/mode/haml/haml.js +153 -0
  196. data/core/admin/assets/js/vendor/codemirror/mode/haml/index.html +79 -0
  197. data/core/admin/assets/js/vendor/codemirror/mode/haml/test.js +94 -0
  198. data/core/admin/assets/js/vendor/codemirror/mode/haskell/haskell.js +250 -0
  199. data/core/admin/assets/js/vendor/codemirror/mode/haskell/index.html +73 -0
  200. data/core/admin/assets/js/vendor/codemirror/mode/haxe/haxe.js +429 -0
  201. data/core/admin/assets/js/vendor/codemirror/mode/haxe/index.html +103 -0
  202. data/core/admin/assets/js/vendor/codemirror/mode/htmlembedded/htmlembedded.js +73 -0
  203. data/core/admin/assets/js/vendor/codemirror/mode/htmlembedded/index.html +60 -0
  204. data/core/admin/assets/js/vendor/codemirror/mode/htmlmixed/htmlmixed.js +104 -0
  205. data/core/admin/assets/js/vendor/codemirror/mode/htmlmixed/index.html +85 -0
  206. data/core/admin/assets/js/vendor/codemirror/mode/http/http.js +98 -0
  207. data/core/admin/assets/js/vendor/codemirror/mode/http/index.html +45 -0
  208. data/core/admin/assets/js/vendor/codemirror/mode/index.html +112 -0
  209. data/core/admin/assets/js/vendor/codemirror/mode/jade/index.html +66 -0
  210. data/core/admin/assets/js/vendor/codemirror/mode/jade/jade.js +90 -0
  211. data/core/admin/assets/js/vendor/codemirror/mode/javascript/index.html +107 -0
  212. data/core/admin/assets/js/vendor/codemirror/mode/javascript/javascript.js +480 -0
  213. data/core/admin/assets/js/vendor/codemirror/mode/javascript/test.js +10 -0
  214. data/core/admin/assets/js/vendor/codemirror/mode/javascript/typescript.html +61 -0
  215. data/core/admin/assets/js/vendor/codemirror/mode/jinja2/index.html +50 -0
  216. data/core/admin/assets/js/vendor/codemirror/mode/jinja2/jinja2.js +42 -0
  217. data/core/admin/assets/js/vendor/codemirror/mode/less/index.html +753 -0
  218. data/core/admin/assets/js/vendor/codemirror/mode/less/less.js +344 -0
  219. data/core/admin/assets/js/vendor/codemirror/mode/livescript/index.html +459 -0
  220. data/core/admin/assets/js/vendor/codemirror/mode/livescript/livescript.js +267 -0
  221. data/core/admin/assets/js/vendor/codemirror/mode/livescript/livescript.ls +266 -0
  222. data/core/admin/assets/js/vendor/codemirror/mode/lua/index.html +86 -0
  223. data/core/admin/assets/js/vendor/codemirror/mode/lua/lua.js +144 -0
  224. data/core/admin/assets/js/vendor/codemirror/mode/markdown/index.html +359 -0
  225. data/core/admin/assets/js/vendor/codemirror/mode/markdown/markdown.js +551 -0
  226. data/core/admin/assets/js/vendor/codemirror/mode/markdown/test.js +656 -0
  227. data/core/admin/assets/js/vendor/codemirror/mode/meta.js +89 -0
  228. data/core/admin/assets/js/vendor/codemirror/mode/mirc/index.html +161 -0
  229. data/core/admin/assets/js/vendor/codemirror/mode/mirc/mirc.js +177 -0
  230. data/core/admin/assets/js/vendor/codemirror/mode/nginx/index.html +181 -0
  231. data/core/admin/assets/js/vendor/codemirror/mode/nginx/nginx.js +163 -0
  232. data/core/admin/assets/js/vendor/codemirror/mode/ntriples/index.html +45 -0
  233. data/core/admin/assets/js/vendor/codemirror/mode/ntriples/ntriples.js +170 -0
  234. data/core/admin/assets/js/vendor/codemirror/mode/ocaml/index.html +146 -0
  235. data/core/admin/assets/js/vendor/codemirror/mode/ocaml/ocaml.js +116 -0
  236. data/core/admin/assets/js/vendor/codemirror/mode/octave/index.html +95 -0
  237. data/core/admin/assets/js/vendor/codemirror/mode/octave/octave.js +118 -0
  238. data/core/admin/assets/js/vendor/codemirror/mode/pascal/index.html +61 -0
  239. data/core/admin/assets/js/vendor/codemirror/mode/pascal/pascal.js +94 -0
  240. data/core/admin/assets/js/vendor/codemirror/mode/perl/index.html +75 -0
  241. data/core/admin/assets/js/vendor/codemirror/mode/perl/perl.js +816 -0
  242. data/core/admin/assets/js/vendor/codemirror/mode/php/index.html +62 -0
  243. data/core/admin/assets/js/vendor/codemirror/mode/php/php.js +132 -0
  244. data/core/admin/assets/js/vendor/codemirror/mode/pig/index.html +55 -0
  245. data/core/admin/assets/js/vendor/codemirror/mode/pig/pig.js +171 -0
  246. data/core/admin/assets/js/vendor/codemirror/mode/properties/index.html +53 -0
  247. data/core/admin/assets/js/vendor/codemirror/mode/properties/properties.js +63 -0
  248. data/core/admin/assets/js/vendor/codemirror/mode/python/index.html +187 -0
  249. data/core/admin/assets/js/vendor/codemirror/mode/python/python.js +368 -0
  250. data/core/admin/assets/js/vendor/codemirror/mode/q/index.html +144 -0
  251. data/core/admin/assets/js/vendor/codemirror/mode/q/q.js +124 -0
  252. data/core/admin/assets/js/vendor/codemirror/mode/r/index.html +86 -0
  253. data/core/admin/assets/js/vendor/codemirror/mode/r/r.js +141 -0
  254. data/core/admin/assets/js/vendor/codemirror/mode/rpm/changes/changes.js +19 -0
  255. data/core/admin/assets/js/vendor/codemirror/mode/rpm/changes/index.html +67 -0
  256. data/core/admin/assets/js/vendor/codemirror/mode/rpm/spec/index.html +114 -0
  257. data/core/admin/assets/js/vendor/codemirror/mode/rpm/spec/spec.css +5 -0
  258. data/core/admin/assets/js/vendor/codemirror/mode/rpm/spec/spec.js +66 -0
  259. data/core/admin/assets/js/vendor/codemirror/mode/rst/index.html +534 -0
  260. data/core/admin/assets/js/vendor/codemirror/mode/rst/rst.js +560 -0
  261. data/core/admin/assets/js/vendor/codemirror/mode/ruby/index.html +185 -0
  262. data/core/admin/assets/js/vendor/codemirror/mode/ruby/ruby.js +247 -0
  263. data/core/admin/assets/js/vendor/codemirror/mode/rust/index.html +61 -0
  264. data/core/admin/assets/js/vendor/codemirror/mode/rust/rust.js +436 -0
  265. data/core/admin/assets/js/vendor/codemirror/mode/sass/index.html +66 -0
  266. data/core/admin/assets/js/vendor/codemirror/mode/sass/sass.js +330 -0
  267. data/core/admin/assets/js/vendor/codemirror/mode/scheme/index.html +77 -0
  268. data/core/admin/assets/js/vendor/codemirror/mode/scheme/scheme.js +232 -0
  269. data/core/admin/assets/js/vendor/codemirror/mode/shell/index.html +66 -0
  270. data/core/admin/assets/js/vendor/codemirror/mode/shell/shell.js +118 -0
  271. data/core/admin/assets/js/vendor/codemirror/mode/sieve/index.html +93 -0
  272. data/core/admin/assets/js/vendor/codemirror/mode/sieve/sieve.js +183 -0
  273. data/core/admin/assets/js/vendor/codemirror/mode/smalltalk/index.html +68 -0
  274. data/core/admin/assets/js/vendor/codemirror/mode/smalltalk/smalltalk.js +151 -0
  275. data/core/admin/assets/js/vendor/codemirror/mode/smarty/index.html +136 -0
  276. data/core/admin/assets/js/vendor/codemirror/mode/smarty/smarty.js +205 -0
  277. data/core/admin/assets/js/vendor/codemirror/mode/smartymixed/index.html +114 -0
  278. data/core/admin/assets/js/vendor/codemirror/mode/smartymixed/smartymixed.js +175 -0
  279. data/core/admin/assets/js/vendor/codemirror/mode/sparql/index.html +54 -0
  280. data/core/admin/assets/js/vendor/codemirror/mode/sparql/sparql.js +145 -0
  281. data/core/admin/assets/js/vendor/codemirror/mode/sql/index.html +75 -0
  282. data/core/admin/assets/js/vendor/codemirror/mode/sql/sql.js +365 -0
  283. data/core/admin/assets/js/vendor/codemirror/mode/stex/index.html +110 -0
  284. data/core/admin/assets/js/vendor/codemirror/mode/stex/stex.js +246 -0
  285. data/core/admin/assets/js/vendor/codemirror/mode/stex/test.js +120 -0
  286. data/core/admin/assets/js/vendor/codemirror/mode/tcl/index.html +143 -0
  287. data/core/admin/assets/js/vendor/codemirror/mode/tcl/tcl.js +131 -0
  288. data/core/admin/assets/js/vendor/codemirror/mode/tiddlywiki/index.html +155 -0
  289. data/core/admin/assets/js/vendor/codemirror/mode/tiddlywiki/tiddlywiki.css +14 -0
  290. data/core/admin/assets/js/vendor/codemirror/mode/tiddlywiki/tiddlywiki.js +353 -0
  291. data/core/admin/assets/js/vendor/codemirror/mode/tiki/index.html +95 -0
  292. data/core/admin/assets/js/vendor/codemirror/mode/tiki/tiki.css +26 -0
  293. data/core/admin/assets/js/vendor/codemirror/mode/tiki/tiki.js +308 -0
  294. data/core/admin/assets/js/vendor/codemirror/mode/toml/index.html +73 -0
  295. data/core/admin/assets/js/vendor/codemirror/mode/toml/toml.js +71 -0
  296. data/core/admin/assets/js/vendor/codemirror/mode/turtle/index.html +51 -0
  297. data/core/admin/assets/js/vendor/codemirror/mode/turtle/turtle.js +145 -0
  298. data/core/admin/assets/js/vendor/codemirror/mode/vb/index.html +103 -0
  299. data/core/admin/assets/js/vendor/codemirror/mode/vb/vb.js +259 -0
  300. data/core/admin/assets/js/vendor/codemirror/mode/vbscript/index.html +55 -0
  301. data/core/admin/assets/js/vendor/codemirror/mode/vbscript/vbscript.js +334 -0
  302. data/core/admin/assets/js/vendor/codemirror/mode/velocity/index.html +119 -0
  303. data/core/admin/assets/js/vendor/codemirror/mode/velocity/velocity.js +186 -0
  304. data/core/admin/assets/js/vendor/codemirror/mode/verilog/index.html +132 -0
  305. data/core/admin/assets/js/vendor/codemirror/mode/verilog/verilog.js +182 -0
  306. data/core/admin/assets/js/vendor/codemirror/mode/xml/index.html +57 -0
  307. data/core/admin/assets/js/vendor/codemirror/mode/xml/xml.js +345 -0
  308. data/core/admin/assets/js/vendor/codemirror/mode/xquery/index.html +210 -0
  309. data/core/admin/assets/js/vendor/codemirror/mode/xquery/test.js +64 -0
  310. data/core/admin/assets/js/vendor/codemirror/mode/xquery/xquery.js +432 -0
  311. data/core/admin/assets/js/vendor/codemirror/mode/yaml/index.html +80 -0
  312. data/core/admin/assets/js/vendor/codemirror/mode/yaml/yaml.js +97 -0
  313. data/core/admin/assets/js/vendor/codemirror/mode/z80/index.html +52 -0
  314. data/core/admin/assets/js/vendor/codemirror/mode/z80/z80.js +85 -0
  315. data/core/admin/assets/js/vendor/codemirror/package.json +19 -0
  316. data/core/admin/assets/js/vendor/codemirror/test/comment_test.js +51 -0
  317. data/core/admin/assets/js/vendor/codemirror/test/doc_test.js +329 -0
  318. data/core/admin/assets/js/vendor/codemirror/test/driver.js +139 -0
  319. data/core/admin/assets/js/vendor/codemirror/test/emacs_test.js +135 -0
  320. data/core/admin/assets/js/vendor/codemirror/test/index.html +209 -0
  321. data/core/admin/assets/js/vendor/codemirror/test/lint/acorn.js +1593 -0
  322. data/core/admin/assets/js/vendor/codemirror/test/lint/lint.js +139 -0
  323. data/core/admin/assets/js/vendor/codemirror/test/lint/walk.js +216 -0
  324. data/core/admin/assets/js/vendor/codemirror/test/mode_test.css +10 -0
  325. data/core/admin/assets/js/vendor/codemirror/test/mode_test.js +200 -0
  326. data/core/admin/assets/js/vendor/codemirror/test/phantom_driver.js +31 -0
  327. data/core/admin/assets/js/vendor/codemirror/test/run.js +34 -0
  328. data/core/admin/assets/js/vendor/codemirror/test/test.js +1562 -0
  329. data/core/admin/assets/js/vendor/codemirror/test/vim_test.js +2391 -0
  330. data/core/admin/assets/js/vendor/codemirror/theme/3024-day.css +34 -0
  331. data/core/admin/assets/js/vendor/codemirror/theme/3024-night.css +34 -0
  332. data/core/admin/assets/js/vendor/codemirror/theme/ambiance-mobile.css +5 -0
  333. data/core/admin/assets/js/vendor/codemirror/theme/ambiance.css +75 -0
  334. data/core/admin/assets/js/vendor/codemirror/theme/base16-dark.css +34 -0
  335. data/core/admin/assets/js/vendor/codemirror/theme/base16-light.css +34 -0
  336. data/core/admin/assets/js/vendor/codemirror/theme/blackboard.css +28 -0
  337. data/core/admin/assets/js/vendor/codemirror/theme/cobalt.css +21 -0
  338. data/core/admin/assets/js/vendor/codemirror/theme/eclipse.css +23 -0
  339. data/core/admin/assets/js/vendor/codemirror/theme/elegant.css +13 -0
  340. data/core/admin/assets/js/vendor/codemirror/theme/erlang-dark.css +30 -0
  341. data/core/admin/assets/js/vendor/codemirror/theme/lesser-dark.css +47 -0
  342. data/core/admin/assets/js/vendor/codemirror/theme/mbo.css +35 -0
  343. data/core/admin/assets/js/vendor/codemirror/theme/midnight.css +43 -0
  344. data/core/admin/assets/js/vendor/codemirror/theme/monokai.css +29 -0
  345. data/core/admin/assets/js/vendor/codemirror/theme/neat.css +12 -0
  346. data/core/admin/assets/js/vendor/codemirror/theme/night.css +24 -0
  347. data/core/admin/assets/js/vendor/codemirror/theme/paraiso-dark.css +34 -0
  348. data/core/admin/assets/js/vendor/codemirror/theme/paraiso-light.css +34 -0
  349. data/core/admin/assets/js/vendor/codemirror/theme/rubyblue.css +23 -0
  350. data/core/admin/assets/js/vendor/codemirror/theme/solarized-mod.css +181 -0
  351. data/core/admin/assets/js/vendor/codemirror/theme/solarized.css +180 -0
  352. data/core/admin/assets/js/vendor/codemirror/theme/the-matrix.css +26 -0
  353. data/core/admin/assets/js/vendor/codemirror/theme/tomorrow-night-eighties.css +34 -0
  354. data/core/admin/assets/js/vendor/codemirror/theme/twilight.css +28 -0
  355. data/core/admin/assets/js/vendor/codemirror/theme/vibrant-ink.css +30 -0
  356. data/core/admin/assets/js/vendor/codemirror/theme/xq-dark.css +49 -0
  357. data/core/admin/assets/js/vendor/codemirror/theme/xq-light.css +43 -0
  358. data/core/admin/assets/js/vendor/fastclick.js +777 -0
  359. data/core/admin/assets/js/vendor/jquery.js +6 -0
  360. data/core/admin/assets/js/vendor/lodash.underscore.js +38 -0
  361. data/core/admin/assets/js/vendor/require.js +36 -0
  362. data/core/admin/assets/scss/bootstrap.scss +18 -0
  363. data/core/admin/assets/scss/modules/_all.scss +7 -0
  364. data/core/admin/assets/scss/modules/_colors.scss +7 -0
  365. data/core/admin/assets/scss/modules/_extensions.scss +24 -0
  366. data/core/admin/assets/scss/modules/_mixins.scss +18 -0
  367. data/core/admin/assets/scss/modules/_susy.scss +7 -0
  368. data/core/admin/assets/scss/partials/_base.scss +33 -0
  369. data/core/admin/assets/scss/partials/_buttons.scss +9 -0
  370. data/core/admin/assets/scss/partials/_links.scss +15 -0
  371. data/core/admin/assets/scss/partials/_main.scss +14 -0
  372. data/core/admin/assets/scss/partials/_typography.scss +15 -0
  373. data/core/admin/assets/scss/sections/_editor.scss +274 -0
  374. data/core/admin/assets/scss/sections/_login.scss +34 -0
  375. data/core/admin/assets/scss/vendor/_normalize.scss +406 -0
  376. data/core/admin/layouts/admin.haml +67 -0
  377. data/core/admin/partials/_head.haml +23 -0
  378. data/core/admin/partials/_tree.haml +3 -0
  379. data/core/admin/partials/_treeitem.haml +4 -0
  380. data/core/admin/settings.yml +4 -0
  381. data/core/app.rb +21 -0
  382. data/core/classes/cached.rb +35 -0
  383. data/core/classes/checker.rb +37 -0
  384. data/core/classes/commit.rb +62 -0
  385. data/core/classes/error.rb +9 -0
  386. data/core/classes/page.rb +165 -0
  387. data/core/classes/partial.rb +13 -0
  388. data/core/classes/path.rb +30 -0
  389. data/core/classes/persona.rb +55 -0
  390. data/core/classes/sassfile.rb +95 -0
  391. data/core/classes/settings.rb +19 -0
  392. data/core/classes/theme.rb +55 -0
  393. data/core/helpers/base.rb +46 -0
  394. data/core/helpers/render.rb +26 -0
  395. data/core/helpers/truncate.rb +17 -0
  396. data/core/routes/admin.rb +139 -0
  397. data/core/routes/assetcompiler.rb +23 -0
  398. data/core/routes/base.rb +22 -0
  399. data/core/routes/bootstrap.rb +35 -0
  400. data/core/routes/cache.rb +52 -0
  401. data/core/routes/deploy.rb +16 -0
  402. data/core/routes/git.rb +23 -0
  403. data/poly.gemspec +29 -0
  404. data/sample/.cabi-data +0 -0
  405. data/sample/data/home/index.haml +22 -0
  406. data/sample/data/other/nav/links.yml +4 -0
  407. data/sample/data/page/about/index.haml +12 -0
  408. data/sample/data/page/contact-us/index.haml +11 -0
  409. data/sample/data/page/dynamic-page/index.haml +14 -0
  410. data/sample/data/page/error/index.haml +8 -0
  411. data/sample/data/page/html/index.html +4 -0
  412. data/sample/data/page/no-front-matter/index.haml +7 -0
  413. data/sample/data/page/not-found/index.haml +8 -0
  414. data/sample/data/page/static-page/index.haml +14 -0
  415. data/sample/data/post/about-life/index.md +12 -0
  416. data/sample/data/post/sample-post/index.haml +12 -0
  417. data/sample/data/post/technology/index.haml +12 -0
  418. data/sample/data/post/the-40-hour-workweek/index.haml +9 -0
  419. data/sample/data/post/things-are-changing/index.haml +9 -0
  420. data/sample/data/post/yet-another-post/index.haml +11 -0
  421. data/sample/plugins/my-plugin/plugin.rb +15 -0
  422. data/sample/settings.yml +21 -0
  423. data/sample/themes/base/assets/css/readme.txt +6 -0
  424. data/sample/themes/base/assets/images/poly.svg +36 -0
  425. data/sample/themes/base/assets/js/app/views/main.js +13 -0
  426. data/sample/themes/base/assets/js/main.js +31 -0
  427. data/sample/themes/base/assets/js/vendor/backbone.js +4 -0
  428. data/sample/themes/base/assets/js/vendor/jquery.js +6 -0
  429. data/sample/themes/base/assets/js/vendor/lodash.underscore.js +38 -0
  430. data/sample/themes/base/assets/js/vendor/require.js +36 -0
  431. data/sample/themes/base/assets/scss/bootstrap.scss +20 -0
  432. data/sample/themes/base/assets/scss/modules/_all.scss +7 -0
  433. data/sample/themes/base/assets/scss/modules/_colors.scss +7 -0
  434. data/sample/themes/base/assets/scss/modules/_extensions.scss +13 -0
  435. data/sample/themes/base/assets/scss/modules/_mixins.scss +11 -0
  436. data/sample/themes/base/assets/scss/modules/_susy.scss +7 -0
  437. data/sample/themes/base/assets/scss/partials/_base.scss +33 -0
  438. data/sample/themes/base/assets/scss/partials/_buttons.scss +0 -0
  439. data/sample/themes/base/assets/scss/partials/_links.scss +15 -0
  440. data/sample/themes/base/assets/scss/partials/_main.scss +39 -0
  441. data/sample/themes/base/assets/scss/partials/_typography.scss +15 -0
  442. data/sample/themes/base/assets/scss/sections/_footer.scss +22 -0
  443. data/sample/themes/base/assets/scss/sections/_header.scss +23 -0
  444. data/sample/themes/base/assets/scss/sections/_home.scss +13 -0
  445. data/sample/themes/base/assets/scss/sections/_pages.scss +11 -0
  446. data/sample/themes/base/assets/scss/vendor/_normalize.scss +406 -0
  447. data/sample/themes/base/layouts/default.haml +14 -0
  448. data/sample/themes/base/layouts/post.haml +15 -0
  449. data/sample/themes/base/partials/_footer.haml +9 -0
  450. data/sample/themes/base/partials/_ga.haml +10 -0
  451. data/sample/themes/base/partials/_head.haml +20 -0
  452. data/sample/themes/base/partials/_header.haml +5 -0
  453. data/sample/themes/base/settings.yml +4 -0
  454. data/test/data/post-receive-hook.json +146 -0
  455. data/test/test_basics.rb +50 -0
  456. data/test/test_data.rb +14 -0
  457. data/test/test_deploy.rb +23 -0
  458. data/test/test_includes.rb +43 -0
  459. data/test/test_page.rb +47 -0
  460. metadata +1049 -0
@@ -0,0 +1,160 @@
1
+ CodeMirror.defineMode("apl", function() {
2
+ var builtInOps = {
3
+ ".": "innerProduct",
4
+ "\\": "scan",
5
+ "/": "reduce",
6
+ "⌿": "reduce1Axis",
7
+ "⍀": "scan1Axis",
8
+ "¨": "each",
9
+ "⍣": "power"
10
+ };
11
+ var builtInFuncs = {
12
+ "+": ["conjugate", "add"],
13
+ "−": ["negate", "subtract"],
14
+ "×": ["signOf", "multiply"],
15
+ "÷": ["reciprocal", "divide"],
16
+ "⌈": ["ceiling", "greaterOf"],
17
+ "⌊": ["floor", "lesserOf"],
18
+ "∣": ["absolute", "residue"],
19
+ "⍳": ["indexGenerate", "indexOf"],
20
+ "?": ["roll", "deal"],
21
+ "⋆": ["exponentiate", "toThePowerOf"],
22
+ "⍟": ["naturalLog", "logToTheBase"],
23
+ "○": ["piTimes", "circularFuncs"],
24
+ "!": ["factorial", "binomial"],
25
+ "⌹": ["matrixInverse", "matrixDivide"],
26
+ "<": [null, "lessThan"],
27
+ "≤": [null, "lessThanOrEqual"],
28
+ "=": [null, "equals"],
29
+ ">": [null, "greaterThan"],
30
+ "≥": [null, "greaterThanOrEqual"],
31
+ "≠": [null, "notEqual"],
32
+ "≡": ["depth", "match"],
33
+ "≢": [null, "notMatch"],
34
+ "∈": ["enlist", "membership"],
35
+ "⍷": [null, "find"],
36
+ "∪": ["unique", "union"],
37
+ "∩": [null, "intersection"],
38
+ "∼": ["not", "without"],
39
+ "∨": [null, "or"],
40
+ "∧": [null, "and"],
41
+ "⍱": [null, "nor"],
42
+ "⍲": [null, "nand"],
43
+ "⍴": ["shapeOf", "reshape"],
44
+ ",": ["ravel", "catenate"],
45
+ "⍪": [null, "firstAxisCatenate"],
46
+ "⌽": ["reverse", "rotate"],
47
+ "⊖": ["axis1Reverse", "axis1Rotate"],
48
+ "⍉": ["transpose", null],
49
+ "↑": ["first", "take"],
50
+ "↓": [null, "drop"],
51
+ "⊂": ["enclose", "partitionWithAxis"],
52
+ "⊃": ["diclose", "pick"],
53
+ "⌷": [null, "index"],
54
+ "⍋": ["gradeUp", null],
55
+ "⍒": ["gradeDown", null],
56
+ "⊤": ["encode", null],
57
+ "⊥": ["decode", null],
58
+ "⍕": ["format", "formatByExample"],
59
+ "⍎": ["execute", null],
60
+ "⊣": ["stop", "left"],
61
+ "⊢": ["pass", "right"]
62
+ };
63
+
64
+ var isOperator = /[\.\/⌿⍀¨⍣]/;
65
+ var isNiladic = /⍬/;
66
+ var isFunction = /[\+−×÷⌈⌊∣⍳\?⋆⍟○!⌹<≤=>≥≠≡≢∈⍷∪∩∼∨∧⍱⍲⍴,⍪⌽⊖⍉↑↓⊂⊃⌷⍋⍒⊤⊥⍕⍎⊣⊢]/;
67
+ var isArrow = /←/;
68
+ var isComment = /[⍝#].*$/;
69
+
70
+ var stringEater = function(type) {
71
+ var prev;
72
+ prev = false;
73
+ return function(c) {
74
+ prev = c;
75
+ if (c === type) {
76
+ return prev === "\\";
77
+ }
78
+ return true;
79
+ };
80
+ };
81
+ return {
82
+ startState: function() {
83
+ return {
84
+ prev: false,
85
+ func: false,
86
+ op: false,
87
+ string: false,
88
+ escape: false
89
+ };
90
+ },
91
+ token: function(stream, state) {
92
+ var ch, funcName, word;
93
+ if (stream.eatSpace()) {
94
+ return null;
95
+ }
96
+ ch = stream.next();
97
+ if (ch === '"' || ch === "'") {
98
+ stream.eatWhile(stringEater(ch));
99
+ stream.next();
100
+ state.prev = true;
101
+ return "string";
102
+ }
103
+ if (/[\[{\(]/.test(ch)) {
104
+ state.prev = false;
105
+ return null;
106
+ }
107
+ if (/[\]}\)]/.test(ch)) {
108
+ state.prev = true;
109
+ return null;
110
+ }
111
+ if (isNiladic.test(ch)) {
112
+ state.prev = false;
113
+ return "niladic";
114
+ }
115
+ if (/[¯\d]/.test(ch)) {
116
+ if (state.func) {
117
+ state.func = false;
118
+ state.prev = false;
119
+ } else {
120
+ state.prev = true;
121
+ }
122
+ stream.eatWhile(/[\w\.]/);
123
+ return "number";
124
+ }
125
+ if (isOperator.test(ch)) {
126
+ return "operator apl-" + builtInOps[ch];
127
+ }
128
+ if (isArrow.test(ch)) {
129
+ return "apl-arrow";
130
+ }
131
+ if (isFunction.test(ch)) {
132
+ funcName = "apl-";
133
+ if (builtInFuncs[ch] != null) {
134
+ if (state.prev) {
135
+ funcName += builtInFuncs[ch][1];
136
+ } else {
137
+ funcName += builtInFuncs[ch][0];
138
+ }
139
+ }
140
+ state.func = true;
141
+ state.prev = false;
142
+ return "function " + funcName;
143
+ }
144
+ if (isComment.test(ch)) {
145
+ stream.skipToEnd();
146
+ return "comment";
147
+ }
148
+ if (ch === "∘" && stream.peek() === ".") {
149
+ stream.next();
150
+ return "function jot-dot";
151
+ }
152
+ stream.eatWhile(/[\w\$_]/);
153
+ word = stream.current();
154
+ state.prev = true;
155
+ return "keyword";
156
+ }
157
+ };
158
+ });
159
+
160
+ CodeMirror.defineMIME("text/apl", "apl");
@@ -0,0 +1,72 @@
1
+ <!doctype html>
2
+
3
+ <title>CodeMirror: APL mode</title>
4
+ <meta charset="utf-8"/>
5
+ <link rel=stylesheet href="../../doc/docs.css">
6
+
7
+ <link rel="stylesheet" href="../../lib/codemirror.css">
8
+ <script src="../../lib/codemirror.js"></script>
9
+ <script src="../../addon/edit/matchbrackets.js"></script>
10
+ <script src="./apl.js"></script>
11
+ <style>
12
+ .CodeMirror { border: 2px inset #dee; }
13
+ </style>
14
+ <div id=nav>
15
+ <a href="http://codemirror.net"><img id=logo src="../../doc/logo.png"></a>
16
+
17
+ <ul>
18
+ <li><a href="../../index.html">Home</a>
19
+ <li><a href="../../doc/manual.html">Manual</a>
20
+ <li><a href="https://github.com/marijnh/codemirror">Code</a>
21
+ </ul>
22
+ <ul>
23
+ <li><a href="../index.html">Language modes</a>
24
+ <li><a class=active href="#">APL</a>
25
+ </ul>
26
+ </div>
27
+
28
+ <article>
29
+ <h2>APL mode</h2>
30
+ <form><textarea id="code" name="code">
31
+ ⍝ Conway's game of life
32
+
33
+ ⍝ This example was inspired by the impressive demo at
34
+ ⍝ http://www.youtube.com/watch?v=a9xAKttWgP4
35
+
36
+ ⍝ Create a matrix:
37
+ ⍝ 0 1 1
38
+ ⍝ 1 1 0
39
+ ⍝ 0 1 0
40
+ creature ← (3 3 ⍴ ⍳ 9) ∈ 1 2 3 4 7 ⍝ Original creature from demo
41
+ creature ← (3 3 ⍴ ⍳ 9) ∈ 1 3 6 7 8 ⍝ Glider
42
+
43
+ ⍝ Place the creature on a larger board, near the centre
44
+ board ← ¯1 ⊖ ¯2 ⌽ 5 7 ↑ creature
45
+
46
+ ⍝ A function to move from one generation to the next
47
+ life ← {∨/ 1 ⍵ ∧ 3 4 = ⊂+/ +⌿ 1 0 ¯1 ∘.⊖ 1 0 ¯1 ⌽¨ ⊂⍵}
48
+
49
+ ⍝ Compute n-th generation and format it as a
50
+ ⍝ character matrix
51
+ gen ← {' #'[(life ⍣ ⍵) board]}
52
+
53
+ ⍝ Show first three generations
54
+ (gen 1) (gen 2) (gen 3)
55
+ </textarea></form>
56
+
57
+ <script>
58
+ var editor = CodeMirror.fromTextArea(document.getElementById("code"), {
59
+ lineNumbers: true,
60
+ matchBrackets: true,
61
+ mode: "text/apl"
62
+ });
63
+ </script>
64
+
65
+ <p>Simple mode that tries to handle APL as well as it can.</p>
66
+ <p>It attempts to label functions/operators based upon
67
+ monadic/dyadic usage (but this is far from fully fleshed out).
68
+ This means there are meaningful classnames so hover states can
69
+ have popups etc.</p>
70
+
71
+ <p><strong>MIME types defined:</strong> <code>text/apl</code> (APL code)</p>
72
+ </article>
@@ -0,0 +1,183 @@
1
+ /*
2
+ * =====================================================================================
3
+ *
4
+ * Filename: mode/asterisk/asterisk.js
5
+ *
6
+ * Description: CodeMirror mode for Asterisk dialplan
7
+ *
8
+ * Created: 05/17/2012 09:20:25 PM
9
+ * Revision: none
10
+ *
11
+ * Author: Stas Kobzar (stas@modulis.ca),
12
+ * Company: Modulis.ca Inc.
13
+ *
14
+ * =====================================================================================
15
+ */
16
+
17
+ CodeMirror.defineMode("asterisk", function() {
18
+ var atoms = ["exten", "same", "include","ignorepat","switch"],
19
+ dpcmd = ["#include","#exec"],
20
+ apps = [
21
+ "addqueuemember","adsiprog","aelsub","agentlogin","agentmonitoroutgoing","agi",
22
+ "alarmreceiver","amd","answer","authenticate","background","backgrounddetect",
23
+ "bridge","busy","callcompletioncancel","callcompletionrequest","celgenuserevent",
24
+ "changemonitor","chanisavail","channelredirect","chanspy","clearhash","confbridge",
25
+ "congestion","continuewhile","controlplayback","dahdiacceptr2call","dahdibarge",
26
+ "dahdiras","dahdiscan","dahdisendcallreroutingfacility","dahdisendkeypadfacility",
27
+ "datetime","dbdel","dbdeltree","deadagi","dial","dictate","directory","disa",
28
+ "dumpchan","eagi","echo","endwhile","exec","execif","execiftime","exitwhile","extenspy",
29
+ "externalivr","festival","flash","followme","forkcdr","getcpeid","gosub","gosubif",
30
+ "goto","gotoif","gotoiftime","hangup","iax2provision","ices","importvar","incomplete",
31
+ "ivrdemo","jabberjoin","jabberleave","jabbersend","jabbersendgroup","jabberstatus",
32
+ "jack","log","macro","macroexclusive","macroexit","macroif","mailboxexists","meetme",
33
+ "meetmeadmin","meetmechanneladmin","meetmecount","milliwatt","minivmaccmess","minivmdelete",
34
+ "minivmgreet","minivmmwi","minivmnotify","minivmrecord","mixmonitor","monitor","morsecode",
35
+ "mp3player","mset","musiconhold","nbscat","nocdr","noop","odbc","odbc","odbcfinish",
36
+ "originate","ospauth","ospfinish","osplookup","ospnext","page","park","parkandannounce",
37
+ "parkedcall","pausemonitor","pausequeuemember","pickup","pickupchan","playback","playtones",
38
+ "privacymanager","proceeding","progress","queue","queuelog","raiseexception","read","readexten",
39
+ "readfile","receivefax","receivefax","receivefax","record","removequeuemember",
40
+ "resetcdr","retrydial","return","ringing","sayalpha","saycountedadj","saycountednoun",
41
+ "saycountpl","saydigits","saynumber","sayphonetic","sayunixtime","senddtmf","sendfax",
42
+ "sendfax","sendfax","sendimage","sendtext","sendurl","set","setamaflags",
43
+ "setcallerpres","setmusiconhold","sipaddheader","sipdtmfmode","sipremoveheader","skel",
44
+ "slastation","slatrunk","sms","softhangup","speechactivategrammar","speechbackground",
45
+ "speechcreate","speechdeactivategrammar","speechdestroy","speechloadgrammar","speechprocessingsound",
46
+ "speechstart","speechunloadgrammar","stackpop","startmusiconhold","stopmixmonitor","stopmonitor",
47
+ "stopmusiconhold","stopplaytones","system","testclient","testserver","transfer","tryexec",
48
+ "trysystem","unpausemonitor","unpausequeuemember","userevent","verbose","vmauthenticate",
49
+ "vmsayname","voicemail","voicemailmain","wait","waitexten","waitfornoise","waitforring",
50
+ "waitforsilence","waitmusiconhold","waituntil","while","zapateller"
51
+ ];
52
+
53
+ function basicToken(stream,state){
54
+ var cur = '';
55
+ var ch = '';
56
+ ch = stream.next();
57
+ // comment
58
+ if(ch == ";") {
59
+ stream.skipToEnd();
60
+ return "comment";
61
+ }
62
+ // context
63
+ if(ch == '[') {
64
+ stream.skipTo(']');
65
+ stream.eat(']');
66
+ return "header";
67
+ }
68
+ // string
69
+ if(ch == '"') {
70
+ stream.skipTo('"');
71
+ return "string";
72
+ }
73
+ if(ch == "'") {
74
+ stream.skipTo("'");
75
+ return "string-2";
76
+ }
77
+ // dialplan commands
78
+ if(ch == '#') {
79
+ stream.eatWhile(/\w/);
80
+ cur = stream.current();
81
+ if(dpcmd.indexOf(cur) !== -1) {
82
+ stream.skipToEnd();
83
+ return "strong";
84
+ }
85
+ }
86
+ // application args
87
+ if(ch == '$'){
88
+ var ch1 = stream.peek();
89
+ if(ch1 == '{'){
90
+ stream.skipTo('}');
91
+ stream.eat('}');
92
+ return "variable-3";
93
+ }
94
+ }
95
+ // extension
96
+ stream.eatWhile(/\w/);
97
+ cur = stream.current();
98
+ if(atoms.indexOf(cur) !== -1) {
99
+ state.extenStart = true;
100
+ switch(cur) {
101
+ case 'same': state.extenSame = true; break;
102
+ case 'include':
103
+ case 'switch':
104
+ case 'ignorepat':
105
+ state.extenInclude = true;break;
106
+ default:break;
107
+ }
108
+ return "atom";
109
+ }
110
+ }
111
+
112
+ return {
113
+ startState: function() {
114
+ return {
115
+ extenStart: false,
116
+ extenSame: false,
117
+ extenInclude: false,
118
+ extenExten: false,
119
+ extenPriority: false,
120
+ extenApplication: false
121
+ };
122
+ },
123
+ token: function(stream, state) {
124
+
125
+ var cur = '';
126
+ var ch = '';
127
+ if(stream.eatSpace()) return null;
128
+ // extension started
129
+ if(state.extenStart){
130
+ stream.eatWhile(/[^\s]/);
131
+ cur = stream.current();
132
+ if(/^=>?$/.test(cur)){
133
+ state.extenExten = true;
134
+ state.extenStart = false;
135
+ return "strong";
136
+ } else {
137
+ state.extenStart = false;
138
+ stream.skipToEnd();
139
+ return "error";
140
+ }
141
+ } else if(state.extenExten) {
142
+ // set exten and priority
143
+ state.extenExten = false;
144
+ state.extenPriority = true;
145
+ stream.eatWhile(/[^,]/);
146
+ if(state.extenInclude) {
147
+ stream.skipToEnd();
148
+ state.extenPriority = false;
149
+ state.extenInclude = false;
150
+ }
151
+ if(state.extenSame) {
152
+ state.extenPriority = false;
153
+ state.extenSame = false;
154
+ state.extenApplication = true;
155
+ }
156
+ return "tag";
157
+ } else if(state.extenPriority) {
158
+ state.extenPriority = false;
159
+ state.extenApplication = true;
160
+ ch = stream.next(); // get comma
161
+ if(state.extenSame) return null;
162
+ stream.eatWhile(/[^,]/);
163
+ return "number";
164
+ } else if(state.extenApplication) {
165
+ stream.eatWhile(/,/);
166
+ cur = stream.current();
167
+ if(cur === ',') return null;
168
+ stream.eatWhile(/\w/);
169
+ cur = stream.current().toLowerCase();
170
+ state.extenApplication = false;
171
+ if(apps.indexOf(cur) !== -1){
172
+ return "def strong";
173
+ }
174
+ } else{
175
+ return basicToken(stream,state);
176
+ }
177
+
178
+ return null;
179
+ }
180
+ };
181
+ });
182
+
183
+ CodeMirror.defineMIME("text/x-asterisk", "asterisk");
@@ -0,0 +1,154 @@
1
+ <!doctype html>
2
+
3
+ <title>CodeMirror: Asterisk dialplan mode</title>
4
+ <meta charset="utf-8"/>
5
+ <link rel=stylesheet href="../../doc/docs.css">
6
+
7
+ <link rel="stylesheet" href="../../lib/codemirror.css">
8
+ <script src="../../lib/codemirror.js"></script>
9
+ <script src="asterisk.js"></script>
10
+ <style>
11
+ .CodeMirror {border: 1px solid #999;}
12
+ .cm-s-default span.cm-arrow { color: red; }
13
+ </style>
14
+ <div id=nav>
15
+ <a href="http://codemirror.net"><img id=logo src="../../doc/logo.png"></a>
16
+
17
+ <ul>
18
+ <li><a href="../../index.html">Home</a>
19
+ <li><a href="../../doc/manual.html">Manual</a>
20
+ <li><a href="https://github.com/marijnh/codemirror">Code</a>
21
+ </ul>
22
+ <ul>
23
+ <li><a href="../index.html">Language modes</a>
24
+ <li><a class=active href="#">Asterisk dialplan</a>
25
+ </ul>
26
+ </div>
27
+
28
+ <article>
29
+ <h2>Asterisk dialplan mode</h2>
30
+ <form><textarea id="code" name="code">
31
+ ; extensions.conf - the Asterisk dial plan
32
+ ;
33
+
34
+ [general]
35
+ ;
36
+ ; If static is set to no, or omitted, then the pbx_config will rewrite
37
+ ; this file when extensions are modified. Remember that all comments
38
+ ; made in the file will be lost when that happens.
39
+ static=yes
40
+
41
+ #include "/etc/asterisk/additional_general.conf
42
+
43
+ [iaxprovider]
44
+ switch => IAX2/user:[key]@myserver/mycontext
45
+
46
+ [dynamic]
47
+ #exec /usr/bin/dynamic-peers.pl
48
+
49
+ [trunkint]
50
+ ;
51
+ ; International long distance through trunk
52
+ ;
53
+ exten => _9011.,1,Macro(dundi-e164,${EXTEN:4})
54
+ exten => _9011.,n,Dial(${GLOBAL(TRUNK)}/${FILTER(0-9,${EXTEN:${GLOBAL(TRUNKMSD)}})})
55
+
56
+ [local]
57
+ ;
58
+ ; Master context for local, toll-free, and iaxtel calls only
59
+ ;
60
+ ignorepat => 9
61
+ include => default
62
+
63
+ [demo]
64
+ include => stdexten
65
+ ;
66
+ ; We start with what to do when a call first comes in.
67
+ ;
68
+ exten => s,1,Wait(1) ; Wait a second, just for fun
69
+ same => n,Answer ; Answer the line
70
+ same => n,Set(TIMEOUT(digit)=5) ; Set Digit Timeout to 5 seconds
71
+ same => n,Set(TIMEOUT(response)=10) ; Set Response Timeout to 10 seconds
72
+ same => n(restart),BackGround(demo-congrats) ; Play a congratulatory message
73
+ same => n(instruct),BackGround(demo-instruct) ; Play some instructions
74
+ same => n,WaitExten ; Wait for an extension to be dialed.
75
+
76
+ exten => 2,1,BackGround(demo-moreinfo) ; Give some more information.
77
+ exten => 2,n,Goto(s,instruct)
78
+
79
+ exten => 3,1,Set(LANGUAGE()=fr) ; Set language to french
80
+ exten => 3,n,Goto(s,restart) ; Start with the congratulations
81
+
82
+ exten => 1000,1,Goto(default,s,1)
83
+ ;
84
+ ; We also create an example user, 1234, who is on the console and has
85
+ ; voicemail, etc.
86
+ ;
87
+ exten => 1234,1,Playback(transfer,skip) ; "Please hold while..."
88
+ ; (but skip if channel is not up)
89
+ exten => 1234,n,Gosub(${EXTEN},stdexten(${GLOBAL(CONSOLE)}))
90
+ exten => 1234,n,Goto(default,s,1) ; exited Voicemail
91
+
92
+ exten => 1235,1,Voicemail(1234,u) ; Right to voicemail
93
+
94
+ exten => 1236,1,Dial(Console/dsp) ; Ring forever
95
+ exten => 1236,n,Voicemail(1234,b) ; Unless busy
96
+
97
+ ;
98
+ ; # for when they're done with the demo
99
+ ;
100
+ exten => #,1,Playback(demo-thanks) ; "Thanks for trying the demo"
101
+ exten => #,n,Hangup ; Hang them up.
102
+
103
+ ;
104
+ ; A timeout and "invalid extension rule"
105
+ ;
106
+ exten => t,1,Goto(#,1) ; If they take too long, give up
107
+ exten => i,1,Playback(invalid) ; "That's not valid, try again"
108
+
109
+ ;
110
+ ; Create an extension, 500, for dialing the
111
+ ; Asterisk demo.
112
+ ;
113
+ exten => 500,1,Playback(demo-abouttotry); Let them know what's going on
114
+ exten => 500,n,Dial(IAX2/guest@pbx.digium.com/s@default) ; Call the Asterisk demo
115
+ exten => 500,n,Playback(demo-nogo) ; Couldn't connect to the demo site
116
+ exten => 500,n,Goto(s,6) ; Return to the start over message.
117
+
118
+ ;
119
+ ; Create an extension, 600, for evaluating echo latency.
120
+ ;
121
+ exten => 600,1,Playback(demo-echotest) ; Let them know what's going on
122
+ exten => 600,n,Echo ; Do the echo test
123
+ exten => 600,n,Playback(demo-echodone) ; Let them know it's over
124
+ exten => 600,n,Goto(s,6) ; Start over
125
+
126
+ ;
127
+ ; You can use the Macro Page to intercom a individual user
128
+ exten => 76245,1,Macro(page,SIP/Grandstream1)
129
+ ; or if your peernames are the same as extensions
130
+ exten => _7XXX,1,Macro(page,SIP/${EXTEN})
131
+ ;
132
+ ;
133
+ ; System Wide Page at extension 7999
134
+ ;
135
+ exten => 7999,1,Set(TIMEOUT(absolute)=60)
136
+ exten => 7999,2,Page(Local/Grandstream1@page&Local/Xlite1@page&Local/1234@page/n,d)
137
+
138
+ ; Give voicemail at extension 8500
139
+ ;
140
+ exten => 8500,1,VoicemailMain
141
+ exten => 8500,n,Goto(s,6)
142
+
143
+ </textarea></form>
144
+ <script>
145
+ var editor = CodeMirror.fromTextArea(document.getElementById("code"), {
146
+ mode: "text/x-asterisk",
147
+ matchBrackets: true,
148
+ lineNumber: true
149
+ });
150
+ </script>
151
+
152
+ <p><strong>MIME types defined:</strong> <code>text/x-asterisk</code>.</p>
153
+
154
+ </article>