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,52 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <!-- Generator: Adobe Illustrator 16.0.3, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
3
+ <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
4
+ <svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="58px"
5
+ height="67px" viewBox="0 0 58 67" enable-background="new 0 0 58 67" xml:space="preserve">
6
+ <g id="Simple">
7
+ <g>
8
+ <g>
9
+ <path fill="#333333" d="M-0.099,49.003l0.038-31.37c0-0.641,0.451-1.422,1.007-1.744L27.983,0.24
10
+ c0.556-0.322,1.455-0.32,2.011,0.002l26.998,15.715c0.555,0.322,1.003,1.104,1.003,1.747l-0.037,31.37
11
+ c0,0.643-0.452,1.424-1.007,1.744L29.913,66.467c-0.556,0.321-1.455,0.32-2.011-0.002L0.904,50.75
12
+ C0.35,50.427-0.099,49.646-0.099,49.003z"/>
13
+ </g>
14
+ </g>
15
+
16
+ <rect x="-21.5" y="-16.501" display="none" fill="none" stroke="#333333" stroke-width="5" stroke-miterlimit="10" width="100" height="100"/>
17
+ </g>
18
+ <g id="Full">
19
+ <g>
20
+ <g>
21
+ <path fill="#333333" d="M-0.099-97.518l0.038-31.371c0-0.641,0.451-1.422,1.007-1.744l27.037-15.649
22
+ c0.556-0.321,1.455-0.32,2.011,0.002l26.998,15.715c0.555,0.322,1.003,1.104,1.003,1.747l-0.037,31.37
23
+ c0,0.643-0.452,1.424-1.007,1.744L29.913-80.054c-0.556,0.321-1.455,0.32-2.011-0.002L0.904-95.771
24
+ C0.35-96.094-0.099-96.875-0.099-97.518z"/>
25
+ </g>
26
+ <g>
27
+ <path fill="#333333" d="M93.862-85.334V-141c0-0.438,0.149-0.807,0.451-1.108s0.685-0.465,1.151-0.493h18.574
28
+ c5.15,0,9.589,1.816,13.314,5.447c3.726,3.631,5.575,7.98,5.548,13.047c0,5.067-1.831,9.443-5.493,13.129
29
+ c-3.663,3.686-8.077,5.528-13.243,5.528h-13.817v20.087c-0.028,0.418-0.208,0.794-0.54,1.128
30
+ c-0.333,0.334-0.693,0.501-1.081,0.501h-3.243c-0.443,0-0.832-0.15-1.164-0.451C94.014-84.514,93.862-84.896,93.862-85.334z
31
+ M100.348-111.319h13.32c3.471,0,6.463-1.272,8.977-3.816s3.771-5.59,3.771-9.141s-1.257-6.514-3.771-8.89
32
+ s-5.506-3.564-8.977-3.564h-13.32V-111.319z"/>
33
+ <path fill="#333333" d="M148.041-113.085c0-8.401,2.908-15.559,8.728-21.47c5.819-5.912,12.946-8.867,21.383-8.867
34
+ s15.571,2.956,21.404,8.867c5.859,5.911,8.789,13.068,8.789,21.47c0,8.402-2.93,15.531-8.79,21.388s-12.994,8.785-21.403,8.785
35
+ c-8.408,0-15.536-2.929-21.382-8.785C150.95-97.554,148.041-104.683,148.041-113.085z M160.978-130.327
36
+ c-4.766,4.817-7.148,10.564-7.148,17.242c0,6.678,2.383,12.397,7.148,17.159s10.49,7.144,17.174,7.144s12.408-2.382,17.174-7.144
37
+ s7.177-10.481,7.231-17.159c0-6.677-2.41-12.424-7.231-17.242c-4.821-4.816-10.545-7.225-17.174-7.225
38
+ C171.468-137.551,165.743-135.143,160.978-130.327z"/>
39
+ <path fill="#333333" d="M229.767-85.334V-141c0-0.438,0.149-0.807,0.451-1.108c0.301-0.301,0.684-0.465,1.149-0.493h3.284
40
+ c0.438,0,0.807,0.164,1.108,0.493c0.301,0.328,0.465,0.697,0.492,1.107v51.603h24.18c0.438,0,0.821,0.152,1.149,0.455
41
+ s0.479,0.689,0.451,1.157v2.44c0,0.413-0.15,0.785-0.451,1.116c-0.302,0.331-0.685,0.496-1.149,0.496h-29.064
42
+ c-0.438,0-0.821-0.15-1.149-0.451C229.916-84.514,229.767-84.896,229.767-85.334z"/>
43
+ <path fill="#333333" d="M286.818-85.334v-26.725l-20.279-28.079c-0.328-0.547-0.355-1.094-0.082-1.642
44
+ c0.273-0.547,0.753-0.821,1.437-0.821h3.941c0.492,0,0.944,0.26,1.354,0.78l17.017,23.44l16.974-23.44
45
+ c0.383-0.493,0.835-0.752,1.354-0.78h3.941c0.684,0,1.163,0.274,1.437,0.821c0.273,0.548,0.246,1.095-0.082,1.642l-20.525,27.997
46
+ v26.807c0,0.41-0.166,0.779-0.496,1.108c-0.331,0.328-0.702,0.492-1.115,0.492h-3.264c-0.441,0-0.827-0.15-1.157-0.451
47
+ C286.97-84.514,286.818-84.896,286.818-85.334z"/>
48
+ </g>
49
+ </g>
50
+ <rect x="-33" y="-166.167" fill="none" stroke="#333333" stroke-width="5" stroke-miterlimit="10" width="380" height="106"/>
51
+ </g>
52
+ </svg>
@@ -0,0 +1,36 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <!-- Generator: Adobe Illustrator 16.0.3, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
3
+ <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
4
+ <svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
5
+ width="400px" height="125px" viewBox="0 0 400 125" enable-background="new 0 0 400 125" xml:space="preserve">
6
+ <g>
7
+ <g>
8
+ <path fill="#333333" d="M43.028,77.983l0.038-31.037c0-0.635,0.451-1.408,1.005-1.726l26.994-15.482
9
+ c0.555-0.318,1.452-0.317,2.008,0.002l26.954,15.549c0.554,0.319,1.002,1.092,1.002,1.728l-0.037,31.037
10
+ c0,0.636-0.452,1.409-1.006,1.726L72.992,95.262c-0.555,0.318-1.453,0.317-2.008-0.002L44.029,79.712
11
+ C43.477,79.393,43.028,78.619,43.028,77.983z"/>
12
+ </g>
13
+ <g>
14
+ <path fill="#333333" d="M136.902,89.621V35.38c0-0.426,0.148-0.787,0.45-1.08s0.685-0.453,1.151-0.48h18.562
15
+ c5.146,0,9.582,1.77,13.306,5.307c3.724,3.539,5.571,7.776,5.544,12.714c0,4.937-1.829,9.201-5.489,12.792
16
+ c-3.661,3.592-8.072,5.388-13.234,5.388h-13.81v19.572c-0.028,0.407-0.207,0.773-0.539,1.1c-0.333,0.325-0.693,0.487-1.081,0.487
17
+ h-3.24c-0.443,0-0.832-0.146-1.164-0.439C137.053,90.42,136.902,90.047,136.902,89.621z M143.383,64.301h13.312
18
+ c3.469,0,6.459-1.24,8.971-3.719c2.512-2.479,3.769-5.447,3.769-8.907s-1.257-6.347-3.769-8.662
19
+ c-2.512-2.315-5.502-3.473-8.971-3.473h-13.312V64.301z"/>
20
+ <path fill="#333333" d="M191.047,62.58c0-8.186,2.906-15.16,8.722-20.919c5.815-5.761,12.938-8.641,21.369-8.641
21
+ c8.432,0,15.562,2.88,21.392,8.641c5.855,5.759,8.783,12.733,8.783,20.919c0,8.188-2.928,15.133-8.784,20.84
22
+ c-5.857,5.707-12.986,8.561-21.391,8.561c-8.402,0-15.526-2.854-21.368-8.561C193.954,77.713,191.047,70.768,191.047,62.58z
23
+ M203.975,45.78c-4.762,4.694-7.144,10.293-7.144,16.8c0,6.507,2.382,12.08,7.144,16.72c4.763,4.64,10.484,6.961,17.163,6.961
24
+ c6.68,0,12.4-2.321,17.163-6.961c4.763-4.641,7.173-10.213,7.228-16.72c0-6.506-2.409-12.106-7.228-16.8
25
+ c-4.818-4.693-10.538-7.04-17.163-7.04C214.459,38.74,208.737,41.086,203.975,45.78z"/>
26
+ <path fill="#333333" d="M272.721,89.621V35.38c0-0.426,0.149-0.787,0.451-1.08c0.301-0.293,0.684-0.453,1.148-0.48h3.282
27
+ c0.438,0,0.807,0.16,1.107,0.48s0.465,0.679,0.492,1.079V85.66h24.165c0.437,0,0.82,0.148,1.148,0.443
28
+ c0.328,0.296,0.479,0.672,0.451,1.127v2.379c0,0.402-0.15,0.765-0.451,1.088c-0.302,0.322-0.685,0.482-1.148,0.482H274.32
29
+ c-0.438,0-0.82-0.146-1.148-0.439C272.87,90.42,272.721,90.047,272.721,89.621z"/>
30
+ <path fill="#333333" d="M329.737,89.621V63.58l-20.267-27.36c-0.328-0.533-0.355-1.066-0.082-1.6c0.273-0.533,0.752-0.8,1.436-0.8
31
+ h3.938c0.492,0,0.944,0.254,1.354,0.76l17.006,22.84l16.964-22.84c0.382-0.48,0.834-0.733,1.354-0.76h3.938
32
+ c0.684,0,1.162,0.267,1.436,0.8c0.273,0.534,0.246,1.067-0.082,1.6L336.219,63.5v26.121c0,0.398-0.166,0.759-0.495,1.08
33
+ c-0.331,0.319-0.702,0.479-1.115,0.479h-3.261c-0.441,0-0.827-0.146-1.157-0.439C329.888,90.42,329.737,90.047,329.737,89.621z"/>
34
+ </g>
35
+ </g>
36
+ </svg>
@@ -0,0 +1,15 @@
1
+ define(function(){
2
+ return {
3
+ "clj" : "clojure",
4
+ "css" : "css",
5
+ "html" : "htmlmixed",
6
+ "haml" : "haml",
7
+ "js" : "javascript",
8
+ "md" : "markdown",
9
+ "rb" : "ruby",
10
+ "sass" : "sass",
11
+ "scss" : "sass",
12
+ "yml" : "yaml",
13
+ "yaml" : "yaml"
14
+ }
15
+ })
@@ -0,0 +1,300 @@
1
+
2
+ define([
3
+ 'backbone',
4
+ 'routes',
5
+ 'app/file-ext'
6
+ ],
7
+ function (Backbone, routes, extensions) {
8
+
9
+ return Backbone.View.extend({
10
+ el: 'body',
11
+ events: {
12
+ "keyup .CodeMirror": "contentChanged",
13
+ 'click .content': "toggleDrawer",
14
+ 'click .content .top-bar .open-drawer': "toggleDrawer",
15
+ 'click .content .top-bar .logout': "logout",
16
+ 'click .content .top-bar .git': "showGitCommander",
17
+ 'click .content .top-bar .cache': "clearCache",
18
+ 'click .content .top-bar .save': "saveFile",
19
+ 'click .drawer .top-bar .action.new': "createFile",
20
+ 'click .drawer .top-bar .action.delete': "deleteFile",
21
+ 'click .drawer .top-bar .action.move': "moveFile",
22
+ 'click .drawer .top-bar .action.refresh': "refreshFileTree",
23
+ 'click .file-tree li[data-type="dir"]': "expandDirectory",
24
+ 'click .file-tree li[data-type="file"]': "loadFile",
25
+ 'change .bottom-bar select.font-size': "changeFontSize",
26
+ 'change .bottom-bar select.mode': "changeMode",
27
+ 'click .bottom-bar span.file': "saveFile",
28
+ 'mode-received': "setMode"
29
+ },
30
+
31
+ render: function() {
32
+ this.$editor = this.$el.find('#editor');
33
+
34
+ if ( this.$editor.length > 0 ) {
35
+ this.cm = window.CodeMirror.fromTextArea( this.$editor.get(0), {
36
+ theme: 'solarized',
37
+ textWrapping: true,
38
+ lineWrapping: true,
39
+ readOnly: 'nocursor',
40
+ placeholder: "No content to display.",
41
+ indentUnit: 2,
42
+ extraKeys: { Tab: this.betterTab.bind(this) }
43
+ });
44
+
45
+ this.delegateEvents();
46
+ }
47
+ },
48
+
49
+ initialize: function() {
50
+ this.loadedFile;
51
+ this.altered = false;
52
+ this.bindSave();
53
+ },
54
+
55
+ changeFontSize: function(ev){
56
+ var oldSize = this.currentSize || 14;
57
+ this.currentSize = parseInt( $(ev.target).val() );
58
+
59
+ this.$el.find('.CodeMirror')
60
+ .addClass( 'size-' + this.currentSize )
61
+ .removeClass( 'size-' + oldSize );
62
+ this.cm.refresh();
63
+ },
64
+
65
+ changeMode: function(ev){
66
+ var self = this;
67
+ this.mode = $(ev.target).val();
68
+
69
+ if (this.mode === 'plain'){
70
+ this.cm.setOption( 'mode', null )
71
+ }
72
+ else if ( window.CodeMirror.modes[this.mode] ){
73
+ this.setMode();
74
+ } else{
75
+ this.loadMode(this.mode);
76
+ }
77
+ },
78
+
79
+ setMode: function(){
80
+ var loaded = false;
81
+ try{
82
+ this.$el.find('.CodeMirror').attr('data-mode', this.mode)
83
+ this.cm.setOption( 'mode', this.mode );
84
+ loaded = true;
85
+ } catch(e){ /* nothing to do */ }
86
+ },
87
+
88
+ loadMode: function(mode){
89
+ var self = this;
90
+ var route = [routes.codemirror.modes, mode, mode].join('/');
91
+
92
+ require( [route], function(){
93
+ var deps = window.CodeMirror.modes[mode].dependencies;
94
+ _.each( deps, function(m){ self.loadMode(m) });
95
+ self.$el.trigger('mode-received')
96
+ })
97
+
98
+ },
99
+
100
+ loadModeForFile: function(){
101
+ var ext = this.loadedFile.split('.').pop();
102
+ if (extensions[ext]){
103
+ var mode = extensions[ext];
104
+ this.$el.find('select.mode .cm-' + mode).attr('selected', 'selected')
105
+ this.mode = mode;
106
+ this.loadMode( mode )
107
+ }
108
+ },
109
+
110
+ contentChanged: function(o){
111
+ this.showUnsaved();
112
+ },
113
+
114
+ toggleDrawer: function(ev){
115
+ var action = (ev && $(ev.target).hasClass('open-drawer')) ? 'toggle' : 'remove';
116
+ this.$el.find('.content')[action+'Class']('out');
117
+ ev && ev.stopPropagation();
118
+ },
119
+
120
+ expandDirectory: function(ev){
121
+ var $target = $(ev.target);
122
+ this.handleDirExpansion( $target );
123
+
124
+ if ( !$target.data('fetched') ){
125
+ $.get( routes.file.files,
126
+ { id: $target.data('id'),
127
+ level: $target.data('level'),
128
+ template: true
129
+ }, function(data){
130
+ $target.after(
131
+ $('<div>', { class: 'dir-contents' }).html( data.items )
132
+ );
133
+ });
134
+ }
135
+
136
+ $target.data('fetched', 1)
137
+ },
138
+
139
+ handleDirExpansion: function($target){
140
+
141
+ if ( $target.hasClass('expanded') ){
142
+ $target.removeClass('expanded');
143
+ $target.next('.dir-contents').hide();
144
+ }
145
+ else {
146
+ $target.addClass('expanded');
147
+ $target.next('.dir-contents').show();
148
+ }
149
+
150
+ },
151
+
152
+ loadFile: function(ev){
153
+ var self = this;
154
+ var $target = $(ev.target);
155
+ var id = $target.attr('data-id');
156
+ var base = $target.attr('data-base');
157
+
158
+ if ( id === this.loadedFile )
159
+ return;
160
+
161
+ if ( this.unsaved ){
162
+ var c = confirm('Unsaved changes to ' + this.loadedFile + ' will be lost. Continue?')
163
+ if (!c)
164
+ return;
165
+ }
166
+
167
+ this.$el.find(".file-tree li[data-type='file']")
168
+ .removeClass('loaded')
169
+
170
+ $target.addClass('loaded');
171
+
172
+ $.get(routes.file.base, { id:id }, function(data){
173
+ self.cm.setValue( data.contents );
174
+ self.loadedFile = id;
175
+ self.cm.setOption( 'readOnly', false )
176
+ self.cm.refresh();
177
+ self.loadModeForFile();
178
+ });
179
+
180
+ this.hideUnsaved();
181
+ this.$el.find('.bottom-bar span.file').text( base )
182
+ },
183
+
184
+ showUnsaved: function(){
185
+ this.unsaved = true;
186
+ this.$el.find('.content .top-bar .save').addClass('unsaved');
187
+ this.$el.find('.bottom-bar span.file').addClass('unsaved');
188
+ },
189
+
190
+ hideUnsaved: function(){
191
+ this.unsaved = false;
192
+ this.$el.find('.content .top-bar .save').removeClass('unsaved');
193
+ this.$el.find('.bottom-bar span.file').removeClass('unsaved');
194
+ },
195
+
196
+ bindSave: function(){
197
+ var self = this;
198
+ $(window).on('keydown', function(event){
199
+ if ( (event.ctrlKey || event.metaKey) && (event.which == 83) ) {
200
+ event.preventDefault();
201
+ self.saveFile();
202
+ return false;
203
+ }
204
+ return true;
205
+ });
206
+ },
207
+
208
+ saveFile: function(){
209
+ var self = this;
210
+ if (!this.loadedFile) return;
211
+
212
+ $.post( routes.file.base , { content: this.cm.getValue(), id: this.loadedFile }, function(d){
213
+ setTimeout( function(){
214
+ self.hideUnsaved();
215
+ }, 100 );
216
+ });
217
+ },
218
+
219
+ createFile: function(){
220
+ var self = this;
221
+ var file = prompt('Path to new file (eg. /path/to/file.txt):')
222
+ if (!file || file.length < 1) return
223
+
224
+ $.post( routes.file.create, { path: file }, function(d){
225
+ alert(d.message);
226
+ self.refreshFileTree();
227
+ })
228
+ },
229
+
230
+ deleteFile: function(){
231
+ var self = this;
232
+ if (!this.loadedFile) return;
233
+
234
+ var c = confirm('Really delete ' + this.loadedFile + '?')
235
+ if (!c) return;
236
+
237
+ $.post( routes.file.dlt , { id: this.loadedFile }, function(d){
238
+ setTimeout( function(){
239
+ self.hideUnsaved();
240
+ self.removeLoadedFile();
241
+ self.cm.setValue('');
242
+ }, 100 );
243
+ });
244
+ },
245
+
246
+ moveFile: function(){
247
+ var self = this;
248
+ if (!this.loadedFile) return;
249
+
250
+ var path = prompt('Path to move ' + this.loadedFile + " to?")
251
+ if (!path || path.length < 1) return
252
+
253
+ $.post( routes.file.move, { id: this.loadedFile, moveto: path }, function(d){
254
+ self.refreshFileTree();
255
+ self.cm.setValue('');
256
+ });
257
+ },
258
+
259
+ removeLoadedFile: function(id){
260
+ this.$el.find( 'li.loaded').remove()
261
+ this.$el.find('.bottom-bar span.file').text( '...' )
262
+ },
263
+
264
+ refreshFileTree: function(){
265
+ var self = this;
266
+ this.loadedFile = false;
267
+ $.get(routes.file.tree, function(response){
268
+ self.$el.find('.file-tree').empty().html(response);
269
+ self.delegateEvents();
270
+ });
271
+ },
272
+
273
+ clearCache: function(){
274
+ $.get( routes.cache.clear, function(){
275
+ alert('Successfully cleared the cache.')
276
+ })
277
+ },
278
+
279
+ showGitCommander: function(){
280
+ this.$el.find('.git-commander-wrap').addClass('shown')
281
+ },
282
+
283
+ logout: function(){
284
+ window.location = routes.admin.logout;
285
+ },
286
+
287
+ betterTab: function(){
288
+ var cm = this.cm;
289
+
290
+ if (cm.somethingSelected()) {
291
+ cm.indentSelection("add");
292
+ } else {
293
+ cm.replaceSelection(cm.getOption("indentWithTabs")? "\t":
294
+ Array(cm.getOption("indentUnit") + 1).join(" "), "end", "+input");
295
+ }
296
+ }
297
+
298
+ });
299
+
300
+ });
@@ -0,0 +1,65 @@
1
+
2
+ define([
3
+ 'backbone',
4
+ 'routes'
5
+ ],
6
+ function (Backbone, routes) {
7
+
8
+ return Backbone.View.extend({
9
+ el: '.git-commander-wrap',
10
+ events: {
11
+ 'show' : 'show',
12
+ 'hide' : 'hide',
13
+ 'click .overlay' : 'hide',
14
+ 'keydown .input' : 'handleKeypress'
15
+ },
16
+ render: function() { },
17
+ initialize: function() {
18
+ },
19
+
20
+ show: function(){
21
+ this.$el.find('.input').focus();
22
+ this.$el.addClass('shown');
23
+ },
24
+
25
+ hide: function(){
26
+ this.$el.find('.output').val('');
27
+ this.$el.removeClass('shown');
28
+ },
29
+
30
+ submit: function(e){
31
+ var self = this;
32
+ var $target = $(e.target);
33
+
34
+ $.post( routes.git.submit, { cmd: $target.val() }, function(d){
35
+ var msg = d.message.length == 0 ? 'Not output.' : d.message
36
+ self.$el.find('.output').val('').val( msg )
37
+ });
38
+
39
+ $target.val('')
40
+ },
41
+
42
+ handleKeypress: function(e){
43
+
44
+ switch( e.which )
45
+ {
46
+
47
+ // ESCAPE
48
+ case 27:
49
+ this.hide();
50
+ break;
51
+
52
+ // ENTER
53
+ case 13:
54
+ this.submit(e);
55
+ break;
56
+
57
+ default:
58
+ /* do nothing */
59
+ }
60
+
61
+ }
62
+
63
+ });
64
+
65
+ });