lines-engine 0.6.2 → 0.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (572) hide show
  1. checksums.yaml +4 -4
  2. checksums.yaml.gz.sig +0 -0
  3. data.tar.gz.sig +0 -0
  4. data/.gitignore +1 -0
  5. data/CHANGELOG.md +10 -3
  6. data/Gemfile +1 -0
  7. data/Gemfile.lock +10 -6
  8. data/app/assets/images/favicon.ico +0 -0
  9. data/app/assets/images/gplus.svg +17 -0
  10. data/app/assets/javascripts/lines/admin/admin.js +299 -0
  11. data/app/assets/javascripts/lines/{autosize.min.js → admin/autosize.min.js} +0 -0
  12. data/app/assets/javascripts/lines/admin/navbar.js +51 -0
  13. data/app/assets/javascripts/lines/{pictures.js.coffee → admin/pictures.js.coffee} +2 -1
  14. data/app/assets/javascripts/lines/application.js +3 -0
  15. data/app/assets/javascripts/lines/articles.js.coffee +1 -0
  16. data/app/assets/javascripts/lines/viewer.js.coffee +3 -0
  17. data/app/assets/stylesheets/lines/admin/admin.scss +609 -0
  18. data/app/assets/stylesheets/lines/admin/variables_and_mixins.scss +36 -0
  19. data/app/assets/stylesheets/lines/application.scss +2 -13
  20. data/app/assets/stylesheets/lines/article.scss +165 -69
  21. data/app/assets/stylesheets/lines/fonts.scss +2 -2
  22. data/app/assets/stylesheets/lines/footer.scss +10 -56
  23. data/app/assets/stylesheets/lines/general.scss +18 -13
  24. data/app/assets/stylesheets/lines/media_queries.scss +5 -1
  25. data/app/assets/stylesheets/lines/messages.scss +28 -0
  26. data/app/assets/stylesheets/lines/navbar.scss +199 -122
  27. data/app/assets/stylesheets/lines/pagination.scss +8 -31
  28. data/app/assets/stylesheets/lines/pygments.css.erb +1 -2
  29. data/app/assets/stylesheets/lines/variables_and_mixins.scss +4 -0
  30. data/app/controllers/lines/admin/articles_controller.rb +8 -6
  31. data/app/controllers/lines/admin/authors_controller.rb +2 -2
  32. data/app/controllers/lines/admin/pictures_controller.rb +1 -1
  33. data/app/controllers/lines/application_controller.rb +1 -1
  34. data/app/controllers/lines/articles_controller.rb +3 -1
  35. data/app/controllers/lines/password_resets_controller.rb +4 -7
  36. data/app/controllers/lines/sessions_controller.rb +3 -3
  37. data/app/helpers/lines/application_helper.rb +25 -4
  38. data/app/mailers/lines/user_mailer.rb +1 -1
  39. data/app/models/lines/article.rb +13 -3
  40. data/app/models/lines/user.rb +2 -2
  41. data/app/uploaders/picture_uploader.rb +1 -1
  42. data/app/views/layouts/lines/_markdown_cheatsheet.html.erb +72 -0
  43. data/app/views/layouts/lines/admin.html.erb +15 -4
  44. data/app/views/layouts/lines/application.html.erb +16 -4
  45. data/app/views/layouts/lines/preview.html.erb +30 -2
  46. data/app/views/lines/admin/articles/_form.html.erb +50 -148
  47. data/app/views/lines/admin/articles/_picture_box.html.erb +37 -8
  48. data/app/views/lines/admin/articles/edit.html.erb +2 -12
  49. data/app/views/lines/admin/articles/index.html.erb +40 -28
  50. data/app/views/lines/admin/articles/new.html.erb +3 -10
  51. data/app/views/lines/admin/articles/show.html.erb +6 -4
  52. data/app/views/lines/admin/authors/_form.html.erb +12 -41
  53. data/app/views/lines/admin/authors/index.html.erb +18 -13
  54. data/app/views/lines/admin/authors/show.html.erb +19 -48
  55. data/app/views/lines/admin/pictures/_picture.html.erb +5 -4
  56. data/app/views/lines/admin/pictures/create.js.erb +1 -1
  57. data/app/views/lines/admin/pictures/destroy.js.erb +1 -1
  58. data/app/views/lines/articles/_article.html.erb +10 -6
  59. data/app/views/lines/articles/_article_collection.html.erb +1 -1
  60. data/app/views/lines/articles/_article_small.html.erb +9 -7
  61. data/app/views/lines/articles/index.atom.builder +10 -9
  62. data/app/views/lines/articles/index.html.erb +2 -2
  63. data/app/views/lines/articles/show.html.erb +5 -1
  64. data/app/views/lines/password_resets/edit.html.erb +25 -12
  65. data/app/views/lines/password_resets/new.html.erb +14 -8
  66. data/app/views/lines/sessions/new.html.erb +6 -10
  67. data/app/views/lines/shared/_flash.html.erb +1 -1
  68. data/app/views/lines/shared/_footer.html.erb +5 -28
  69. data/app/views/lines/user_mailer/password_reset.html.erb +6 -5
  70. data/app/views/lines/user_mailer/password_reset.text.erb +8 -4
  71. data/config/lines_config.yml +15 -14
  72. data/config/routes.rb +2 -2
  73. data/db/seeds.rb +5 -5
  74. data/lib/lines/engine.rb +1 -1
  75. data/lib/lines/version.rb +1 -1
  76. data/lines.gemspec +1 -1
  77. data/public/codemirror/.gitattributes +8 -0
  78. data/public/codemirror/.gitignore +8 -0
  79. data/public/codemirror/.npmignore +9 -0
  80. data/public/codemirror/.travis.yml +4 -0
  81. data/public/codemirror/AUTHORS +474 -0
  82. data/public/codemirror/CONTRIBUTING.md +88 -0
  83. data/public/codemirror/LICENSE +19 -0
  84. data/public/codemirror/README.md +27 -0
  85. data/public/codemirror/addon/comment/comment.js +183 -0
  86. data/public/codemirror/addon/comment/continuecomment.js +85 -0
  87. data/public/codemirror/addon/dialog/dialog.css +32 -0
  88. data/public/codemirror/addon/dialog/dialog.js +157 -0
  89. data/public/codemirror/addon/display/fullscreen.css +6 -0
  90. data/public/codemirror/addon/display/fullscreen.js +41 -0
  91. data/public/codemirror/addon/display/panel.js +112 -0
  92. data/public/codemirror/addon/display/placeholder.js +58 -0
  93. data/public/codemirror/addon/display/rulers.js +63 -0
  94. data/public/codemirror/addon/edit/closebrackets.js +185 -0
  95. data/public/codemirror/addon/edit/closetag.js +166 -0
  96. data/public/codemirror/addon/edit/continuelist.js +51 -0
  97. data/public/codemirror/addon/edit/matchbrackets.js +120 -0
  98. data/public/codemirror/addon/edit/matchtags.js +66 -0
  99. data/public/codemirror/addon/edit/trailingspace.js +27 -0
  100. data/public/codemirror/addon/fold/brace-fold.js +105 -0
  101. data/public/codemirror/addon/fold/comment-fold.js +57 -0
  102. data/public/codemirror/addon/fold/foldcode.js +149 -0
  103. data/public/codemirror/addon/fold/foldgutter.css +20 -0
  104. data/public/codemirror/addon/fold/foldgutter.js +146 -0
  105. data/public/codemirror/addon/fold/indent-fold.js +44 -0
  106. data/public/codemirror/addon/fold/markdown-fold.js +49 -0
  107. data/public/codemirror/addon/fold/xml-fold.js +182 -0
  108. data/public/codemirror/addon/hint/anyword-hint.js +41 -0
  109. data/public/codemirror/addon/hint/css-hint.js +60 -0
  110. data/public/codemirror/addon/hint/html-hint.js +348 -0
  111. data/public/codemirror/addon/hint/javascript-hint.js +146 -0
  112. data/public/codemirror/addon/hint/show-hint.css +38 -0
  113. data/public/codemirror/addon/hint/show-hint.js +386 -0
  114. data/public/codemirror/addon/hint/sql-hint.js +254 -0
  115. data/public/codemirror/addon/hint/xml-hint.js +110 -0
  116. data/public/codemirror/addon/lint/coffeescript-lint.js +41 -0
  117. data/public/codemirror/addon/lint/css-lint.js +35 -0
  118. data/public/codemirror/addon/lint/javascript-lint.js +136 -0
  119. data/public/codemirror/addon/lint/json-lint.js +31 -0
  120. data/public/codemirror/addon/lint/lint.css +73 -0
  121. data/public/codemirror/addon/lint/lint.js +207 -0
  122. data/public/codemirror/addon/lint/yaml-lint.js +28 -0
  123. data/public/codemirror/addon/merge/merge.css +112 -0
  124. data/public/codemirror/addon/merge/merge.js +775 -0
  125. data/public/codemirror/addon/mode/loadmode.js +64 -0
  126. data/public/codemirror/addon/mode/multiplex.js +123 -0
  127. data/public/codemirror/addon/mode/multiplex_test.js +33 -0
  128. data/public/codemirror/addon/mode/overlay.js +85 -0
  129. data/public/codemirror/addon/mode/simple.js +213 -0
  130. data/public/codemirror/addon/runmode/colorize.js +40 -0
  131. data/public/codemirror/addon/runmode/runmode-standalone.js +157 -0
  132. data/public/codemirror/addon/runmode/runmode.js +72 -0
  133. data/public/codemirror/addon/runmode/runmode.node.js +178 -0
  134. data/public/codemirror/addon/scroll/annotatescrollbar.js +115 -0
  135. data/public/codemirror/addon/scroll/scrollpastend.js +46 -0
  136. data/public/codemirror/addon/scroll/simplescrollbars.css +66 -0
  137. data/public/codemirror/addon/scroll/simplescrollbars.js +147 -0
  138. data/public/codemirror/addon/search/match-highlighter.js +128 -0
  139. data/public/codemirror/addon/search/matchesonscrollbar.css +8 -0
  140. data/public/codemirror/addon/search/matchesonscrollbar.js +97 -0
  141. data/public/codemirror/addon/search/search.js +202 -0
  142. data/public/codemirror/addon/search/searchcursor.js +189 -0
  143. data/public/codemirror/addon/selection/active-line.js +71 -0
  144. data/public/codemirror/addon/selection/mark-selection.js +118 -0
  145. data/public/codemirror/addon/selection/selection-pointer.js +98 -0
  146. data/public/codemirror/addon/tern/tern.css +87 -0
  147. data/public/codemirror/addon/tern/tern.js +699 -0
  148. data/public/codemirror/addon/tern/worker.js +44 -0
  149. data/public/codemirror/addon/wrap/hardwrap.js +139 -0
  150. data/public/codemirror/bin/authors.sh +6 -0
  151. data/public/codemirror/bin/compress +92 -0
  152. data/public/codemirror/bin/lint +3 -0
  153. data/public/codemirror/bin/release +45 -0
  154. data/public/codemirror/bin/source-highlight +51 -0
  155. data/public/codemirror/bower.json +17 -0
  156. data/public/codemirror/demo/activeline.html +78 -0
  157. data/public/codemirror/demo/anywordhint.html +79 -0
  158. data/public/codemirror/demo/bidi.html +74 -0
  159. data/public/codemirror/demo/btree.html +85 -0
  160. data/public/codemirror/demo/buffers.html +109 -0
  161. data/public/codemirror/demo/changemode.html +58 -0
  162. data/public/codemirror/demo/closebrackets.html +52 -0
  163. data/public/codemirror/demo/closetag.html +41 -0
  164. data/public/codemirror/demo/complete.html +79 -0
  165. data/public/codemirror/demo/emacs.html +75 -0
  166. data/public/codemirror/demo/folding.html +95 -0
  167. data/public/codemirror/demo/fullscreen.html +83 -0
  168. data/public/codemirror/demo/hardwrap.html +72 -0
  169. data/public/codemirror/demo/html5complete.html +56 -0
  170. data/public/codemirror/demo/indentwrap.html +59 -0
  171. data/public/codemirror/demo/lint.html +171 -0
  172. data/public/codemirror/demo/loadmode.html +72 -0
  173. data/public/codemirror/demo/marker.html +52 -0
  174. data/public/codemirror/demo/markselection.html +52 -0
  175. data/public/codemirror/demo/matchhighlighter.html +47 -0
  176. data/public/codemirror/demo/matchtags.html +48 -0
  177. data/public/codemirror/demo/merge.html +122 -0
  178. data/public/codemirror/demo/multiplex.html +75 -0
  179. data/public/codemirror/demo/mustache.html +69 -0
  180. data/public/codemirror/demo/panel.html +136 -0
  181. data/public/codemirror/demo/placeholder.html +45 -0
  182. data/public/codemirror/demo/preview.html +87 -0
  183. data/public/codemirror/demo/requirejs.html +70 -0
  184. data/public/codemirror/demo/resize.html +51 -0
  185. data/public/codemirror/demo/rulers.html +49 -0
  186. data/public/codemirror/demo/runmode.html +62 -0
  187. data/public/codemirror/demo/search.html +95 -0
  188. data/public/codemirror/demo/simplemode.html +186 -0
  189. data/public/codemirror/demo/simplescrollbars.html +82 -0
  190. data/public/codemirror/demo/spanaffectswrapping_shim.html +85 -0
  191. data/public/codemirror/demo/sublime.html +76 -0
  192. data/public/codemirror/demo/tern.html +133 -0
  193. data/public/codemirror/demo/theme.html +152 -0
  194. data/public/codemirror/demo/trailingspace.html +48 -0
  195. data/public/codemirror/demo/variableheight.html +67 -0
  196. data/public/codemirror/demo/vim.html +104 -0
  197. data/public/codemirror/demo/visibletabs.html +62 -0
  198. data/public/codemirror/demo/widget.html +85 -0
  199. data/public/codemirror/demo/xmlcomplete.html +119 -0
  200. data/public/codemirror/doc/activebookmark.js +57 -0
  201. data/public/codemirror/doc/compress.html +329 -0
  202. data/public/codemirror/doc/docs.css +271 -0
  203. data/public/codemirror/doc/internals.html +503 -0
  204. data/public/codemirror/doc/logo.png +0 -0
  205. data/public/codemirror/doc/logo.svg +181 -0
  206. data/public/codemirror/doc/manual.html +3327 -0
  207. data/public/codemirror/doc/realworld.html +174 -0
  208. data/public/codemirror/doc/releases.html +1116 -0
  209. data/public/codemirror/doc/reporting.html +61 -0
  210. data/public/codemirror/doc/upgrade_v2.2.html +96 -0
  211. data/public/codemirror/doc/upgrade_v3.html +230 -0
  212. data/public/codemirror/doc/upgrade_v4.html +144 -0
  213. data/public/codemirror/doc/yinyang.png +0 -0
  214. data/public/codemirror/index.html +199 -0
  215. data/public/codemirror/keymap/emacs.js +412 -0
  216. data/public/codemirror/keymap/sublime.js +555 -0
  217. data/public/codemirror/keymap/vim.js +5060 -0
  218. data/public/codemirror/lib/codemirror.css +332 -0
  219. data/public/codemirror/lib/codemirror.js +8788 -0
  220. data/public/codemirror/mode/apl/apl.js +174 -0
  221. data/public/codemirror/mode/apl/index.html +72 -0
  222. data/public/codemirror/mode/asciiarmor/asciiarmor.js +73 -0
  223. data/public/codemirror/mode/asciiarmor/index.html +46 -0
  224. data/public/codemirror/mode/asn.1/asn.1.js +204 -0
  225. data/public/codemirror/mode/asn.1/index.html +78 -0
  226. data/public/codemirror/mode/asterisk/asterisk.js +196 -0
  227. data/public/codemirror/mode/asterisk/index.html +154 -0
  228. data/public/codemirror/mode/brainfuck/brainfuck.js +85 -0
  229. data/public/codemirror/mode/brainfuck/index.html +85 -0
  230. data/public/codemirror/mode/clike/clike.js +604 -0
  231. data/public/codemirror/mode/clike/index.html +252 -0
  232. data/public/codemirror/mode/clike/scala.html +767 -0
  233. data/public/codemirror/mode/clike/test.js +33 -0
  234. data/public/codemirror/mode/clojure/clojure.js +244 -0
  235. data/public/codemirror/mode/clojure/index.html +88 -0
  236. data/public/codemirror/mode/cmake/cmake.js +97 -0
  237. data/public/codemirror/mode/cmake/index.html +129 -0
  238. data/public/codemirror/mode/cobol/cobol.js +255 -0
  239. data/public/codemirror/mode/cobol/index.html +210 -0
  240. data/public/codemirror/mode/coffeescript/coffeescript.js +369 -0
  241. data/public/codemirror/mode/coffeescript/index.html +740 -0
  242. data/public/codemirror/mode/commonlisp/commonlisp.js +123 -0
  243. data/public/codemirror/mode/commonlisp/index.html +177 -0
  244. data/public/codemirror/mode/css/css.js +756 -0
  245. data/public/codemirror/mode/css/index.html +75 -0
  246. data/public/codemirror/mode/css/less.html +152 -0
  247. data/public/codemirror/mode/css/less_test.js +54 -0
  248. data/public/codemirror/mode/css/scss.html +157 -0
  249. data/public/codemirror/mode/css/scss_test.js +110 -0
  250. data/public/codemirror/mode/css/test.js +188 -0
  251. data/public/codemirror/mode/cypher/cypher.js +146 -0
  252. data/public/codemirror/mode/cypher/index.html +63 -0
  253. data/public/codemirror/mode/d/d.js +218 -0
  254. data/public/codemirror/mode/d/index.html +273 -0
  255. data/public/codemirror/mode/dart/dart.js +50 -0
  256. data/public/codemirror/mode/dart/index.html +71 -0
  257. data/public/codemirror/mode/diff/diff.js +47 -0
  258. data/public/codemirror/mode/diff/index.html +117 -0
  259. data/public/codemirror/mode/django/django.js +350 -0
  260. data/public/codemirror/mode/django/index.html +73 -0
  261. data/public/codemirror/mode/dockerfile/dockerfile.js +76 -0
  262. data/public/codemirror/mode/dockerfile/index.html +73 -0
  263. data/public/codemirror/mode/dtd/dtd.js +142 -0
  264. data/public/codemirror/mode/dtd/index.html +89 -0
  265. data/public/codemirror/mode/dylan/dylan.js +291 -0
  266. data/public/codemirror/mode/dylan/index.html +407 -0
  267. data/public/codemirror/mode/ebnf/ebnf.js +195 -0
  268. data/public/codemirror/mode/ebnf/index.html +102 -0
  269. data/public/codemirror/mode/ecl/ecl.js +206 -0
  270. data/public/codemirror/mode/ecl/index.html +52 -0
  271. data/public/codemirror/mode/eiffel/eiffel.js +160 -0
  272. data/public/codemirror/mode/eiffel/index.html +429 -0
  273. data/public/codemirror/mode/elm/elm.js +205 -0
  274. data/public/codemirror/mode/elm/index.html +61 -0
  275. data/public/codemirror/mode/erlang/erlang.js +618 -0
  276. data/public/codemirror/mode/erlang/index.html +76 -0
  277. data/public/codemirror/mode/factor/factor.js +83 -0
  278. data/public/codemirror/mode/factor/index.html +77 -0
  279. data/public/codemirror/mode/forth/forth.js +180 -0
  280. data/public/codemirror/mode/forth/index.html +75 -0
  281. data/public/codemirror/mode/fortran/fortran.js +188 -0
  282. data/public/codemirror/mode/fortran/index.html +81 -0
  283. data/public/codemirror/mode/gas/gas.js +345 -0
  284. data/public/codemirror/mode/gas/index.html +68 -0
  285. data/public/codemirror/mode/gfm/gfm.js +124 -0
  286. data/public/codemirror/mode/gfm/index.html +93 -0
  287. data/public/codemirror/mode/gfm/test.js +213 -0
  288. data/public/codemirror/mode/gherkin/gherkin.js +178 -0
  289. data/public/codemirror/mode/gherkin/index.html +48 -0
  290. data/public/codemirror/mode/go/go.js +185 -0
  291. data/public/codemirror/mode/go/index.html +85 -0
  292. data/public/codemirror/mode/groovy/groovy.js +230 -0
  293. data/public/codemirror/mode/groovy/index.html +84 -0
  294. data/public/codemirror/mode/haml/haml.js +159 -0
  295. data/public/codemirror/mode/haml/index.html +79 -0
  296. data/public/codemirror/mode/haml/test.js +97 -0
  297. data/public/codemirror/mode/handlebars/handlebars.js +53 -0
  298. data/public/codemirror/mode/handlebars/index.html +83 -0
  299. data/public/codemirror/mode/haskell/haskell.js +267 -0
  300. data/public/codemirror/mode/haskell/index.html +73 -0
  301. data/public/codemirror/mode/haxe/haxe.js +518 -0
  302. data/public/codemirror/mode/haxe/index.html +124 -0
  303. data/public/codemirror/mode/htmlembedded/htmlembedded.js +28 -0
  304. data/public/codemirror/mode/htmlembedded/index.html +59 -0
  305. data/public/codemirror/mode/htmlmixed/htmlmixed.js +121 -0
  306. data/public/codemirror/mode/htmlmixed/index.html +89 -0
  307. data/public/codemirror/mode/http/http.js +113 -0
  308. data/public/codemirror/mode/http/index.html +45 -0
  309. data/public/codemirror/mode/idl/idl.js +290 -0
  310. data/public/codemirror/mode/idl/index.html +64 -0
  311. data/public/codemirror/mode/index.html +149 -0
  312. data/public/codemirror/mode/jade/index.html +70 -0
  313. data/public/codemirror/mode/jade/jade.js +590 -0
  314. data/public/codemirror/mode/javascript/index.html +114 -0
  315. data/public/codemirror/mode/javascript/javascript.js +704 -0
  316. data/public/codemirror/mode/javascript/json-ld.html +72 -0
  317. data/public/codemirror/mode/javascript/test.js +205 -0
  318. data/public/codemirror/mode/javascript/typescript.html +61 -0
  319. data/public/codemirror/mode/jinja2/index.html +54 -0
  320. data/public/codemirror/mode/jinja2/jinja2.js +142 -0
  321. data/public/codemirror/mode/julia/index.html +195 -0
  322. data/public/codemirror/mode/julia/julia.js +299 -0
  323. data/public/codemirror/mode/kotlin/index.html +89 -0
  324. data/public/codemirror/mode/kotlin/kotlin.js +284 -0
  325. data/public/codemirror/mode/livescript/index.html +459 -0
  326. data/public/codemirror/mode/livescript/livescript.js +280 -0
  327. data/public/codemirror/mode/lua/index.html +85 -0
  328. data/public/codemirror/mode/lua/lua.js +159 -0
  329. data/public/codemirror/mode/markdown/index.html +359 -0
  330. data/public/codemirror/mode/markdown/markdown.js +781 -0
  331. data/public/codemirror/mode/markdown/test.js +792 -0
  332. data/public/codemirror/mode/mathematica/index.html +72 -0
  333. data/public/codemirror/mode/mathematica/mathematica.js +175 -0
  334. data/public/codemirror/mode/meta.js +190 -0
  335. data/public/codemirror/mode/mirc/index.html +160 -0
  336. data/public/codemirror/mode/mirc/mirc.js +193 -0
  337. data/public/codemirror/mode/mllike/index.html +179 -0
  338. data/public/codemirror/mode/mllike/mllike.js +205 -0
  339. data/public/codemirror/mode/modelica/index.html +67 -0
  340. data/public/codemirror/mode/modelica/modelica.js +245 -0
  341. data/public/codemirror/mode/mumps/index.html +85 -0
  342. data/public/codemirror/mode/mumps/mumps.js +148 -0
  343. data/public/codemirror/mode/nginx/index.html +181 -0
  344. data/public/codemirror/mode/nginx/nginx.js +178 -0
  345. data/public/codemirror/mode/ntriples/index.html +45 -0
  346. data/public/codemirror/mode/ntriples/ntriples.js +186 -0
  347. data/public/codemirror/mode/octave/index.html +83 -0
  348. data/public/codemirror/mode/octave/octave.js +135 -0
  349. data/public/codemirror/mode/pascal/index.html +61 -0
  350. data/public/codemirror/mode/pascal/pascal.js +109 -0
  351. data/public/codemirror/mode/pegjs/index.html +66 -0
  352. data/public/codemirror/mode/pegjs/pegjs.js +114 -0
  353. data/public/codemirror/mode/perl/index.html +75 -0
  354. data/public/codemirror/mode/perl/perl.js +837 -0
  355. data/public/codemirror/mode/php/index.html +64 -0
  356. data/public/codemirror/mode/php/php.js +230 -0
  357. data/public/codemirror/mode/php/test.js +154 -0
  358. data/public/codemirror/mode/pig/index.html +55 -0
  359. data/public/codemirror/mode/pig/pig.js +178 -0
  360. data/public/codemirror/mode/properties/index.html +53 -0
  361. data/public/codemirror/mode/properties/properties.js +78 -0
  362. data/public/codemirror/mode/puppet/index.html +121 -0
  363. data/public/codemirror/mode/puppet/puppet.js +220 -0
  364. data/public/codemirror/mode/python/index.html +198 -0
  365. data/public/codemirror/mode/python/python.js +358 -0
  366. data/public/codemirror/mode/q/index.html +144 -0
  367. data/public/codemirror/mode/q/q.js +139 -0
  368. data/public/codemirror/mode/r/index.html +85 -0
  369. data/public/codemirror/mode/r/r.js +162 -0
  370. data/public/codemirror/mode/rpm/changes/index.html +66 -0
  371. data/public/codemirror/mode/rpm/index.html +149 -0
  372. data/public/codemirror/mode/rpm/rpm.js +101 -0
  373. data/public/codemirror/mode/rst/index.html +535 -0
  374. data/public/codemirror/mode/rst/rst.js +557 -0
  375. data/public/codemirror/mode/ruby/index.html +183 -0
  376. data/public/codemirror/mode/ruby/ruby.js +285 -0
  377. data/public/codemirror/mode/ruby/test.js +14 -0
  378. data/public/codemirror/mode/rust/index.html +60 -0
  379. data/public/codemirror/mode/rust/rust.js +451 -0
  380. data/public/codemirror/mode/sass/index.html +66 -0
  381. data/public/codemirror/mode/sass/sass.js +414 -0
  382. data/public/codemirror/mode/scheme/index.html +77 -0
  383. data/public/codemirror/mode/scheme/scheme.js +249 -0
  384. data/public/codemirror/mode/shell/index.html +66 -0
  385. data/public/codemirror/mode/shell/shell.js +139 -0
  386. data/public/codemirror/mode/shell/test.js +58 -0
  387. data/public/codemirror/mode/sieve/index.html +93 -0
  388. data/public/codemirror/mode/sieve/sieve.js +193 -0
  389. data/public/codemirror/mode/slim/index.html +96 -0
  390. data/public/codemirror/mode/slim/slim.js +575 -0
  391. data/public/codemirror/mode/slim/test.js +96 -0
  392. data/public/codemirror/mode/smalltalk/index.html +68 -0
  393. data/public/codemirror/mode/smalltalk/smalltalk.js +168 -0
  394. data/public/codemirror/mode/smarty/index.html +138 -0
  395. data/public/codemirror/mode/smarty/smarty.js +225 -0
  396. data/public/codemirror/mode/solr/index.html +57 -0
  397. data/public/codemirror/mode/solr/solr.js +104 -0
  398. data/public/codemirror/mode/soy/index.html +68 -0
  399. data/public/codemirror/mode/soy/soy.js +198 -0
  400. data/public/codemirror/mode/sparql/index.html +61 -0
  401. data/public/codemirror/mode/sparql/sparql.js +174 -0
  402. data/public/codemirror/mode/spreadsheet/index.html +42 -0
  403. data/public/codemirror/mode/spreadsheet/spreadsheet.js +109 -0
  404. data/public/codemirror/mode/sql/index.html +84 -0
  405. data/public/codemirror/mode/sql/sql.js +391 -0
  406. data/public/codemirror/mode/stex/index.html +110 -0
  407. data/public/codemirror/mode/stex/stex.js +251 -0
  408. data/public/codemirror/mode/stex/test.js +123 -0
  409. data/public/codemirror/mode/stylus/index.html +106 -0
  410. data/public/codemirror/mode/stylus/stylus.js +768 -0
  411. data/public/codemirror/mode/swift/index.html +88 -0
  412. data/public/codemirror/mode/swift/swift.js +203 -0
  413. data/public/codemirror/mode/tcl/index.html +142 -0
  414. data/public/codemirror/mode/tcl/tcl.js +147 -0
  415. data/public/codemirror/mode/textile/index.html +191 -0
  416. data/public/codemirror/mode/textile/test.js +417 -0
  417. data/public/codemirror/mode/textile/textile.js +469 -0
  418. data/public/codemirror/mode/tiddlywiki/index.html +154 -0
  419. data/public/codemirror/mode/tiddlywiki/tiddlywiki.css +14 -0
  420. data/public/codemirror/mode/tiddlywiki/tiddlywiki.js +358 -0
  421. data/public/codemirror/mode/tiki/index.html +95 -0
  422. data/public/codemirror/mode/tiki/tiki.css +26 -0
  423. data/public/codemirror/mode/tiki/tiki.js +312 -0
  424. data/public/codemirror/mode/toml/index.html +73 -0
  425. data/public/codemirror/mode/toml/toml.js +88 -0
  426. data/public/codemirror/mode/tornado/index.html +63 -0
  427. data/public/codemirror/mode/tornado/tornado.js +68 -0
  428. data/public/codemirror/mode/troff/index.html +146 -0
  429. data/public/codemirror/mode/troff/troff.js +82 -0
  430. data/public/codemirror/mode/ttcn-cfg/index.html +115 -0
  431. data/public/codemirror/mode/ttcn-cfg/ttcn-cfg.js +214 -0
  432. data/public/codemirror/mode/ttcn/index.html +118 -0
  433. data/public/codemirror/mode/ttcn/ttcn.js +283 -0
  434. data/public/codemirror/mode/turtle/index.html +50 -0
  435. data/public/codemirror/mode/turtle/turtle.js +162 -0
  436. data/public/codemirror/mode/twig/index.html +45 -0
  437. data/public/codemirror/mode/twig/twig.js +132 -0
  438. data/public/codemirror/mode/vb/index.html +102 -0
  439. data/public/codemirror/mode/vb/vb.js +276 -0
  440. data/public/codemirror/mode/vbscript/index.html +55 -0
  441. data/public/codemirror/mode/vbscript/vbscript.js +350 -0
  442. data/public/codemirror/mode/velocity/index.html +118 -0
  443. data/public/codemirror/mode/velocity/velocity.js +201 -0
  444. data/public/codemirror/mode/verilog/index.html +120 -0
  445. data/public/codemirror/mode/verilog/test.js +273 -0
  446. data/public/codemirror/mode/verilog/verilog.js +537 -0
  447. data/public/codemirror/mode/vhdl/index.html +95 -0
  448. data/public/codemirror/mode/vhdl/vhdl.js +189 -0
  449. data/public/codemirror/mode/xml/index.html +57 -0
  450. data/public/codemirror/mode/xml/test.js +51 -0
  451. data/public/codemirror/mode/xml/xml.js +385 -0
  452. data/public/codemirror/mode/xquery/index.html +210 -0
  453. data/public/codemirror/mode/xquery/test.js +67 -0
  454. data/public/codemirror/mode/xquery/xquery.js +437 -0
  455. data/public/codemirror/mode/yaml/index.html +80 -0
  456. data/public/codemirror/mode/yaml/yaml.js +117 -0
  457. data/public/codemirror/mode/z80/index.html +53 -0
  458. data/public/codemirror/mode/z80/z80.js +116 -0
  459. data/public/codemirror/package.json +20 -0
  460. data/public/codemirror/test/comment_test.js +100 -0
  461. data/public/codemirror/test/doc_test.js +371 -0
  462. data/public/codemirror/test/driver.js +138 -0
  463. data/public/codemirror/test/emacs_test.js +147 -0
  464. data/public/codemirror/test/index.html +241 -0
  465. data/public/codemirror/test/lint.js +11 -0
  466. data/public/codemirror/test/mode_test.css +23 -0
  467. data/public/codemirror/test/mode_test.js +192 -0
  468. data/public/codemirror/test/multi_test.js +285 -0
  469. data/public/codemirror/test/phantom_driver.js +31 -0
  470. data/public/codemirror/test/run.js +31 -0
  471. data/public/codemirror/test/scroll_test.js +115 -0
  472. data/public/codemirror/test/search_test.js +62 -0
  473. data/public/codemirror/test/sql-hint-test.js +189 -0
  474. data/public/codemirror/test/sublime_test.js +303 -0
  475. data/public/codemirror/test/test.js +2142 -0
  476. data/public/codemirror/test/vim_test.js +3955 -0
  477. data/public/codemirror/theme/3024-day.css +41 -0
  478. data/public/codemirror/theme/3024-night.css +39 -0
  479. data/public/codemirror/theme/ambiance-mobile.css +5 -0
  480. data/public/codemirror/theme/ambiance.css +76 -0
  481. data/public/codemirror/theme/base16-dark.css +38 -0
  482. data/public/codemirror/theme/base16-light.css +38 -0
  483. data/public/codemirror/theme/blackboard.css +32 -0
  484. data/public/codemirror/theme/cobalt.css +25 -0
  485. data/public/codemirror/theme/colorforth.css +33 -0
  486. data/public/codemirror/theme/dracula.css +87 -0
  487. data/public/codemirror/theme/eclipse.css +23 -0
  488. data/public/codemirror/theme/elegant.css +13 -0
  489. data/public/codemirror/theme/erlang-dark.css +34 -0
  490. data/public/codemirror/theme/icecoder.css +42 -0
  491. data/public/codemirror/theme/lesser-dark.css +47 -0
  492. data/public/codemirror/theme/lines.css +109 -0
  493. data/public/codemirror/theme/liquibyte.css +95 -0
  494. data/public/codemirror/theme/material.css +105 -0
  495. data/public/codemirror/theme/mbo.css +37 -0
  496. data/public/codemirror/theme/mdn-like.css +46 -0
  497. data/public/codemirror/theme/midnight.css +47 -0
  498. data/public/codemirror/theme/monokai.css +35 -0
  499. data/public/codemirror/theme/neat.css +12 -0
  500. data/public/codemirror/theme/neo.css +43 -0
  501. data/public/codemirror/theme/night.css +28 -0
  502. data/public/codemirror/theme/paraiso-dark.css +38 -0
  503. data/public/codemirror/theme/paraiso-light.css +38 -0
  504. data/public/codemirror/theme/pastel-on-dark.css +53 -0
  505. data/public/codemirror/theme/rubyblue.css +25 -0
  506. data/public/codemirror/theme/seti.css +88 -0
  507. data/public/codemirror/theme/solarized.css +165 -0
  508. data/public/codemirror/theme/the-matrix.css +30 -0
  509. data/public/codemirror/theme/tomorrow-night-bright.css +35 -0
  510. data/public/codemirror/theme/tomorrow-night-eighties.css +38 -0
  511. data/public/codemirror/theme/ttcn.css +65 -0
  512. data/public/codemirror/theme/twilight.css +32 -0
  513. data/public/codemirror/theme/vibrant-ink.css +34 -0
  514. data/public/codemirror/theme/xq-dark.css +53 -0
  515. data/public/codemirror/theme/xq-light.css +43 -0
  516. data/public/codemirror/theme/yeti.css +86 -0
  517. data/public/codemirror/theme/zenburn.css +37 -0
  518. data/public/fira-mono/FiraMono-Bold.eot +0 -0
  519. data/public/fira-mono/FiraMono-Bold.otf +0 -0
  520. data/public/fira-mono/FiraMono-Bold.ttf +0 -0
  521. data/public/fira-mono/FiraMono-Bold.woff +0 -0
  522. data/public/fira-mono/FiraMono-Medium.eot +0 -0
  523. data/public/fira-mono/FiraMono-Medium.otf +0 -0
  524. data/public/fira-mono/FiraMono-Medium.ttf +0 -0
  525. data/public/fira-mono/FiraMono-Medium.woff +0 -0
  526. data/public/fira-mono/FiraMono-Regular.eot +0 -0
  527. data/public/fira-mono/FiraMono-Regular.otf +0 -0
  528. data/public/fira-mono/FiraMono-Regular.ttf +0 -0
  529. data/public/fira-mono/FiraMono-Regular.woff +0 -0
  530. data/public/fira-mono/fira-mono.css +32 -0
  531. data/public/heroes/lines_default_01.png +0 -0
  532. data/public/heroes/lines_default_02.png +0 -0
  533. data/public/heroes/lines_default_03.png +0 -0
  534. data/public/iconfont/iconfont.css +48 -0
  535. data/public/iconfont/iconfont.eot +0 -0
  536. data/public/iconfont/iconfont.svg +18 -0
  537. data/public/iconfont/iconfont.ttf +0 -0
  538. data/public/iconfont/iconfont.woff +0 -0
  539. data/spec/dummy/config/environments/test.rb +3 -1
  540. data/spec/dummy/db/migrate/20140505122014_base_migration.rb +84 -0
  541. data/spec/dummy/db/migrate/20140702160602_acts_as_taggable_on_migration.acts_as_taggable_on_engine.rb +31 -0
  542. data/spec/dummy/db/migrate/20140702160603_add_missing_unique_indices.acts_as_taggable_on_engine.rb +20 -0
  543. data/spec/dummy/db/migrate/20140702160604_add_taggings_counter_cache_to_tags.acts_as_taggable_on_engine.rb +15 -0
  544. data/spec/dummy/db/migrate/20141027143656_add_teaser_to_article.rb +5 -0
  545. data/spec/dummy/db/migrate/20150421093311_add_reset_password_fields_to_users.rb +6 -0
  546. data/spec/dummy/db/schema.rb +50 -50
  547. data/spec/dummy/db/seeds.rb +5 -5
  548. data/spec/factories/users.rb +1 -1
  549. data/spec/features/article_spec.rb +4 -4
  550. data/spec/features/password_reset_spec.rb +17 -17
  551. data/spec/features/user_logs_in_spec.rb +6 -8
  552. data/spec/mailers/lines/user_mailer_spec.rb +1 -1
  553. data/spec/models/article_spec.rb +6 -6
  554. data/spec/support/auth_macros.rb +2 -2
  555. metadata +492 -26
  556. metadata.gz.sig +0 -0
  557. data/app/assets/images/ic_gplus.png +0 -0
  558. data/app/assets/images/ic_gplus_hover.png +0 -0
  559. data/app/assets/images/logo.png +0 -0
  560. data/app/assets/images/logo_opoloo.png +0 -0
  561. data/app/assets/images/signet.png +0 -0
  562. data/app/assets/javascripts/lines/admin.js +0 -201
  563. data/app/assets/stylesheets/lines/admin.scss +0 -970
  564. data/app/views/layouts/lines/_messages.html.erb +0 -8
  565. data/app/views/lines/admin/articles/_formatting_guide.html.erb +0 -89
  566. data/public/heroes/001.jpg +0 -0
  567. data/public/heroes/001_dark.jpg +0 -0
  568. data/public/heroes/002.jpg +0 -0
  569. data/public/heroes/002_dark.jpg +0 -0
  570. data/public/heroes/003.jpg +0 -0
  571. data/public/heroes/003_dark.jpg +0 -0
  572. data/spec/dummy/config/lines_config.yml +0 -58
@@ -0,0 +1,61 @@
1
+ <!doctype html>
2
+
3
+ <title>CodeMirror: Reporting Bugs</title>
4
+ <meta charset="utf-8"/>
5
+ <link rel=stylesheet href="docs.css">
6
+
7
+ <div id=nav>
8
+ <a href="http://codemirror.net"><h1>CodeMirror</h1><img id=logo src="logo.png"></a>
9
+
10
+ <ul>
11
+ <li><a href="../index.html">Home</a>
12
+ <li><a href="manual.html">Manual</a>
13
+ <li><a href="https://github.com/codemirror/codemirror">Code</a>
14
+ </ul>
15
+ <ul>
16
+ <li><a class=active href="#">Reporting bugs</a>
17
+ </ul>
18
+ </div>
19
+
20
+ <article>
21
+
22
+ <h2>Reporting bugs effectively</h2>
23
+
24
+ <div class="left">
25
+
26
+ <p>So you found a problem in CodeMirror. By all means, report it! Bug
27
+ reports from users are the main drive behind improvements to
28
+ CodeMirror. But first, please read over these points:</p>
29
+
30
+ <ol>
31
+ <li>CodeMirror is maintained by volunteers. They don't owe you
32
+ anything, so be polite. Reports with an indignant or belligerent
33
+ tone tend to be moved to the bottom of the pile.</li>
34
+
35
+ <li>Include information about <strong>the browser in which the
36
+ problem occurred</strong>. Even if you tested several browsers, and
37
+ the problem occurred in all of them, mention this fact in the bug
38
+ report. Also include browser version numbers and the operating
39
+ system that you're on.</li>
40
+
41
+ <li>Mention which release of CodeMirror you're using. Preferably,
42
+ try also with the current development snapshot, to ensure the
43
+ problem has not already been fixed.</li>
44
+
45
+ <li>Mention very precisely what went wrong. "X is broken" is not a
46
+ good bug report. What did you expect to happen? What happened
47
+ instead? Describe the exact steps a maintainer has to take to make
48
+ the problem occur. We can not fix something that we can not
49
+ observe.</li>
50
+
51
+ <li>If the problem can not be reproduced in any of the demos
52
+ included in the CodeMirror distribution, please provide an HTML
53
+ document that demonstrates the problem. The best way to do this is
54
+ to go to <a href="http://jsbin.com/ihunin/1/edit">jsbin.com</a>, enter
55
+ it there, press save, and include the resulting link in your bug
56
+ report.</li>
57
+ </ol>
58
+
59
+ </div>
60
+
61
+ </article>
@@ -0,0 +1,96 @@
1
+ <!doctype html>
2
+
3
+ <title>CodeMirror: Version 2.2 upgrade guide</title>
4
+ <meta charset="utf-8"/>
5
+ <link rel=stylesheet href="docs.css">
6
+
7
+ <div id=nav>
8
+ <a href="http://codemirror.net"><h1>CodeMirror</h1><img id=logo src="logo.png"></a>
9
+
10
+ <ul>
11
+ <li><a href="../index.html">Home</a>
12
+ <li><a href="manual.html">Manual</a>
13
+ <li><a href="https://github.com/codemirror/codemirror">Code</a>
14
+ </ul>
15
+ <ul>
16
+ <li><a class=active href="#">2.2 upgrade guide</a>
17
+ </ul>
18
+ </div>
19
+
20
+ <article>
21
+
22
+ <h2>Upgrading to v2.2</h2>
23
+
24
+ <p>There are a few things in the 2.2 release that require some care
25
+ when upgrading.</p>
26
+
27
+ <h3>No more default.css</h3>
28
+
29
+ <p>The default theme is now included
30
+ in <a href="../lib/codemirror.css"><code>codemirror.css</code></a>, so
31
+ you do not have to included it separately anymore. (It was tiny, so
32
+ even if you're not using it, the extra data overhead is negligible.)
33
+
34
+ <h3>Different key customization</h3>
35
+
36
+ <p>CodeMirror has moved to a system
37
+ where <a href="manual.html#option_keyMap">keymaps</a> are used to
38
+ bind behavior to keys. This means <a href="../demo/emacs.html">custom
39
+ bindings</a> are now possible.</p>
40
+
41
+ <p>Three options that influenced key
42
+ behavior, <code>tabMode</code>, <code>enterMode</code>,
43
+ and <code>smartHome</code>, are no longer supported. Instead, you can
44
+ provide custom bindings to influence the way these keys act. This is
45
+ done through the
46
+ new <a href="manual.html#option_extraKeys"><code>extraKeys</code></a>
47
+ option, which can hold an object mapping key names to functionality. A
48
+ simple example would be:</p>
49
+
50
+ <pre> extraKeys: {
51
+ "Ctrl-S": function(instance) { saveText(instance.getValue()); },
52
+ "Ctrl-/": "undo"
53
+ }</pre>
54
+
55
+ <p>Keys can be mapped either to functions, which will be given the
56
+ editor instance as argument, or to strings, which are mapped through
57
+ functions through the <code>CodeMirror.commands</code> table, which
58
+ contains all the built-in editing commands, and can be inspected and
59
+ extended by external code.</p>
60
+
61
+ <p>By default, the <code>Home</code> key is bound to
62
+ the <code>"goLineStartSmart"</code> command, which moves the cursor to
63
+ the first non-whitespace character on the line. You can set do this to
64
+ make it always go to the very start instead:</p>
65
+
66
+ <pre> extraKeys: {"Home": "goLineStart"}</pre>
67
+
68
+ <p>Similarly, <code>Enter</code> is bound
69
+ to <code>"newlineAndIndent"</code> by default. You can bind it to
70
+ something else to get different behavior. To disable special handling
71
+ completely and only get a newline character inserted, you can bind it
72
+ to <code>false</code>:</p>
73
+
74
+ <pre> extraKeys: {"Enter": false}</pre>
75
+
76
+ <p>The same works for <code>Tab</code>. If you don't want CodeMirror
77
+ to handle it, bind it to <code>false</code>. The default behaviour is
78
+ to indent the current line more (<code>"indentMore"</code> command),
79
+ and indent it less when shift is held (<code>"indentLess"</code>).
80
+ There are also <code>"indentAuto"</code> (smart indent)
81
+ and <code>"insertTab"</code> commands provided for alternate
82
+ behaviors. Or you can write your own handler function to do something
83
+ different altogether.</p>
84
+
85
+ <h3>Tabs</h3>
86
+
87
+ <p>Handling of tabs changed completely. The display width of tabs can
88
+ now be set with the <code>tabSize</code> option, and tabs can
89
+ be <a href="../demo/visibletabs.html">styled</a> by setting CSS rules
90
+ for the <code>cm-tab</code> class.</p>
91
+
92
+ <p>The default width for tabs is now 4, as opposed to the 8 that is
93
+ hard-wired into browsers. If you are relying on 8-space tabs, make
94
+ sure you explicitly set <code>tabSize: 8</code> in your options.</p>
95
+
96
+ </article>
@@ -0,0 +1,230 @@
1
+ <!doctype html>
2
+
3
+ <title>CodeMirror: Version 3 upgrade guide</title>
4
+ <meta charset="utf-8"/>
5
+ <link rel=stylesheet href="docs.css">
6
+ <script src="../lib/codemirror.js"></script>
7
+ <link rel="stylesheet" href="../lib/codemirror.css">
8
+ <script src="../addon/runmode/runmode.js"></script>
9
+ <script src="../addon/runmode/colorize.js"></script>
10
+ <script src="../mode/javascript/javascript.js"></script>
11
+ <script src="../mode/xml/xml.js"></script>
12
+ <script src="../mode/css/css.js"></script>
13
+ <script src="../mode/htmlmixed/htmlmixed.js"></script>
14
+ <script src="activebookmark.js"></script>
15
+
16
+ <div id=nav>
17
+ <a href="http://codemirror.net"><h1>CodeMirror</h1><img id=logo src="logo.png"></a>
18
+
19
+ <ul>
20
+ <li><a href="../index.html">Home</a>
21
+ <li><a href="manual.html">Manual</a>
22
+ <li><a href="https://github.com/codemirror/codemirror">Code</a>
23
+ </ul>
24
+ <ul>
25
+ <li><a class=active href="#upgrade">Upgrade guide</a>
26
+ <li><a href="#dom">DOM structure</a></li>
27
+ <li><a href="#gutters">Gutter model</a></li>
28
+ <li><a href="#events">Event handling</a></li>
29
+ <li><a href="#marktext">markText method arguments</a></li>
30
+ <li><a href="#folding">Line folding</a></li>
31
+ <li><a href="#lineclass">Line CSS classes</a></li>
32
+ <li><a href="#positions">Position properties</a></li>
33
+ <li><a href="#matchbrackets">Bracket matching</a></li>
34
+ <li><a href="#modes">Mode management</a></li>
35
+ <li><a href="#new">New features</a></li>
36
+ </ul>
37
+ </div>
38
+
39
+ <article>
40
+
41
+ <h2 id=upgrade>Upgrading to version 3</h2>
42
+
43
+ <p>Version 3 does not depart too much from 2.x API, and sites that use
44
+ CodeMirror in a very simple way might be able to upgrade without
45
+ trouble. But it does introduce a number of incompatibilities. Please
46
+ at least skim this text before upgrading.</p>
47
+
48
+ <p>Note that <strong>version 3 drops full support for Internet
49
+ Explorer 7</strong>. The editor will mostly work on that browser, but
50
+ it'll be significantly glitchy.</p>
51
+
52
+ <section id=dom>
53
+ <h2>DOM structure</h2>
54
+
55
+ <p>This one is the most likely to cause problems. The internal
56
+ structure of the editor has changed quite a lot, mostly to implement a
57
+ new scrolling model.</p>
58
+
59
+ <p>Editor height is now set on the outer wrapper element (CSS
60
+ class <code>CodeMirror</code>), not on the scroller element
61
+ (<code>CodeMirror-scroll</code>).</p>
62
+
63
+ <p>Other nodes were moved, dropped, and added. If you have any code
64
+ that makes assumptions about the internal DOM structure of the editor,
65
+ you'll have to re-test it and probably update it to work with v3.</p>
66
+
67
+ <p>See the <a href="manual.html#styling">styling section</a> of the
68
+ manual for more information.</p>
69
+ </section>
70
+ <section id=gutters>
71
+ <h2>Gutter model</h2>
72
+
73
+ <p>In CodeMirror 2.x, there was a single gutter, and line markers
74
+ created with <code>setMarker</code> would have to somehow coexist with
75
+ the line numbers (if present). Version 3 allows you to specify an
76
+ array of gutters, <a href="manual.html#option_gutters">by class
77
+ name</a>,
78
+ use <a href="manual.html#setGutterMarker"><code>setGutterMarker</code></a>
79
+ to add or remove markers in individual gutters, and clear whole
80
+ gutters
81
+ with <a href="manual.html#clearGutter"><code>clearGutter</code></a>.
82
+ Gutter markers are now specified as DOM nodes, rather than HTML
83
+ snippets.</p>
84
+
85
+ <p>The gutters no longer horizontally scrolls along with the content.
86
+ The <code>fixedGutter</code> option was removed (since it is now the
87
+ only behavior).</p>
88
+
89
+ <pre data-lang="text/html">
90
+ &lt;style>
91
+ /* Define a gutter style */
92
+ .note-gutter { width: 3em; background: cyan; }
93
+ &lt;/style>
94
+ &lt;script>
95
+ // Create an instance with two gutters -- line numbers and notes
96
+ var cm = new CodeMirror(document.body, {
97
+ gutters: ["note-gutter", "CodeMirror-linenumbers"],
98
+ lineNumbers: true
99
+ });
100
+ // Add a note to line 0
101
+ cm.setGutterMarker(0, "note-gutter", document.createTextNode("hi"));
102
+ &lt;/script>
103
+ </pre>
104
+ </section>
105
+ <section id=events>
106
+ <h2>Event handling</h2>
107
+
108
+ <p>Most of the <code>onXYZ</code> options have been removed. The same
109
+ effect is now obtained by calling
110
+ the <a href="manual.html#on"><code>on</code></a> method with a string
111
+ identifying the event type. Multiple handlers can now be registered
112
+ (and individually unregistered) for an event, and objects such as line
113
+ handlers now also expose events. See <a href="manual.html#events">the
114
+ full list here</a>.</p>
115
+
116
+ <p>(The <code>onKeyEvent</code> and <code>onDragEvent</code> options,
117
+ which act more as hooks than as event handlers, are still there in
118
+ their old form.)</p>
119
+
120
+ <pre data-lang="javascript">
121
+ cm.on("change", function(cm, change) {
122
+ console.log("something changed! (" + change.origin + ")");
123
+ });
124
+ </pre>
125
+ </section>
126
+ <section id=marktext>
127
+ <h2>markText method arguments</h2>
128
+
129
+ <p>The <a href="manual.html#markText"><code>markText</code></a> method
130
+ (which has gained some interesting new features, such as creating
131
+ atomic and read-only spans, or replacing spans with widgets) no longer
132
+ takes the CSS class name as a separate argument, but makes it an
133
+ optional field in the options object instead.</p>
134
+
135
+ <pre data-lang="javascript">
136
+ // Style first ten lines, and forbid the cursor from entering them
137
+ cm.markText({line: 0, ch: 0}, {line: 10, ch: 0}, {
138
+ className: "magic-text",
139
+ inclusiveLeft: true,
140
+ atomic: true
141
+ });
142
+ </pre>
143
+ </section>
144
+ <section id=folding>
145
+ <h2>Line folding</h2>
146
+
147
+ <p>The interface for hiding lines has been
148
+ removed. <a href="manual.html#markText"><code>markText</code></a> can
149
+ now be used to do the same in a more flexible and powerful way.</p>
150
+
151
+ <p>The <a href="../demo/folding.html">folding script</a> has been
152
+ updated to use the new interface, and should now be more robust.</p>
153
+
154
+ <pre data-lang="javascript">
155
+ // Fold a range, replacing it with the text "??"
156
+ var range = cm.markText({line: 4, ch: 2}, {line: 8, ch: 1}, {
157
+ replacedWith: document.createTextNode("??"),
158
+ // Auto-unfold when cursor moves into the range
159
+ clearOnEnter: true
160
+ });
161
+ // Get notified when auto-unfolding
162
+ CodeMirror.on(range, "clear", function() {
163
+ console.log("boom");
164
+ });
165
+ </pre>
166
+ </section>
167
+ <section id=lineclass>
168
+ <h2>Line CSS classes</h2>
169
+
170
+ <p>The <code>setLineClass</code> method has been replaced
171
+ by <a href="manual.html#addLineClass"><code>addLineClass</code></a>
172
+ and <a href="manual.html#removeLineClass"><code>removeLineClass</code></a>,
173
+ which allow more modular control over the classes attached to a line.</p>
174
+
175
+ <pre data-lang="javascript">
176
+ var marked = cm.addLineClass(10, "background", "highlighted-line");
177
+ setTimeout(function() {
178
+ cm.removeLineClass(marked, "background", "highlighted-line");
179
+ });
180
+ </pre>
181
+ </section>
182
+ <section id=positions>
183
+ <h2>Position properties</h2>
184
+
185
+ <p>All methods that take or return objects that represent screen
186
+ positions now use <code>{left, top, bottom, right}</code> properties
187
+ (not always all of them) instead of the <code>{x, y, yBot}</code> used
188
+ by some methods in v2.x.</p>
189
+
190
+ <p>Affected methods
191
+ are <a href="manual.html#cursorCoords"><code>cursorCoords</code></a>, <a href="manual.html#charCoords"><code>charCoords</code></a>, <a href="manual.html#coordsChar"><code>coordsChar</code></a>,
192
+ and <a href="manual.html#getScrollInfo"><code>getScrollInfo</code></a>.</p>
193
+ </section>
194
+ <section id=matchbrackets>
195
+ <h2>Bracket matching no longer in core</h2>
196
+
197
+ <p>The <a href="manual.html#addon_matchbrackets"><code>matchBrackets</code></a>
198
+ option is no longer defined in the core editor.
199
+ Load <code>addon/edit/matchbrackets.js</code> to enable it.</p>
200
+ </section>
201
+ <section id=modes>
202
+ <h2>Mode management</h2>
203
+
204
+ <p>The <code>CodeMirror.listModes</code>
205
+ and <code>CodeMirror.listMIMEs</code> functions, used for listing
206
+ defined modes, are gone. You are now encouraged to simply
207
+ inspect <code>CodeMirror.modes</code> (mapping mode names to mode
208
+ constructors) and <code>CodeMirror.mimeModes</code> (mapping MIME
209
+ strings to mode specs).</p>
210
+ </section>
211
+ <section id=new>
212
+ <h2>New features</h2>
213
+
214
+ <p>Some more reasons to upgrade to version 3.</p>
215
+
216
+ <ul>
217
+ <li>Bi-directional text support. CodeMirror will now mostly do the
218
+ right thing when editing Arabic or Hebrew text.</li>
219
+ <li>Arbitrary line heights. Using fonts with different heights
220
+ inside the editor (whether off by one pixel or fifty) is now
221
+ supported and handled gracefully.</li>
222
+ <li>In-line widgets. See <a href="../demo/widget.html">the demo</a>
223
+ and <a href="manual.html#addLineWidget">the docs</a>.</li>
224
+ <li>Defining custom options
225
+ with <a href="manual.html#defineOption"><code>CodeMirror.defineOption</code></a>.</li>
226
+ </ul>
227
+ </section>
228
+ </article>
229
+
230
+ <script>setTimeout(function(){CodeMirror.colorize();}, 20);</script>
@@ -0,0 +1,144 @@
1
+ <!doctype html>
2
+
3
+ <title>CodeMirror: Version 4 upgrade guide</title>
4
+ <meta charset="utf-8"/>
5
+ <link rel=stylesheet href="docs.css">
6
+ <script src="activebookmark.js"></script>
7
+
8
+ <div id=nav>
9
+ <a href="http://codemirror.net"><h1>CodeMirror</h1><img id=logo src="logo.png"></a>
10
+
11
+ <ul>
12
+ <li><a href="../index.html">Home</a>
13
+ <li><a href="manual.html">Manual</a>
14
+ <li><a href="https://github.com/codemirror/codemirror">Code</a>
15
+ </ul>
16
+ <ul>
17
+ <li><a class=active href="#upgrade">Upgrade guide</a>
18
+ <li><a href="#multisel">Multiple selections</a>
19
+ <li><a href="#beforeSelectionChange">The beforeSelectionChange event</a>
20
+ <li><a href="#replaceSelection">replaceSelection and collapsing</a>
21
+ <li><a href="#changeEvent">change event data</a>
22
+ <li><a href="#showIfHidden">showIfHidden option to line widgets</a>
23
+ <li><a href="#module">Module loaders</a>
24
+ <li><a href="#shareddata">Mutating shared data structures</a></li>
25
+ <li><a href="#deprecated">Deprecated interfaces dropped</a>
26
+ </ul>
27
+ </div>
28
+
29
+ <article>
30
+
31
+ <h2 id=upgrade>Upgrading to version 4</h2>
32
+
33
+ <p>CodeMirror 4's interface is <em>very</em> close version 3, but it
34
+ does fix a few awkward details in a backwards-incompatible ways. At
35
+ least skim the text below before upgrading.</p>
36
+
37
+ <section id=multisel><h2>Multiple selections</h2>
38
+
39
+ <p>The main new feature in version 4 is multiple selections. The
40
+ single-selection variants of methods are still there, but now
41
+ typically act only on the <em>primary</em> selection (usually the last
42
+ one added).</p>
43
+
44
+ <p>The exception to this
45
+ is <a href="manual.html#getSelection"><strong><code>getSelection</code></strong></a>,
46
+ which will now return the content of <em>all</em> selections
47
+ (separated by newlines, or whatever <code>lineSep</code> parameter you passed
48
+ it).</p>
49
+
50
+ </section>
51
+
52
+ <section id=beforeSelectionChange><h2>The beforeSelectionChange event</h2>
53
+
54
+ <p>This event still exists, but the object it is passed has
55
+ a <a href="manual.html#event_beforeSelectionChange">completely new
56
+ interface</a>, because such changes now concern multiple
57
+ selections.</p>
58
+
59
+ </section>
60
+
61
+ <section id=replaceSelection><h2>replaceSelection's collapsing behavior</h2>
62
+
63
+ <p>By
64
+ default, <a href="manual.html#replaceSelection"><code>replaceSelection</code></a>
65
+ would leave the newly inserted text selected. This is only rarely what
66
+ you want, and also (slightly) more expensive in the new model, so the
67
+ default was changed to <code>"end"</code>, meaning the old behavior
68
+ must be explicitly specified by passing a second argument
69
+ of <code>"around"</code>.</p>
70
+
71
+ </section>
72
+
73
+ <section id=changeEvent><h2>change event data</h2>
74
+
75
+ <p>Rather than forcing client code to follow <code>next</code>
76
+ pointers from one change object to the next, the library will now
77
+ simply fire
78
+ multiple <a href="manual.html#event_change"><code>"change"</code></a>
79
+ events. Existing code will probably continue to work unmodified.</p>
80
+
81
+ </section>
82
+
83
+ <section id=showIfHidden><h2>showIfHidden option to line widgets</h2>
84
+
85
+ <p>This option, which conceptually caused line widgets to be visible
86
+ even if their line was hidden, was never really well-defined, and was
87
+ buggy from the start. It would be a rather expensive feature, both in
88
+ code complexity and run-time performance, to implement properly. It
89
+ has been dropped entirely in 4.0.</p>
90
+
91
+ </section>
92
+
93
+ <section id=module><h2>Module loaders</h2>
94
+
95
+ <p>All modules in the CodeMirror distribution are now wrapped in a
96
+ shim function to make them compatible with both AMD
97
+ (<a href="http://requirejs.org">requirejs</a>) and CommonJS (as used
98
+ by <a href="http://nodejs.org/">node</a>
99
+ and <a href="http://browserify.org/">browserify</a>) module loaders.
100
+ When neither of these is present, they fall back to simply using the
101
+ global <code>CodeMirror</code> variable.</p>
102
+
103
+ <p>If you have a module loader present in your environment, CodeMirror
104
+ will attempt to use it, and you might need to change the way you load
105
+ CodeMirror modules.</p>
106
+
107
+ </section>
108
+
109
+ <section id=shareddata><h2>Mutating shared data structures</h2>
110
+
111
+ <p>Data structures produced by the library should not be mutated
112
+ unless explicitly allowed, in general. This is slightly more strict in
113
+ 4.0 than it was in earlier versions, which copied the position objects
114
+ returned by <a href="manual.html#getCursor"><code>getCursor</code></a>
115
+ for nebulous, historic reasons. In 4.0, mutating these
116
+ objects <em>will</em> corrupt your editor's selection.</p>
117
+
118
+ </section>
119
+
120
+ <section id=deprecated><h2>Deprecated interfaces dropped</h2>
121
+
122
+ <p>A few properties and methods that have been deprecated for a while
123
+ are now gone. Most notably, the <code>onKeyEvent</code>
124
+ and <code>onDragEvent</code> options (use the
125
+ corresponding <a href="manual.html#event_dom">events</a> instead).</p>
126
+
127
+ <p>Two silly methods, which were mostly there to stay close to the 0.x
128
+ API, <code>setLine</code> and <code>removeLine</code> are now gone.
129
+ Use the more
130
+ flexible <a href="manual.html#replaceRange"><code>replaceRange</code></a>
131
+ method instead.</p>
132
+
133
+ <p>The long names for folding and completing functions
134
+ (<code>CodeMirror.braceRangeFinder</code>, <code>CodeMirror.javascriptHint</code>,
135
+ etc) are also gone
136
+ (use <code>CodeMirror.fold.brace</code>, <code>CodeMirror.hint.javascript</code>).</p>
137
+
138
+ <p>The <code>className</code> property in the return value
139
+ of <a href="manual.html#getTokenAt"><code>getTokenAt</code></a>, which
140
+ has been superseded by the <code>type</code> property, is also no
141
+ longer present.</p>
142
+
143
+ </section>
144
+ </article>