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
metadata.gz.sig CHANGED
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
@@ -1,201 +0,0 @@
1
- //= require jquery
2
- //= require jquery_ujs
3
- //= require jquery.ui.all
4
- //= require autocomplete-rails
5
- //= require jquery-fileupload/basic
6
- //= require jquery-fileupload/vendor/tmpl
7
- //= require lines/pictures
8
- //= require lines/autosize.min
9
-
10
- // Function to insert uploaded pictures into the content at cursor position
11
- jQuery.fn.extend({
12
- insertAtCaret: function(myValue){
13
- return this.each(function(i) {
14
- if (document.selection) {
15
- //For browsers like Internet Explorer
16
- this.focus();
17
- sel = document.selection.createRange();
18
- sel.text = myValue;
19
- this.focus();
20
- }
21
- else if (this.selectionStart || this.selectionStart == '0') {
22
- //For browsers like Firefox and Webkit based
23
- var startPos = this.selectionStart;
24
- var endPos = this.selectionEnd;
25
- var scrollTop = this.scrollTop;
26
- this.value = this.value.substring(0, startPos)+myValue+this.value.substring(endPos,this.value.length);
27
- this.focus();
28
- this.selectionStart = startPos + myValue.length;
29
- this.selectionEnd = startPos + myValue.length;
30
- this.scrollTop = scrollTop;
31
- } else {
32
- this.value += myValue;
33
- this.focus();
34
- }
35
- });
36
- }
37
- });
38
-
39
- $(document).ready(function() {
40
- // Deactivate OnBeforeUnload on submit button
41
- // You can add even more buttons, just add the class or id of the button/link
42
- // All buttons/links which are listed below will not produce a "Warning"-Alert on leaving the page when something has changed but not saved
43
- $('.btn-save-publish').click(function() {
44
- window.onbeforeunload = null;
45
- });
46
-
47
- // Autogrow and -shrink the content text box while typing
48
- // This allows the user to see the whole text copy all the time
49
- $('#article_content').autosize();
50
-
51
- // Close error notification
52
- $('#error_explanation, .close').on('click', function(e){
53
- $('#error_explanation').slideUp();
54
- });
55
-
56
- // Insert image into content of the post
57
- $(document.body).on('click', ".insert-image", function(e){
58
- var url = $(this).attr( 'data-url' );
59
- var value = '\n![Alt text](' + url + ')\n';
60
- $('#article_content').insertAtCaret(value);
61
- e.preventDefault();
62
- });
63
-
64
- // Show datepicker
65
- $(document).on("focus", "[data-behaviour~='datepicker']", function(e){
66
- var altFormat = $(this).datepicker( "option", "altFormat" );
67
- $(this).datepicker({dateFormat: "yy-mm-dd"});
68
- });
69
-
70
- // Select a default hero image
71
- // Switch classes and preview the selected default image in the hero image canvas
72
- $(".select_image").on('click', function(e){
73
- e.preventDefault();
74
-
75
- bg_url = $(this).attr('src');
76
-
77
- $('.hero-image').css('background-image', 'url(' + bg_url + ')');
78
-
79
- if ($(this).hasClass('selected_image')) { // deselect selected short_hero image
80
- $(".selected_image").removeClass('selected_image');
81
- $("#article_short_hero_image, #article_hero_image_file").val('');
82
- } else if ($(this).hasClass('uploaded_image')) { // select former uploaded hero_image
83
- $(".selected_image").removeClass('selected_image');
84
- //TODO: How to get the selected value?
85
- $('#article_hero_image, #article_hero_image_cache, #article_short_hero_image').val('');
86
- $('#article_hero_image_file').val(bg_url);
87
- } else { // select short_hero_image image
88
- var value = $(this).attr('src');
89
- $('#article_hero_image_file, #article_hero_image, #article_hero_image_cache').val('');
90
- $(".selected_image").removeClass('selected_image');
91
- $(this).addClass("selected_image");
92
- $("#article_short_hero_image").val(value);
93
- }
94
- $('#hero_image_name').text('');
95
- $('.choose-file').html("Change Image");
96
- });
97
-
98
- // Unselect hero image on upload
99
- // If a custom image is selected of the hard drive, the current selected default image will be unselected
100
- $('#article_hero_image').on('change', function(e){
101
- $(".selected_image").removeClass('selected_image');
102
- $("#article_short_hero_image").val('');
103
- });
104
-
105
- // Scroll to the top of the page
106
- $('.top_link').click(function(){
107
- $("html, body").animate({ scrollTop: 0 }, 600);
108
- return false;
109
- });
110
-
111
-
112
-
113
- // File Reader for hero image and document upload
114
- // If you need more input fields like this, you need to add an event listener for every input field
115
- // You also need to insert a case for every input inside of the "handleFiles" function below ($type_id)
116
- if (window.File && window.FileList && window.FileReader) {
117
- var hero_input = document.getElementById('article_hero_image'); // Hero image input
118
- var document_input = document.getElementById('article_document'); // Document input
119
- if (typeof(hero_input) !== 'undefined' && hero_input !== null && typeof(document_input) !== 'undefined' && document_input !== null) {
120
- hero_input.addEventListener('change', handleFiles, false); // Add listener to the hero image input
121
- document_input.addEventListener('change', handleFiles, false); // Add listener to the document input
122
- }
123
- } else {
124
- alert("You need a browser with file reader support, to use this form properly.");
125
- }
126
-
127
- // This function handels the hero image & documents
128
- // It generates a live preview (image/name) of the selected file
129
- function handleFiles(event) {
130
- var files = event.target.files; // Get current file
131
- var type_id = event.currentTarget.id; // Get the # of the current input field
132
-
133
- if (files.length > 0) {
134
- var file = files[0];
135
- var reader = new FileReader();
136
-
137
- // Check format
138
- if (type_id == 'article_hero_image') {
139
- if (!file.type.match('image')) {
140
- return false;
141
- }
142
- } else if (type_id == 'article_document') {
143
- // Nothing to do here yet ...
144
- }
145
-
146
- // Load file
147
- reader.addEventListener("load",function(event) {
148
- var loadedFile = event.target;
149
-
150
- // Change labels, background and so on
151
- // Different action depending on the type_id
152
- if (type_id == 'article_hero_image') {
153
- $('.hero-image').css("background-image","url("+loadedFile.result+")");
154
- $('.hero-image').css("background-size","cover");
155
-
156
- $('.choose-file').html("Change Image");
157
- $('.short-hero-images').append("<div class=\"short-hero-image-box\"><img src=\""+loadedFile.result+"\" width=\"115\" class=\"select_image uploaded_image\" /></div>");
158
- } else if (type_id == 'article_document') {
159
- $('.choose-files').html(file.name);
160
- }
161
- });
162
-
163
- // Read the file
164
- reader.readAsDataURL(file);
165
- } else {
166
- // Change labels, background and so on
167
- // Different action depending on the type_id
168
- if (type_id == 'article_hero_image') {
169
- $('.choose-file').html("Choose Image");
170
- $('.hero-image').css("background-image","none");
171
- } else if (type_id == 'article_document') {
172
- $('.choose-files').html("Choose File");
173
- }
174
- }
175
- }
176
-
177
- // Close notification boxes below the navbar
178
- $('.alert').click(function(e){
179
- e.preventDefault();
180
- $(this).slideUp();
181
- });
182
-
183
- // Formatting Help functions
184
- $('.btn-close-formatting').click(function() {
185
- $('#formatting_guide').fadeOut();
186
- });
187
- $('.btn-close-formatting-small').click(function() {
188
- $('#formatting_guide').fadeOut();
189
- });
190
- $('.btn-formatting-help').click(function() {
191
- $('#formatting_guide').fadeIn();
192
- });
193
-
194
- // Show security alert on unload only when something has changed
195
- $('.edit_article input, .edit_article textarea, .new_article input, .new_article textarea').bind("keyup change", function() {
196
- window.onbeforeunload = function() {
197
- return 'You have NOT saved your article. Stop and save if you want to keep your changes.';
198
- };
199
- });
200
-
201
- });
@@ -1,970 +0,0 @@
1
- /*
2
- * This is a manifest file that'll be compiled into application.css, which will include all the files
3
- * listed below.
4
- *
5
- * Any CSS and SCSS file within this directory, libstylesheets, vendorstylesheets,
6
- * or vendorstylesheets of plugins, if any, can be referenced here using a relative path.
7
- *
8
- * You're free to add application-wide styles to this file and they'll appear at the top of the
9
- * compiled file, but it's generally better to create a new file per style scope.
10
- *
11
- *= require_self
12
- *= require jquery.ui.all
13
- *= require lines/navbar
14
- */
15
-
16
- @import url(//fonts.googleapis.com/css?family=Ubuntu+Mono|Cabin|Roboto|Roboto+Condensed);
17
-
18
- $darkgrey: #333;
19
- $lightgrey: #666;
20
- $orange: #e8581e;
21
-
22
- @mixin border-box() {
23
- box-sizing: border-box;
24
- -moz-box-sizing: border-box;
25
- -webkit-box-sizing: border-box;
26
- }
27
-
28
- @mixin addTransition($x) {
29
- transition: all $x+s ease;
30
- -o-transition: all $x+s ease;
31
- -ms-transition: all $x+s ease;
32
- -moz-transition: all $x+s ease;
33
- -webkit-transition: all $x+s ease;
34
- }
35
-
36
- * {
37
- margin: 0;
38
- padding: 0;
39
- border: 0;
40
- &:active, &:focus {
41
- outline: 0;
42
- }
43
- }
44
-
45
- body {
46
- background-color: #fbfbfb;
47
- color: $darkgrey;
48
- font-family: 'Roboto', sans-serif;
49
- font-size: 16px;
50
- }
51
-
52
- a {
53
- text-decoration: none;
54
- }
55
-
56
- a.btn, input[type=submit].btn {
57
- @include addTransition(0.3);
58
- }
59
-
60
- h1 {
61
- font-family: 'Cabin', sans-serif;
62
- font-size: 60px;
63
- color: #919191;
64
- letter-spacing: 0.03em;
65
- margin: 50px 0px;
66
- font-weight: normal;
67
- }
68
-
69
- h2 {
70
- font-family: 'Cabin', sans-serif;
71
- font-size: 20px;
72
- color: #919191;
73
- letter-spacing: 0.03em;
74
- margin: 20px 0px;
75
- text-transform: uppercase;
76
- font-weight: normal;
77
- }
78
-
79
- hr {
80
- border-bottom: 1px solid $lightgrey;
81
- }
82
-
83
- .clear {
84
- clear: both;
85
- }
86
-
87
-
88
- #main {
89
- .container {
90
- width: 960px;
91
- margin: 0 auto;
92
- padding: 0px 15px;
93
- .btn {
94
- font-family: 'Cabin', sans-serif;
95
- font-size: 16px;
96
- color: #ffffff;
97
- padding: 10px 15px;
98
- letter-spacing: 0.03em;
99
- cursor: pointer;
100
- &.btn-new-article, &.btn-new-author {
101
- background-color: $orange;
102
- &:hover {
103
- background-color: lighten($orange, 15%);
104
- }
105
- }
106
- &.btn-authors, &.btn-view-blog {
107
- background-color: #434343;
108
- }
109
- &.btn-publish {
110
- background-color: $orange;
111
- color: #d6d6d6;
112
- &:hover {
113
- background-color: lighten($orange, 15%);
114
- }
115
- }
116
- }
117
- .headline {
118
- h1 {
119
- float: left;
120
- }
121
- }
122
- .articles-list {
123
- margin-bottom: 60px;
124
- .article {
125
- border-bottom: 1px solid #cdcdcd;
126
- width: 100%;
127
- line-height: 53px;
128
- &.published {
129
- .title a, .title:hover a, .subtitle, .date {
130
- color: #9f9f9f;
131
- }
132
- }
133
- .preview {
134
- width: 51px;
135
- background: #f2f2f2 image-url('article-icons.png') no-repeat scroll 10px 18px;
136
- cursor: pointer;
137
- &:hover {
138
- background: #f2f2f2 image-url('article-icons.png') no-repeat scroll -40px 18px;
139
- }
140
- a {
141
- display: block;
142
- height: 53px;
143
- width: 51px;
144
- }
145
- }
146
- .edit {
147
- width: 51px;
148
- background: #f2f2f2 image-url('article-icons.png') no-repeat scroll 15px -34px;
149
- cursor: pointer;
150
- &:hover {
151
- background: #f2f2f2 image-url('article-icons.png') no-repeat scroll -35px -34px;
152
- }
153
- a {
154
- display: block;
155
- height: 53px;
156
- width: 51px;
157
- }
158
- }
159
- .title {
160
- font-family: 'Roboto Condensed', sans-serif;
161
- font-size: 19px;
162
- letter-spacing: 0.03em;
163
- width: 285px;
164
- padding: 0px 20px;
165
- overflow: hidden;
166
- white-space: nowrap;
167
- a {
168
- color: $orange;
169
- display: inline-block;
170
- width: 100%;
171
- }
172
- &:hover {
173
- a {
174
- color: $darkgrey;
175
- }
176
- }
177
- }
178
- .subtitle {
179
- font-family: 'Cabin', sans-serif;
180
- font-size: 16px;
181
- width: 285px;
182
- padding: 0px 20px;
183
- overflow:hidden;
184
- white-space: nowrap;
185
- a {
186
- color: $darkgrey;
187
- display: inline-block;
188
- width: 100%;
189
- }
190
- }
191
- .featured {
192
- width: 35px;
193
- input[type=submit] {
194
- background: transparent image-url('article-icons.png') no-repeat scroll -94px -135px;
195
- cursor: pointer;
196
- display: block;
197
- height: 53px;
198
- width: 35px;
199
- &:hover {
200
- background: transparent image-url('article-icons.png') no-repeat scroll -44px -135px;
201
- }
202
- }
203
- &.not input[type=submit] {
204
- background: transparent image-url('article-icons.png') no-repeat scroll 6px -135px;
205
- &:hover {
206
- background: transparent image-url('article-icons.png') no-repeat scroll -44px -135px;
207
- }
208
- }
209
- }
210
- .date {
211
- font-family: 'Cabin', sans-serif;
212
- color: #b4b4b4;
213
- font-size: 18px;
214
- width: 120px;
215
- text-align: center;
216
- }
217
- .delete {
218
- width: 35px;
219
- input[type=submit] {
220
- background: transparent image-url('article-icons.png') no-repeat scroll 8px -85px;
221
- cursor: pointer;
222
- display: block;
223
- height: 53px;
224
- width: 35px;
225
- &:hover {
226
- background: transparent image-url('article-icons.png') no-repeat scroll -42px -85px;
227
- }
228
- }
229
- }
230
- }
231
- }
232
- .authors-list {
233
- margin-bottom: 60px;
234
- .author {
235
- border-bottom: 1px solid #cdcdcd;
236
- width: 100%;
237
- line-height: 53px;
238
- .show {
239
- width: 51px;
240
- background: #f2f2f2 image-url('article-icons.png') no-repeat scroll 10px 18px;
241
- cursor: pointer;
242
- &:hover {
243
- background: #f2f2f2 image-url('article-icons.png') no-repeat scroll -40px 18px;
244
- }
245
- a {
246
- display: block;
247
- height: 53px;
248
- width: 51px;
249
- }
250
- }
251
- .edit {
252
- width: 51px;
253
- background: #f2f2f2 image-url('article-icons.png') no-repeat scroll 15px -34px;
254
- cursor: pointer;
255
- &:hover {
256
- background: #f2f2f2 image-url('article-icons.png') no-repeat scroll -35px -34px;
257
- }
258
- a {
259
- display: block;
260
- height: 53px;
261
- width: 51px;
262
- }
263
- }
264
- .name {
265
- font-family: 'Roboto Condensed', sans-serif;
266
- font-size: 19px;
267
- letter-spacing: 0.03em;
268
- width: 285px;
269
- padding: 0px 20px;
270
- a {
271
- color: $orange;
272
- display: inline-block;
273
- width: 100%;
274
- }
275
- &:hover {
276
- a {
277
- color: $darkgrey;
278
- }
279
- }
280
- }
281
- .email {
282
- font-family: 'Cabin', sans-serif;
283
- font-size: 16px;
284
- width: 285px;
285
- padding: 0px 20px;
286
- a {
287
- color: $darkgrey;
288
- display: inline-block;
289
- width: 100%;
290
- }
291
- }
292
- .delete {
293
- width: 35px;
294
- input[type=submit] {
295
- background: transparent image-url('article-icons.png') no-repeat scroll 8px -85px;
296
- cursor: pointer;
297
- display: block;
298
- height: 53px;
299
- width: 35px;
300
- &:hover {
301
- background: transparent image-url('article-icons.png') no-repeat scroll -42px -85px;
302
- }
303
- }
304
- }
305
- }
306
- }
307
- }
308
- }
309
-
310
- .new-article, .new-author {
311
- margin-bottom: 120px;
312
- hr {
313
- border-bottom: 1px solid #E2E3E4;
314
- margin-bottom: 30px;
315
- }
316
- .row {
317
- width: 100%;
318
- margin-bottom: 30px;
319
- &:after {
320
- content: "";
321
- display: table;
322
- clear: both;
323
- }
324
- .label {
325
- float: left;
326
- width: 140px;
327
- font-family: 'Roboto Condensed', sans-serif;
328
- font-size: 17px;
329
- color:#434343;
330
- h3 {
331
- padding: 10px 0px;
332
- font-weight: normal;
333
- letter-spacing: 0.03em;
334
- .required {
335
- color: #f00;
336
- }
337
- }
338
- }
339
- &.show {
340
- .input {
341
- padding-top: 15px;
342
- font-size: 16px;
343
- }
344
- }
345
- .input {
346
- float: left;
347
- width: 540px;
348
- a {
349
- color: $orange;
350
- }
351
- .hero-image {
352
- background: #f1f2f2;
353
- background-size: cover;
354
- background-position: center center;
355
- border: 1px solid #e2e3e4;
356
- height: 298px;
357
- width: 100%;
358
- position: relative;
359
- overflow: hidden;
360
- cursor: pointer;
361
- @include border-box();
362
- .choose-file {
363
- display: block;
364
- margin: 0 auto;
365
- position: relative;
366
- background-color: rgba(147,147,147,0.5);
367
- color: #ffffff;
368
- font-size: 19px;
369
- width: 210px;
370
- height: 80px;
371
- line-height: 80px;
372
- text-transform: uppercase;
373
- text-align: center;
374
- cursor: pointer;
375
- @include addTransition(0.3);
376
- margin-top: 110px;
377
- &:hover {
378
- background-color: lighten(rgba(147,147,147,0.5), 15%);
379
- }
380
- }
381
- .hidden {
382
- display: none;
383
- }
384
- .hero-image-value {
385
- position: absolute;
386
- left: 0;
387
- right: 0;
388
- margin-left: auto;
389
- margin-right: auto;
390
- width: 210px;
391
- height: 80px;
392
- line-height: 80px;
393
- font-size: 80px;
394
- overflow: hidden;
395
- cursor: pointer;
396
- top: 110px;
397
- opacity: 0;
398
- }
399
- &:hover {
400
- label {
401
- background: lighten(rgba(147,147,147,0.5), 20%);
402
- }
403
- }
404
- }
405
- input[type="text"] {
406
- background: transparent;
407
- border-bottom: 1px solid #e2e3e4;
408
- @include border-box();
409
- height: 44px;
410
- width: 100%;
411
- color: #5e5e5e;
412
- padding: 0px 10px;
413
- line-height: 43px;
414
- font-size: 16px;
415
- font-family: 'Ubuntu Mono';
416
- &.article-title, &.article-subtitle {
417
- font-size: 20px;
418
- }
419
- }
420
- textarea {
421
- font-family: 'Ubuntu Mono';
422
- background: transparent;
423
- border-bottom: 1px solid #e2e3e4;
424
- @include border-box();
425
- height: 44px;
426
- width: 100%;
427
- color: #5e5e5e;
428
- padding: 10px;
429
- font-size: 16px;
430
- line-height: 22px;
431
- resize: none;
432
- min-height: 208px;
433
- }
434
- > .checkbox {
435
- display: inline-block;
436
- width: 260px;
437
- margin-top: 25px;
438
- input[type=checkbox] {
439
- display: none;
440
- }
441
- &.first-row {
442
- margin-top: 0px;
443
- }
444
- .checkbox {
445
- color: #939393;
446
- }
447
- input[type=checkbox] + label span {
448
- display:inline-block;
449
- width:15px;
450
- height:15px;
451
- background: transparent image-url('checkbox-icon.png') no-repeat right top;
452
- cursor: pointer;
453
- margin: -2px 10px 0px 0px;
454
- }
455
- input[type=checkbox]:checked + label span {
456
- background: transparent image-url('checkbox-icon.png') no-repeat left top;
457
- }
458
- }
459
- .documents {
460
- position: relative;
461
- cursor: pointer;
462
- .choose-files {
463
- @include addTransition(0.3);
464
- border: 1px solid #ebebeb;
465
- background-color: #f2f2f2;
466
- width: 100%;
467
- @include border-box();
468
- height: 43px;
469
- text-align: center;
470
- color: $darkgrey;
471
- cursor: pointer;
472
- display: block;
473
- line-height: 43px;
474
- font-size: 15px;
475
- text-transform: uppercase;
476
- }
477
- .hidden {
478
- display: none;
479
- }
480
- .article-document-value {
481
- height: 45px;
482
- width: 100%;
483
- font-size: 45px;
484
- line-height: 45px;
485
- cursor: pointer;
486
- overflow: hidden;
487
- position: absolute;
488
- top: 0px;
489
- left: 0px;
490
- opacity: 0;
491
- }
492
- &:hover {
493
- .choose-files {
494
- background-color: darken(#f2f2f2, 15%);
495
- }
496
- }
497
- }
498
- &.input-text {
499
- position: relative;
500
- &:before {
501
- width: 1px;
502
- height: 10px;
503
- content: "";
504
- position: absolute;
505
- bottom: 0px;
506
- left: 0px;
507
- background-color: #e2e3e4;
508
- z-index: 1000;
509
- }
510
- &:after {
511
- width: 1px;
512
- height: 10px;
513
- content: "";
514
- position: absolute;
515
- bottom: 0px;
516
- right: 0px;
517
- background-color: #e2e3e4;
518
- z-index: 10;
519
- }
520
- }
521
- &.input-textarea {
522
- position: relative;
523
- &:before {
524
- width: 1px;
525
- height: 10px;
526
- content: "";
527
- position: absolute;
528
- bottom: 4px;
529
- left: 0px;
530
- background-color: #e2e3e4;
531
- z-index: 1000;
532
- }
533
- &:after {
534
- width: 1px;
535
- height: 10px;
536
- content: "";
537
- position: absolute;
538
- bottom: 4px;
539
- right: 0px;
540
- background-color: #e2e3e4;
541
- z-index: 10;
542
- }
543
- }
544
- }
545
- .additional {
546
- width: 260px;
547
- float: left;
548
- margin-left: 20px;
549
- label {
550
- color: #939393;
551
- margin-bottom: 5px;
552
- display: inline-block;
553
- }
554
- .btn-formatting-help {
555
- color: $orange;
556
- display: inline-block;
557
- margin-top: 10px;
558
- text-transform: uppercase;
559
- @include addTransition(0.3);
560
- &:hover {
561
- color: darken($orange, 15%);
562
- }
563
- }
564
- .add-new-author {
565
- text-transform: uppercase;
566
- color: $orange;
567
- @include addTransition(0.3);
568
- &:hover {
569
- color: darken($orange, 15%);
570
- }
571
- }
572
- img {
573
- cursor: pointer;
574
- }
575
- .short-hero-images-box {
576
- h2 {
577
- margin: 0;
578
- }
579
- .short-hero-images {
580
- height: 275px;
581
- overflow-y: scroll;
582
- &::-webkit-scrollbar {
583
- width: 5px;
584
- position: absolute;
585
- }
586
-
587
- &::-webkit-scrollbar-track {
588
- -webkit-box-shadow: inset 0 0 2px rgba(0,0,0,0.3);
589
- border-radius: 10px;
590
- }
591
-
592
- &::-webkit-scrollbar-thumb {
593
- border-radius: 10px;
594
- background-color: rgba(0,0,0,0.3);
595
- }
596
- .short-hero-image-box {
597
- width: 230px;
598
- height: 130px;
599
- overflow: hidden;
600
- display: block;
601
- margin-bottom: 2px;
602
- float: left;
603
- img {
604
- min-width: 230px;
605
- min-height: 130px;
606
- }
607
- }
608
- }
609
- br {
610
- display: none;
611
- }
612
- }
613
- }
614
- .btn-save, .btn-cancel {
615
- background: #434343;
616
- margin-right: 20px;
617
- color: #d6d6d6;
618
- margin-top: 30px;
619
- text-transform: uppercase;
620
- &:hover {
621
- background: lighten(#434343, 15%);
622
- }
623
- }
624
- .btn-save-publish {
625
- text-transform: uppercase;
626
- margin-right: 20px;
627
- margin-top: 30px;
628
- color: #d6d6d6;
629
- background: $orange;
630
- &:hover {
631
- background: lighten($orange, 15%);
632
- }
633
- }
634
- .hidden {
635
- display: none;
636
- }
637
- }
638
- }
639
-
640
- .span12 > .row {
641
- position: relative;
642
- .picture-box {
643
- position: absolute;
644
- top: 760px;
645
- right: 0px;
646
- width: 260px;
647
- h2 {
648
- margin-top: 0px;
649
- }
650
- .picture-preview, #pictures .picture-preview {
651
- float: left;
652
- margin-right: 28px;
653
- width: 92px;
654
- overflow: hidden;
655
- position: relative;
656
- cursor: pointer;
657
- .picture {
658
- width: 92px;
659
- height: 92px;
660
- overflow: hidden;
661
- img {
662
- min-height: 92px;
663
- min-width: 92px;
664
- }
665
- }
666
- .insert-image {
667
- background: transparent image-url('article-icons.png') no-repeat scroll 0px -194px;
668
- width: 15px;
669
- height: 30px;
670
- display: inline-block;
671
- float: left;
672
- &:hover {
673
- background: transparent image-url('article-icons.png') no-repeat scroll -50px -194px;
674
- }
675
- }
676
- .btn-delete-photo {
677
- background: transparent image-url('article-icons.png') no-repeat scroll 0px -244px;
678
- width: 12px;
679
- height: 30px;
680
- display: inline-block;
681
- float: right;
682
- cursor: pointer;
683
- &:hover {
684
- background: transparent image-url('article-icons.png') no-repeat scroll -50px -244px;
685
- }
686
- }
687
- .upload {
688
- display: block;
689
- width: 100%;
690
- height: 3px;
691
- margin-top: 5px;
692
- .progress {
693
- height: 3px;
694
- .bar {
695
- height: 3px;
696
- background-color: $orange;
697
- }
698
- }
699
- }
700
- #picture_image {
701
- position: absolute;
702
- height: 92px;
703
- width: 92px;
704
- font-size: 92px;
705
- line-height: 92px;
706
- top: 0px;
707
- left: 0px;
708
- cursor: pointer;
709
- opacity: 0;
710
- }
711
- img {
712
- border: 1px solid #e2e3e4;
713
- height: 90px;
714
- cursor: pointer;
715
- @include addTransition(0.3);
716
- }
717
- &:hover {
718
- img {
719
- border: 1px solid darken(#e2e3e4, 20%);
720
- }
721
- }
722
- }
723
- }
724
- }
725
-
726
- .alert {
727
- width: 100%;
728
- padding: 10px 0px;
729
- text-align: center;
730
- top: 60px;
731
- left: 0px;
732
- position: absolute;
733
- overflow: hidden;
734
- color: #fff;
735
- &.alert-error {
736
- border-bottom: 1px solid #ff0000;
737
- background: rgba(130, 0, 0, 0.9);
738
- .close {
739
- background-color: #FFFFFF;
740
- border: 1px solid #AA0000;
741
- }
742
- }
743
- &.alert-success {
744
- border-bottom: 1px solid #00ff00;
745
- background: rgba(0,130,0,0.9);
746
- .close {
747
- background-color: #FFFFFF;
748
- border: 1px solid #00AA00;
749
- }
750
- }
751
- .close {
752
- font-size: 24px;
753
- height: 25px;
754
- line-height: 25px;
755
- position: absolute;
756
- right: -1px;
757
- text-align: center;
758
- top: -1px;
759
- width: 25px;
760
- color: $darkgrey;
761
- cursor: pointer;
762
- }
763
- }
764
-
765
- #error_explanation {
766
- position: fixed;
767
- z-index: 9999;
768
- top: 60px;
769
- left: 0px;
770
- width: 100%;
771
- border-bottom: 1px solid #f00;
772
- background: rgba(130,0,0,0.9);
773
- padding-bottom: 10px;
774
- color: #fff;
775
- overflow: hidden;
776
- h2 {
777
- color: #fff;
778
- text-align: center;
779
- }
780
- ul {
781
- width: 935px;
782
- padding-left: 25px;
783
- margin: 0 auto;
784
- }
785
- .close {
786
- background-color: #FFFFFF;
787
- border-bottom: 1px solid #ff0000;
788
- border-left: 1px solid #ff0000;
789
- font-size: 24px;
790
- height: 25px;
791
- line-height: 25px;
792
- position: absolute;
793
- right: 0px;
794
- text-align: center;
795
- top: 0px;
796
- width: 25px;
797
- color: $darkgrey;
798
- cursor: pointer;
799
- }
800
- }
801
-
802
- #formatting_guide {
803
- position: fixed;
804
- width: 100%;
805
- height: 100%;
806
- z-index: 100;
807
- top: 0px;
808
- left: 0px;
809
- background: rgba(255,255,255,0.5);
810
- display: none;
811
- p, pre {
812
- padding-bottom: 10px;
813
- }
814
- .formatting_guide_inner {
815
- background: #ffffff;
816
- box-shadow: 0px 0px 20px $lightgrey;
817
- border-radius: 3px;
818
- position: fixed;
819
- width: 50%;
820
- height: 50%;
821
- overflow-y: scroll;
822
- margin: auto;
823
- padding: 20px;
824
- top: 0px;
825
- bottom: 0px;
826
- left: 0px;
827
- right: 0px;
828
- .btn-close-formatting {
829
- background: #434343;
830
- color: #d6d6d6;
831
- margin-top: 30px;
832
- text-transform: uppercase;
833
- &:hover {
834
- background: lighten(#434343, 15%);
835
- }
836
- }
837
- .btn-close-formatting-small {
838
- background: #434343;
839
- position: absolute;
840
- right: 0px;
841
- top: 0px;
842
- }
843
- }
844
- }
845
-
846
- .pagination {
847
- display:block;
848
- overflow:visible;
849
- margin:0px auto;
850
- width:100%;
851
- text-transform:uppercase;
852
- font-size:1.500em;
853
- padding: 30px 0 0 0;
854
- text-align:center;
855
- position:relative;
856
- a {
857
- color:$lightgrey;
858
- }
859
- a:hover {
860
- color:$darkgrey;
861
- }
862
- .newer, .older {
863
- position:absolute;
864
- display:inline-block;
865
- }
866
- .newer {left:0px;}
867
- .older {right:0px;}
868
- .prev a, .first a {
869
- float:left;
870
- background:image-url('ic_arrow_left.png') top left no-repeat;
871
- padding: 8px 0px 10px 50px;
872
- }
873
- .next a, .last a {
874
- float:right;
875
- background:image-url('ic_arrow_right.png') top right no-repeat;
876
- padding: 8px 50px 10px 0px;
877
- }
878
-
879
- .pages {
880
- font-size:0.7em;
881
- color:lighten($lightgrey,30%);
882
- a {
883
- color:lighten($lightgrey,30%);
884
- &:hover {
885
- color:$lightgrey;
886
- }
887
- }
888
- .current {
889
- color:$lightgrey;
890
- font-size:1.50em;
891
- }
892
- }
893
- }
894
-
895
- .top_link {
896
- background: transparent image-url('footer_icon.png') no-repeat scroll 0 0;
897
- margin: 80px auto;
898
- width: 57px;
899
- height: 57px;
900
- cursor: pointer;
901
- &:hover {
902
- background: transparent image-url('footer_icon.png') no-repeat scroll -100px 0;
903
- }
904
- }
905
-
906
- .field_with_errors {
907
- padding: 2px;
908
- background-color: red;
909
- display: table;
910
- }
911
-
912
- .login {
913
- width: 615px;
914
- margin: 0 auto;
915
- h1 {
916
- text-align: center;
917
- }
918
- label, input {
919
- display: inline-block;
920
- }
921
- label {
922
- float: left;
923
- color: #434343;
924
- line-height: 45px;
925
- margin-bottom: 30px;
926
- }
927
- input[type=text], input[type=password] {
928
- background: #ffffff;
929
- border: 1px solid #e2e3e4;
930
- height: 43px;
931
- width: 478px;
932
- color: #5e5e5e;
933
- padding: 0px 10px;
934
- line-height: 43px;
935
- font-family: 'Ubuntu Mono';
936
- font-size: 20px;
937
- float: right;
938
- }
939
- .email, .password, .forgot, .submit {
940
- height: 45px;
941
- }
942
- .email {
943
- margin-bottom: 30px;
944
- }
945
- .password {
946
- margin-bottom: 45px;
947
- }
948
- .submit {
949
- width: 500px;
950
- float: right;
951
- input[type=submit] {
952
- background: $orange;
953
- padding: 15px 25px;
954
- display: inline-block;
955
- margin-right: 30px;
956
- color: #e3e3e3;
957
- font-size: 18px;
958
- text-transform: uppercase;
959
- cursor: pointer;
960
- &:hover {
961
- background: lighten($orange, 15%);
962
- }
963
- }
964
- a {
965
- color: #aaaaaa;
966
- border-bottom: 1px solid #aaaaaa;
967
- font-size: 16px;
968
- }
969
- }
970
- }