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,63 @@
1
+ CodeMirror.defineMode("properties", function() {
2
+ return {
3
+ token: function(stream, state) {
4
+ var sol = stream.sol() || state.afterSection;
5
+ var eol = stream.eol();
6
+
7
+ state.afterSection = false;
8
+
9
+ if (sol) {
10
+ if (state.nextMultiline) {
11
+ state.inMultiline = true;
12
+ state.nextMultiline = false;
13
+ } else {
14
+ state.position = "def";
15
+ }
16
+ }
17
+
18
+ if (eol && ! state.nextMultiline) {
19
+ state.inMultiline = false;
20
+ state.position = "def";
21
+ }
22
+
23
+ if (sol) {
24
+ while(stream.eatSpace());
25
+ }
26
+
27
+ var ch = stream.next();
28
+
29
+ if (sol && (ch === "#" || ch === "!" || ch === ";")) {
30
+ state.position = "comment";
31
+ stream.skipToEnd();
32
+ return "comment";
33
+ } else if (sol && ch === "[") {
34
+ state.afterSection = true;
35
+ stream.skipTo("]"); stream.eat("]");
36
+ return "header";
37
+ } else if (ch === "=" || ch === ":") {
38
+ state.position = "quote";
39
+ return null;
40
+ } else if (ch === "\\" && state.position === "quote") {
41
+ if (stream.next() !== "u") { // u = Unicode sequence \u1234
42
+ // Multiline value
43
+ state.nextMultiline = true;
44
+ }
45
+ }
46
+
47
+ return state.position;
48
+ },
49
+
50
+ startState: function() {
51
+ return {
52
+ position : "def", // Current position, "def", "quote" or "comment"
53
+ nextMultiline : false, // Is the next line multiline value
54
+ inMultiline : false, // Is the current line a multiline value
55
+ afterSection : false // Did we just open a section
56
+ };
57
+ }
58
+
59
+ };
60
+ });
61
+
62
+ CodeMirror.defineMIME("text/x-properties", "properties");
63
+ CodeMirror.defineMIME("text/x-ini", "properties");
@@ -0,0 +1,187 @@
1
+ <!doctype html>
2
+
3
+ <title>CodeMirror: Python 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="python.js"></script>
11
+ <style type="text/css">.CodeMirror {border-top: 1px solid black; border-bottom: 1px solid black;}</style>
12
+ <div id=nav>
13
+ <a href="http://codemirror.net"><img id=logo src="../../doc/logo.png"></a>
14
+
15
+ <ul>
16
+ <li><a href="../../index.html">Home</a>
17
+ <li><a href="../../doc/manual.html">Manual</a>
18
+ <li><a href="https://github.com/marijnh/codemirror">Code</a>
19
+ </ul>
20
+ <ul>
21
+ <li><a href="../index.html">Language modes</a>
22
+ <li><a class=active href="#">Python</a>
23
+ </ul>
24
+ </div>
25
+
26
+ <article>
27
+ <h2>Python mode</h2>
28
+
29
+ <div><textarea id="code" name="code">
30
+ # Literals
31
+ 1234
32
+ 0.0e101
33
+ .123
34
+ 0b01010011100
35
+ 0o01234567
36
+ 0x0987654321abcdef
37
+ 7
38
+ 2147483647
39
+ 3L
40
+ 79228162514264337593543950336L
41
+ 0x100000000L
42
+ 79228162514264337593543950336
43
+ 0xdeadbeef
44
+ 3.14j
45
+ 10.j
46
+ 10j
47
+ .001j
48
+ 1e100j
49
+ 3.14e-10j
50
+
51
+
52
+ # String Literals
53
+ 'For\''
54
+ "God\""
55
+ """so loved
56
+ the world"""
57
+ '''that he gave
58
+ his only begotten\' '''
59
+ 'that whosoever believeth \
60
+ in him'
61
+ ''
62
+
63
+ # Identifiers
64
+ __a__
65
+ a.b
66
+ a.b.c
67
+
68
+ # Operators
69
+ + - * / % & | ^ ~ < >
70
+ == != <= >= <> << >> // **
71
+ and or not in is
72
+
73
+ # Delimiters
74
+ () [] {} , : ` = ; @ . # Note that @ and . require the proper context.
75
+ += -= *= /= %= &= |= ^=
76
+ //= >>= <<= **=
77
+
78
+ # Keywords
79
+ as assert break class continue def del elif else except
80
+ finally for from global if import lambda pass raise
81
+ return try while with yield
82
+
83
+ # Python 2 Keywords (otherwise Identifiers)
84
+ exec print
85
+
86
+ # Python 3 Keywords (otherwise Identifiers)
87
+ nonlocal
88
+
89
+ # Types
90
+ bool classmethod complex dict enumerate float frozenset int list object
91
+ property reversed set slice staticmethod str super tuple type
92
+
93
+ # Python 2 Types (otherwise Identifiers)
94
+ basestring buffer file long unicode xrange
95
+
96
+ # Python 3 Types (otherwise Identifiers)
97
+ bytearray bytes filter map memoryview open range zip
98
+
99
+ # Some Example code
100
+ import os
101
+ from package import ParentClass
102
+
103
+ @nonsenseDecorator
104
+ def doesNothing():
105
+ pass
106
+
107
+ class ExampleClass(ParentClass):
108
+ @staticmethod
109
+ def example(inputStr):
110
+ a = list(inputStr)
111
+ a.reverse()
112
+ return ''.join(a)
113
+
114
+ def __init__(self, mixin = 'Hello'):
115
+ self.mixin = mixin
116
+
117
+ </textarea></div>
118
+
119
+
120
+ <h2>Cython mode</h2>
121
+
122
+ <div><textarea id="code-cython" name="code-cython">
123
+
124
+ import numpy as np
125
+ cimport cython
126
+ from libc.math cimport sqrt
127
+
128
+ @cython.boundscheck(False)
129
+ @cython.wraparound(False)
130
+ def pairwise_cython(double[:, ::1] X):
131
+ cdef int M = X.shape[0]
132
+ cdef int N = X.shape[1]
133
+ cdef double tmp, d
134
+ cdef double[:, ::1] D = np.empty((M, M), dtype=np.float64)
135
+ for i in range(M):
136
+ for j in range(M):
137
+ d = 0.0
138
+ for k in range(N):
139
+ tmp = X[i, k] - X[j, k]
140
+ d += tmp * tmp
141
+ D[i, j] = sqrt(d)
142
+ return np.asarray(D)
143
+
144
+ </textarea></div>
145
+
146
+ <script>
147
+ var editor = CodeMirror.fromTextArea(document.getElementById("code"), {
148
+ mode: {name: "python",
149
+ version: 2,
150
+ singleLineStringErrors: false},
151
+ lineNumbers: true,
152
+ indentUnit: 4,
153
+ tabMode: "shift",
154
+ matchBrackets: true
155
+ });
156
+
157
+ CodeMirror.fromTextArea(document.getElementById("code-cython"), {
158
+ mode: {name: "text/x-cython",
159
+ version: 2,
160
+ singleLineStringErrors: false},
161
+ lineNumbers: true,
162
+ indentUnit: 4,
163
+ tabMode: "shift",
164
+ matchBrackets: true
165
+ });
166
+ </script>
167
+ <h2>Configuration Options for Python mode:</h2>
168
+ <ul>
169
+ <li>version - 2/3 - The version of Python to recognize. Default is 2.</li>
170
+ <li>singleLineStringErrors - true/false - If you have a single-line string that is not terminated at the end of the line, this will show subsequent lines as errors if true, otherwise it will consider the newline as the end of the string. Default is false.</li>
171
+ </ul>
172
+ <h2>Advanced Configuration Options:</h2>
173
+ <p>Usefull for superset of python syntax like Enthought enaml, IPython magics and questionmark help</p>
174
+ <ul>
175
+ <li>singleOperators - RegEx - Regular Expression for single operator matching, default : <pre>^[\\+\\-\\*/%&amp;|\\^~&lt;&gt;!]</pre></li>
176
+ <li>singleDelimiters - RegEx - Regular Expression for single delimiter matching, default : <pre>^[\\(\\)\\[\\]\\{\\}@,:`=;\\.]</pre></li>
177
+ <li>doubleOperators - RegEx - Regular Expression for double operators matching, default : <pre>^((==)|(!=)|(&lt;=)|(&gt;=)|(&lt;&gt;)|(&lt;&lt;)|(&gt;&gt;)|(//)|(\\*\\*))</pre></li>
178
+ <li>doubleDelimiters - RegEx - Regular Expressoin for double delimiters matching, default : <pre>^((\\+=)|(\\-=)|(\\*=)|(%=)|(/=)|(&amp;=)|(\\|=)|(\\^=))</pre></li>
179
+ <li>tripleDelimiters - RegEx - Regular Expression for triple delimiters matching, default : <pre>^((//=)|(&gt;&gt;=)|(&lt;&lt;=)|(\\*\\*=))</pre></li>
180
+ <li>identifiers - RegEx - Regular Expression for identifier, default : <pre>^[_A-Za-z][_A-Za-z0-9]*</pre></li>
181
+ <li>extra_keywords - list of string - List of extra words ton consider as keywords</li>
182
+ <li>extra_builtins - list of string - List of extra words ton consider as builtins</li>
183
+ </ul>
184
+
185
+
186
+ <p><strong>MIME types defined:</strong> <code>text/x-python</code> and <code>text/x-cython</code>.</p>
187
+ </article>
@@ -0,0 +1,368 @@
1
+ CodeMirror.defineMode("python", function(conf, parserConf) {
2
+ var ERRORCLASS = 'error';
3
+
4
+ function wordRegexp(words) {
5
+ return new RegExp("^((" + words.join(")|(") + "))\\b");
6
+ }
7
+
8
+ var singleOperators = parserConf.singleOperators || new RegExp("^[\\+\\-\\*/%&|\\^~<>!]");
9
+ var singleDelimiters = parserConf.singleDelimiters || new RegExp('^[\\(\\)\\[\\]\\{\\}@,:`=;\\.]');
10
+ var doubleOperators = parserConf.doubleOperators || new RegExp("^((==)|(!=)|(<=)|(>=)|(<>)|(<<)|(>>)|(//)|(\\*\\*))");
11
+ var doubleDelimiters = parserConf.doubleDelimiters || new RegExp("^((\\+=)|(\\-=)|(\\*=)|(%=)|(/=)|(&=)|(\\|=)|(\\^=))");
12
+ var tripleDelimiters = parserConf.tripleDelimiters || new RegExp("^((//=)|(>>=)|(<<=)|(\\*\\*=))");
13
+ var identifiers = parserConf.identifiers|| new RegExp("^[_A-Za-z][_A-Za-z0-9]*");
14
+
15
+ var wordOperators = wordRegexp(['and', 'or', 'not', 'is', 'in']);
16
+ var commonkeywords = ['as', 'assert', 'break', 'class', 'continue',
17
+ 'def', 'del', 'elif', 'else', 'except', 'finally',
18
+ 'for', 'from', 'global', 'if', 'import',
19
+ 'lambda', 'pass', 'raise', 'return',
20
+ 'try', 'while', 'with', 'yield'];
21
+ var commonBuiltins = ['abs', 'all', 'any', 'bin', 'bool', 'bytearray', 'callable', 'chr',
22
+ 'classmethod', 'compile', 'complex', 'delattr', 'dict', 'dir', 'divmod',
23
+ 'enumerate', 'eval', 'filter', 'float', 'format', 'frozenset',
24
+ 'getattr', 'globals', 'hasattr', 'hash', 'help', 'hex', 'id',
25
+ 'input', 'int', 'isinstance', 'issubclass', 'iter', 'len',
26
+ 'list', 'locals', 'map', 'max', 'memoryview', 'min', 'next',
27
+ 'object', 'oct', 'open', 'ord', 'pow', 'property', 'range',
28
+ 'repr', 'reversed', 'round', 'set', 'setattr', 'slice',
29
+ 'sorted', 'staticmethod', 'str', 'sum', 'super', 'tuple',
30
+ 'type', 'vars', 'zip', '__import__', 'NotImplemented',
31
+ 'Ellipsis', '__debug__'];
32
+ var py2 = {'builtins': ['apply', 'basestring', 'buffer', 'cmp', 'coerce', 'execfile',
33
+ 'file', 'intern', 'long', 'raw_input', 'reduce', 'reload',
34
+ 'unichr', 'unicode', 'xrange', 'False', 'True', 'None'],
35
+ 'keywords': ['exec', 'print']};
36
+ var py3 = {'builtins': ['ascii', 'bytes', 'exec', 'print'],
37
+ 'keywords': ['nonlocal', 'False', 'True', 'None']};
38
+
39
+ if(parserConf.extra_keywords != undefined){
40
+ commonkeywords = commonkeywords.concat(parserConf.extra_keywords);
41
+ }
42
+ if(parserConf.extra_builtins != undefined){
43
+ commonBuiltins = commonBuiltins.concat(parserConf.extra_builtins);
44
+ }
45
+ if (!!parserConf.version && parseInt(parserConf.version, 10) === 3) {
46
+ commonkeywords = commonkeywords.concat(py3.keywords);
47
+ commonBuiltins = commonBuiltins.concat(py3.builtins);
48
+ var stringPrefixes = new RegExp("^(([rb]|(br))?('{3}|\"{3}|['\"]))", "i");
49
+ } else {
50
+ commonkeywords = commonkeywords.concat(py2.keywords);
51
+ commonBuiltins = commonBuiltins.concat(py2.builtins);
52
+ var stringPrefixes = new RegExp("^(([rub]|(ur)|(br))?('{3}|\"{3}|['\"]))", "i");
53
+ }
54
+ var keywords = wordRegexp(commonkeywords);
55
+ var builtins = wordRegexp(commonBuiltins);
56
+
57
+ var indentInfo = null;
58
+
59
+ // tokenizers
60
+ function tokenBase(stream, state) {
61
+ // Handle scope changes
62
+ if (stream.sol()) {
63
+ var scopeOffset = state.scopes[0].offset;
64
+ if (stream.eatSpace()) {
65
+ var lineOffset = stream.indentation();
66
+ if (lineOffset > scopeOffset) {
67
+ indentInfo = 'indent';
68
+ } else if (lineOffset < scopeOffset) {
69
+ indentInfo = 'dedent';
70
+ }
71
+ return null;
72
+ } else {
73
+ if (scopeOffset > 0) {
74
+ dedent(stream, state);
75
+ }
76
+ }
77
+ }
78
+ if (stream.eatSpace()) {
79
+ return null;
80
+ }
81
+
82
+ var ch = stream.peek();
83
+
84
+ // Handle Comments
85
+ if (ch === '#') {
86
+ stream.skipToEnd();
87
+ return 'comment';
88
+ }
89
+
90
+ // Handle Number Literals
91
+ if (stream.match(/^[0-9\.]/, false)) {
92
+ var floatLiteral = false;
93
+ // Floats
94
+ if (stream.match(/^\d*\.\d+(e[\+\-]?\d+)?/i)) { floatLiteral = true; }
95
+ if (stream.match(/^\d+\.\d*/)) { floatLiteral = true; }
96
+ if (stream.match(/^\.\d+/)) { floatLiteral = true; }
97
+ if (floatLiteral) {
98
+ // Float literals may be "imaginary"
99
+ stream.eat(/J/i);
100
+ return 'number';
101
+ }
102
+ // Integers
103
+ var intLiteral = false;
104
+ // Hex
105
+ if (stream.match(/^0x[0-9a-f]+/i)) { intLiteral = true; }
106
+ // Binary
107
+ if (stream.match(/^0b[01]+/i)) { intLiteral = true; }
108
+ // Octal
109
+ if (stream.match(/^0o[0-7]+/i)) { intLiteral = true; }
110
+ // Decimal
111
+ if (stream.match(/^[1-9]\d*(e[\+\-]?\d+)?/)) {
112
+ // Decimal literals may be "imaginary"
113
+ stream.eat(/J/i);
114
+ // TODO - Can you have imaginary longs?
115
+ intLiteral = true;
116
+ }
117
+ // Zero by itself with no other piece of number.
118
+ if (stream.match(/^0(?![\dx])/i)) { intLiteral = true; }
119
+ if (intLiteral) {
120
+ // Integer literals may be "long"
121
+ stream.eat(/L/i);
122
+ return 'number';
123
+ }
124
+ }
125
+
126
+ // Handle Strings
127
+ if (stream.match(stringPrefixes)) {
128
+ state.tokenize = tokenStringFactory(stream.current());
129
+ return state.tokenize(stream, state);
130
+ }
131
+
132
+ // Handle operators and Delimiters
133
+ if (stream.match(tripleDelimiters) || stream.match(doubleDelimiters)) {
134
+ return null;
135
+ }
136
+ if (stream.match(doubleOperators)
137
+ || stream.match(singleOperators)
138
+ || stream.match(wordOperators)) {
139
+ return 'operator';
140
+ }
141
+ if (stream.match(singleDelimiters)) {
142
+ return null;
143
+ }
144
+
145
+ if (stream.match(keywords)) {
146
+ return 'keyword';
147
+ }
148
+
149
+ if (stream.match(builtins)) {
150
+ return 'builtin';
151
+ }
152
+
153
+ if (stream.match(identifiers)) {
154
+ if (state.lastToken == 'def' || state.lastToken == 'class') {
155
+ return 'def';
156
+ }
157
+ return 'variable';
158
+ }
159
+
160
+ // Handle non-detected items
161
+ stream.next();
162
+ return ERRORCLASS;
163
+ }
164
+
165
+ function tokenStringFactory(delimiter) {
166
+ while ('rub'.indexOf(delimiter.charAt(0).toLowerCase()) >= 0) {
167
+ delimiter = delimiter.substr(1);
168
+ }
169
+ var singleline = delimiter.length == 1;
170
+ var OUTCLASS = 'string';
171
+
172
+ function tokenString(stream, state) {
173
+ while (!stream.eol()) {
174
+ stream.eatWhile(/[^'"\\]/);
175
+ if (stream.eat('\\')) {
176
+ stream.next();
177
+ if (singleline && stream.eol()) {
178
+ return OUTCLASS;
179
+ }
180
+ } else if (stream.match(delimiter)) {
181
+ state.tokenize = tokenBase;
182
+ return OUTCLASS;
183
+ } else {
184
+ stream.eat(/['"]/);
185
+ }
186
+ }
187
+ if (singleline) {
188
+ if (parserConf.singleLineStringErrors) {
189
+ return ERRORCLASS;
190
+ } else {
191
+ state.tokenize = tokenBase;
192
+ }
193
+ }
194
+ return OUTCLASS;
195
+ }
196
+ tokenString.isString = true;
197
+ return tokenString;
198
+ }
199
+
200
+ function indent(stream, state, type) {
201
+ type = type || 'py';
202
+ var indentUnit = 0;
203
+ if (type === 'py') {
204
+ if (state.scopes[0].type !== 'py') {
205
+ state.scopes[0].offset = stream.indentation();
206
+ return;
207
+ }
208
+ for (var i = 0; i < state.scopes.length; ++i) {
209
+ if (state.scopes[i].type === 'py') {
210
+ indentUnit = state.scopes[i].offset + conf.indentUnit;
211
+ break;
212
+ }
213
+ }
214
+ } else {
215
+ indentUnit = stream.column() + stream.current().length;
216
+ }
217
+ state.scopes.unshift({
218
+ offset: indentUnit,
219
+ type: type
220
+ });
221
+ }
222
+
223
+ function dedent(stream, state, type) {
224
+ type = type || 'py';
225
+ if (state.scopes.length == 1) return;
226
+ if (state.scopes[0].type === 'py') {
227
+ var _indent = stream.indentation();
228
+ var _indent_index = -1;
229
+ for (var i = 0; i < state.scopes.length; ++i) {
230
+ if (_indent === state.scopes[i].offset) {
231
+ _indent_index = i;
232
+ break;
233
+ }
234
+ }
235
+ if (_indent_index === -1) {
236
+ return true;
237
+ }
238
+ while (state.scopes[0].offset !== _indent) {
239
+ state.scopes.shift();
240
+ }
241
+ return false;
242
+ } else {
243
+ if (type === 'py') {
244
+ state.scopes[0].offset = stream.indentation();
245
+ return false;
246
+ } else {
247
+ if (state.scopes[0].type != type) {
248
+ return true;
249
+ }
250
+ state.scopes.shift();
251
+ return false;
252
+ }
253
+ }
254
+ }
255
+
256
+ function tokenLexer(stream, state) {
257
+ indentInfo = null;
258
+ var style = state.tokenize(stream, state);
259
+ var current = stream.current();
260
+
261
+ // Handle '.' connected identifiers
262
+ if (current === '.') {
263
+ style = stream.match(identifiers, false) ? null : ERRORCLASS;
264
+ if (style === null && state.lastStyle === 'meta') {
265
+ // Apply 'meta' style to '.' connected identifiers when
266
+ // appropriate.
267
+ style = 'meta';
268
+ }
269
+ return style;
270
+ }
271
+
272
+ // Handle decorators
273
+ if (current === '@') {
274
+ return stream.match(identifiers, false) ? 'meta' : ERRORCLASS;
275
+ }
276
+
277
+ if ((style === 'variable' || style === 'builtin')
278
+ && state.lastStyle === 'meta') {
279
+ style = 'meta';
280
+ }
281
+
282
+ // Handle scope changes.
283
+ if (current === 'pass' || current === 'return') {
284
+ state.dedent += 1;
285
+ }
286
+ if (current === 'lambda') state.lambda = true;
287
+ if ((current === ':' && !state.lambda && state.scopes[0].type == 'py')
288
+ || indentInfo === 'indent') {
289
+ indent(stream, state);
290
+ }
291
+ var delimiter_index = '[({'.indexOf(current);
292
+ if (delimiter_index !== -1) {
293
+ indent(stream, state, '])}'.slice(delimiter_index, delimiter_index+1));
294
+ }
295
+ if (indentInfo === 'dedent') {
296
+ if (dedent(stream, state)) {
297
+ return ERRORCLASS;
298
+ }
299
+ }
300
+ delimiter_index = '])}'.indexOf(current);
301
+ if (delimiter_index !== -1) {
302
+ if (dedent(stream, state, current)) {
303
+ return ERRORCLASS;
304
+ }
305
+ }
306
+ if (state.dedent > 0 && stream.eol() && state.scopes[0].type == 'py') {
307
+ if (state.scopes.length > 1) state.scopes.shift();
308
+ state.dedent -= 1;
309
+ }
310
+
311
+ return style;
312
+ }
313
+
314
+ var external = {
315
+ startState: function(basecolumn) {
316
+ return {
317
+ tokenize: tokenBase,
318
+ scopes: [{offset:basecolumn || 0, type:'py'}],
319
+ lastStyle: null,
320
+ lastToken: null,
321
+ lambda: false,
322
+ dedent: 0
323
+ };
324
+ },
325
+
326
+ token: function(stream, state) {
327
+ var style = tokenLexer(stream, state);
328
+
329
+ state.lastStyle = style;
330
+
331
+ var current = stream.current();
332
+ if (current && style) {
333
+ state.lastToken = current;
334
+ }
335
+
336
+ if (stream.eol() && state.lambda) {
337
+ state.lambda = false;
338
+ }
339
+ return style;
340
+ },
341
+
342
+ indent: function(state) {
343
+ if (state.tokenize != tokenBase) {
344
+ return state.tokenize.isString ? CodeMirror.Pass : 0;
345
+ }
346
+
347
+ return state.scopes[0].offset;
348
+ },
349
+
350
+ lineComment: "#",
351
+ fold: "indent"
352
+ };
353
+ return external;
354
+ });
355
+
356
+ CodeMirror.defineMIME("text/x-python", "python");
357
+
358
+ (function() {
359
+ "use strict";
360
+ var words = function(str){return str.split(' ');};
361
+
362
+ CodeMirror.defineMIME("text/x-cython", {
363
+ name: "python",
364
+ extra_keywords: words("by cdef cimport cpdef ctypedef enum except"+
365
+ "extern gil include nogil property public"+
366
+ "readonly struct union DEF IF ELIF ELSE")
367
+ });
368
+ })();