wallaby 5.1.8 → 6.0.1

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 (741) hide show
  1. checksums.yaml +5 -5
  2. data/{MIT-LICENSE → LICENSE} +0 -0
  3. data/app/assets/images/wallaby/{422.png → bad_request.png} +0 -0
  4. data/app/assets/images/wallaby/{404.png → forbidden.png} +0 -0
  5. data/app/assets/images/wallaby/{500.png → internal_server_error.png} +0 -0
  6. data/app/assets/images/wallaby/not_found.png +0 -0
  7. data/app/assets/images/wallaby/not_implemented.png +0 -0
  8. data/app/assets/images/wallaby/unauthorized.png +0 -0
  9. data/app/assets/images/wallaby/unprocessable_entity.png +0 -0
  10. data/app/assets/javascripts/wallaby/auto_select.js +93 -66
  11. data/app/assets/javascripts/wallaby/base.js +12 -10
  12. data/app/assets/javascripts/wallaby/setup.js.erb +57 -47
  13. data/app/assets/stylesheets/wallaby/base.scss +7 -7
  14. data/app/assets/stylesheets/wallaby/base/_functions.scss +34 -0
  15. data/app/assets/stylesheets/wallaby/base/_layout.scss +55 -50
  16. data/app/assets/stylesheets/wallaby/base/_layout_desktop.scss +1 -7
  17. data/app/assets/stylesheets/wallaby/base/_mixins.scss +13 -9
  18. data/app/assets/stylesheets/wallaby/base/_override.scss +8 -0
  19. data/app/assets/stylesheets/wallaby/base/_vars.scss +1 -1
  20. data/app/assets/stylesheets/wallaby/components/_auto_select.scss +6 -3
  21. data/app/assets/stylesheets/wallaby/components/_pagination.scss +3 -2
  22. data/app/assets/stylesheets/wallaby/components/_query.scss +9 -5
  23. data/app/assets/stylesheets/wallaby/pages/_error.scss +3 -106
  24. data/app/assets/stylesheets/wallaby/pages/_index.scss +26 -25
  25. data/app/assets/stylesheets/wallaby/pages/_index_desktop.scss +0 -4
  26. data/app/assets/stylesheets/wallaby/pages/_show.scss +22 -0
  27. data/app/assets/stylesheets/wallaby/pages/_show_desktop.scss +14 -0
  28. data/app/views/layouts/wallaby/resources.csv.erb +1 -0
  29. data/app/views/layouts/wallaby/{application.html.erb → resources.html.erb} +2 -4
  30. data/app/views/layouts/wallaby/resources.json.erb +1 -0
  31. data/app/views/wallaby/resources/_footer.html.erb +1 -0
  32. data/app/views/wallaby/resources/_form.html.erb +2 -2
  33. data/app/views/wallaby/resources/_frontend.html.erb +4 -0
  34. data/app/views/wallaby/resources/_header.html.erb +28 -32
  35. data/app/views/wallaby/resources/_imodal.html.erb +2 -2
  36. data/app/views/wallaby/resources/_index_actions.html.erb +2 -2
  37. data/app/views/wallaby/resources/_index_filters.html.erb +3 -4
  38. data/app/views/wallaby/resources/_index_pagination.html.erb +34 -42
  39. data/app/views/wallaby/resources/_index_query.html.erb +7 -8
  40. data/app/views/wallaby/resources/_logo.html.erb +2 -1
  41. data/app/views/wallaby/resources/_navs.html.erb +11 -9
  42. data/app/views/wallaby/resources/_resource_navs.html.erb +17 -15
  43. data/app/views/wallaby/resources/_title.html.erb +1 -0
  44. data/app/views/wallaby/resources/_user_menu.html.erb +3 -2
  45. data/app/views/wallaby/resources/active_storage_html.rb +13 -0
  46. data/app/views/wallaby/resources/bad_request.json.jbuilder +2 -0
  47. data/app/views/wallaby/resources/edit.html.erb +2 -2
  48. data/app/views/wallaby/resources/error.html.erb +22 -0
  49. data/app/views/wallaby/{error.json.jbuilder → resources/error.json.jbuilder} +2 -0
  50. data/app/views/wallaby/resources/form.json.jbuilder +2 -0
  51. data/app/views/wallaby/resources/form/_active_storage.html.erb +27 -0
  52. data/app/views/wallaby/resources/form/_belongs_to.html.erb +35 -22
  53. data/app/views/wallaby/resources/form/_bigint.html.erb +1 -1
  54. data/app/views/wallaby/resources/form/_bigserial.html.erb +1 -1
  55. data/app/views/wallaby/resources/form/_binary.html.erb +1 -1
  56. data/app/views/wallaby/resources/form/_bit.html.erb +1 -1
  57. data/app/views/wallaby/resources/form/_bit_varying.html.erb +1 -1
  58. data/app/views/wallaby/resources/form/_blob.html.erb +1 -1
  59. data/app/views/wallaby/resources/form/_boolean.html.erb +9 -7
  60. data/app/views/wallaby/resources/form/_box.html.erb +1 -1
  61. data/app/views/wallaby/resources/form/_cidr.html.erb +1 -1
  62. data/app/views/wallaby/resources/form/_circle.html.erb +1 -1
  63. data/app/views/wallaby/resources/form/_color.html.erb +1 -1
  64. data/app/views/wallaby/resources/form/_date.html.erb +5 -4
  65. data/app/views/wallaby/resources/form/_daterange.html.erb +12 -10
  66. data/app/views/wallaby/resources/form/_datetime.html.erb +5 -4
  67. data/app/views/wallaby/resources/form/_decimal.html.erb +1 -1
  68. data/app/views/wallaby/resources/form/_dropdown.html.erb +2 -2
  69. data/app/views/wallaby/resources/form/_file.html.erb +1 -1
  70. data/app/views/wallaby/resources/form/_float.html.erb +2 -2
  71. data/app/views/wallaby/resources/form/_has_and_belongs_to_many.html.erb +3 -3
  72. data/app/views/wallaby/resources/form/_has_many.html.erb +3 -3
  73. data/app/views/wallaby/resources/form/_inet.html.erb +1 -1
  74. data/app/views/wallaby/resources/form/_int4range.html.erb +4 -4
  75. data/app/views/wallaby/resources/form/_int8range.html.erb +4 -4
  76. data/app/views/wallaby/resources/form/_integer.html.erb +1 -1
  77. data/app/views/wallaby/resources/form/_line.html.erb +1 -1
  78. data/app/views/wallaby/resources/form/_longblob.html.erb +1 -1
  79. data/app/views/wallaby/resources/form/_lseg.html.erb +1 -1
  80. data/app/views/wallaby/resources/form/_ltree.html.erb +1 -1
  81. data/app/views/wallaby/resources/form/_macaddr.html.erb +1 -1
  82. data/app/views/wallaby/resources/form/_mediumblob.html.erb +1 -1
  83. data/app/views/wallaby/resources/form/_money.html.erb +2 -2
  84. data/app/views/wallaby/resources/form/_numrange.html.erb +4 -4
  85. data/app/views/wallaby/resources/form/_password.html.erb +1 -1
  86. data/app/views/wallaby/resources/form/_point.html.erb +4 -4
  87. data/app/views/wallaby/resources/form/_serial.html.erb +1 -1
  88. data/app/views/wallaby/resources/form/_sti.html.erb +1 -1
  89. data/app/views/wallaby/resources/form/_string.html.erb +1 -1
  90. data/app/views/wallaby/resources/form/_time.html.erb +5 -4
  91. data/app/views/wallaby/resources/form/_tinyblob.html.erb +1 -1
  92. data/app/views/wallaby/resources/form/_tsrange.html.erb +12 -10
  93. data/app/views/wallaby/resources/form/_tstzrange.html.erb +12 -10
  94. data/app/views/wallaby/resources/form/_unsigned_bigint.html.erb +1 -1
  95. data/app/views/wallaby/resources/form/_unsigned_decimal.html.erb +1 -1
  96. data/app/views/wallaby/resources/form/_unsigned_float.html.erb +1 -1
  97. data/app/views/wallaby/resources/form/_unsigned_integer.html.erb +1 -1
  98. data/app/views/wallaby/resources/form/_uuid.html.erb +1 -1
  99. data/app/views/wallaby/resources/index.csv.erb +1 -1
  100. data/app/views/wallaby/resources/index.html.erb +2 -2
  101. data/app/views/wallaby/resources/index.json.jbuilder +8 -2
  102. data/app/views/wallaby/resources/index/{_money.html.erb → _link.csv.erb} +1 -1
  103. data/app/views/wallaby/resources/index/belongs_to_html.rb +15 -0
  104. data/app/views/wallaby/resources/index/bigint_html.rb +15 -0
  105. data/app/views/wallaby/resources/index/bigserial_html.rb +15 -0
  106. data/app/views/wallaby/resources/index/binary_html.rb +15 -0
  107. data/app/views/wallaby/resources/index/bit_html.rb +19 -0
  108. data/app/views/wallaby/resources/index/bit_varying_html.rb +19 -0
  109. data/app/views/wallaby/resources/index/blob_html.rb +15 -0
  110. data/app/views/wallaby/resources/index/boolean_html.rb +19 -0
  111. data/app/views/wallaby/resources/index/box_html.rb +11 -0
  112. data/app/views/wallaby/resources/index/cidr_html.rb +11 -0
  113. data/app/views/wallaby/resources/index/circle_html.rb +11 -0
  114. data/app/views/wallaby/resources/index/citext_html.rb +11 -0
  115. data/app/views/wallaby/resources/index/color_html.rb +20 -0
  116. data/app/views/wallaby/resources/index/date_html.rb +21 -0
  117. data/app/views/wallaby/resources/index/daterange_html.rb +22 -0
  118. data/app/views/wallaby/resources/index/datetime_html.rb +21 -0
  119. data/app/views/wallaby/resources/index/decimal_html.rb +15 -0
  120. data/app/views/wallaby/resources/index/email_html.rb +15 -0
  121. data/app/views/wallaby/resources/index/float_html.rb +15 -0
  122. data/app/views/wallaby/resources/index/has_and_belongs_to_many_html.rb +11 -0
  123. data/app/views/wallaby/resources/index/has_many_html.rb +25 -0
  124. data/app/views/wallaby/resources/index/has_one_html.rb +15 -0
  125. data/app/views/wallaby/resources/index/hstore_html.rb +11 -0
  126. data/app/views/wallaby/resources/index/inet_html.rb +23 -0
  127. data/app/views/wallaby/resources/index/int4range_html.rb +11 -0
  128. data/app/views/wallaby/resources/index/int8range_html.rb +11 -0
  129. data/app/views/wallaby/resources/index/integer_html.rb +15 -0
  130. data/app/views/wallaby/resources/index/json_html.rb +26 -0
  131. data/app/views/wallaby/resources/index/jsonb_html.rb +11 -0
  132. data/app/views/wallaby/resources/index/line_html.rb +26 -0
  133. data/app/views/wallaby/resources/index/link_html.rb +15 -0
  134. data/app/views/wallaby/resources/index/longblob_html.rb +15 -0
  135. data/app/views/wallaby/resources/index/longtext_html.rb +11 -0
  136. data/app/views/wallaby/resources/index/lseg_html.rb +11 -0
  137. data/app/views/wallaby/resources/index/ltree_html.rb +11 -0
  138. data/app/views/wallaby/resources/index/macaddr_html.rb +19 -0
  139. data/app/views/wallaby/resources/index/mediumblob_html.rb +15 -0
  140. data/app/views/wallaby/resources/index/mediumtext_html.rb +11 -0
  141. data/app/views/wallaby/resources/index/money_html.rb +15 -0
  142. data/app/views/wallaby/resources/index/numrange_html.rb +21 -0
  143. data/app/views/wallaby/resources/index/password_html.rb +19 -0
  144. data/app/views/wallaby/resources/index/path_html.rb +26 -0
  145. data/app/views/wallaby/resources/index/point_html.rb +23 -0
  146. data/app/views/wallaby/resources/index/polygon_html.rb +11 -0
  147. data/app/views/wallaby/resources/index/raw_html.rb +19 -0
  148. data/app/views/wallaby/resources/index/serial_html.rb +15 -0
  149. data/app/views/wallaby/resources/index/sti_html.rb +11 -0
  150. data/app/views/wallaby/resources/index/string_html.rb +26 -0
  151. data/app/views/wallaby/resources/index/text_html.rb +26 -0
  152. data/app/views/wallaby/resources/index/time_html.rb +20 -0
  153. data/app/views/wallaby/resources/index/tinyblob_html.rb +15 -0
  154. data/app/views/wallaby/resources/index/tinytext_html.rb +11 -0
  155. data/app/views/wallaby/resources/index/tsrange_html.rb +11 -0
  156. data/app/views/wallaby/resources/index/tstzrange_html.rb +11 -0
  157. data/app/views/wallaby/resources/index/tsvector_html.rb +11 -0
  158. data/app/views/wallaby/resources/index/unsigned_bigint_html.rb +15 -0
  159. data/app/views/wallaby/resources/index/unsigned_decimal_html.rb +15 -0
  160. data/app/views/wallaby/resources/index/unsigned_float_html.rb +15 -0
  161. data/app/views/wallaby/resources/index/unsigned_integer_html.rb +15 -0
  162. data/app/views/wallaby/resources/index/uuid_html.rb +11 -0
  163. data/app/views/wallaby/resources/index/xml_html.rb +11 -0
  164. data/app/views/wallaby/resources/new.html.erb +5 -2
  165. data/app/views/wallaby/resources/resource_actions_html.rb +15 -0
  166. data/app/views/wallaby/resources/show.html.erb +32 -18
  167. data/app/views/wallaby/resources/show.json.jbuilder +2 -0
  168. data/app/views/wallaby/resources/show/_cidr.html.erb +1 -1
  169. data/app/views/wallaby/resources/show/_color.html.erb +1 -1
  170. data/app/views/wallaby/resources/show/_inet.html.erb +1 -1
  171. data/app/views/wallaby/resources/{index/_belongs_to.html.erb → show/_link.html.erb} +1 -1
  172. data/lib/generators/wallaby/install/USAGE +20 -0
  173. data/lib/generators/wallaby/install/install_generator.rb +90 -0
  174. data/lib/generators/wallaby/install/templates/application_authorizer.rb.erb +40 -0
  175. data/lib/generators/wallaby/install/templates/application_controller.rb.erb +148 -0
  176. data/lib/generators/wallaby/install/templates/application_decorator.rb.erb +10 -0
  177. data/lib/generators/wallaby/install/templates/application_paginator.rb.erb +30 -0
  178. data/lib/generators/wallaby/install/templates/application_servicer.rb.erb +50 -0
  179. data/lib/generators/wallaby/install/templates/initializer.rb.erb +58 -0
  180. data/lib/wallaby.rb +7 -24
  181. data/lib/wallaby/ui_engine.rb +32 -0
  182. data/lib/wallaby/version.rb +4 -1
  183. data/lib/wallaby/views.rb +17 -0
  184. data/vendor/assets/javascripts/codemirror/5.49.2/addon/comment/comment.js +209 -0
  185. data/vendor/assets/javascripts/codemirror/5.49.2/addon/comment/continuecomment.js +113 -0
  186. data/vendor/assets/javascripts/codemirror/5.49.2/addon/dialog/dialog.css +32 -0
  187. data/vendor/assets/javascripts/codemirror/5.49.2/addon/dialog/dialog.js +161 -0
  188. data/vendor/assets/javascripts/codemirror/5.49.2/addon/display/autorefresh.js +47 -0
  189. data/vendor/assets/javascripts/codemirror/5.49.2/addon/display/fullscreen.css +6 -0
  190. data/vendor/assets/javascripts/codemirror/5.49.2/addon/display/fullscreen.js +41 -0
  191. data/vendor/assets/javascripts/codemirror/5.49.2/addon/display/panel.js +127 -0
  192. data/vendor/assets/javascripts/codemirror/5.49.2/addon/display/placeholder.js +63 -0
  193. data/vendor/assets/javascripts/codemirror/5.49.2/addon/display/rulers.js +51 -0
  194. data/vendor/assets/javascripts/codemirror/5.49.2/addon/edit/closebrackets.js +191 -0
  195. data/vendor/assets/javascripts/codemirror/5.49.2/addon/edit/closetag.js +184 -0
  196. data/vendor/assets/javascripts/codemirror/5.49.2/addon/edit/continuelist.js +99 -0
  197. data/vendor/assets/javascripts/codemirror/5.49.2/addon/edit/matchbrackets.js +150 -0
  198. data/vendor/assets/javascripts/codemirror/5.49.2/addon/edit/matchtags.js +66 -0
  199. data/vendor/assets/javascripts/codemirror/5.49.2/addon/edit/trailingspace.js +27 -0
  200. data/vendor/assets/javascripts/codemirror/5.49.2/addon/fold/brace-fold.js +105 -0
  201. data/vendor/assets/javascripts/codemirror/5.49.2/addon/fold/comment-fold.js +59 -0
  202. data/vendor/assets/javascripts/codemirror/5.49.2/addon/fold/foldcode.js +152 -0
  203. data/vendor/assets/javascripts/codemirror/5.49.2/addon/fold/foldgutter.css +20 -0
  204. data/vendor/assets/javascripts/codemirror/5.49.2/addon/fold/foldgutter.js +163 -0
  205. data/vendor/assets/javascripts/codemirror/5.49.2/addon/fold/indent-fold.js +48 -0
  206. data/vendor/assets/javascripts/codemirror/5.49.2/addon/fold/markdown-fold.js +49 -0
  207. data/vendor/assets/javascripts/codemirror/5.49.2/addon/fold/xml-fold.js +184 -0
  208. data/vendor/assets/javascripts/codemirror/5.49.2/addon/hint/anyword-hint.js +41 -0
  209. data/vendor/assets/javascripts/codemirror/5.49.2/addon/hint/css-hint.js +60 -0
  210. data/vendor/assets/javascripts/codemirror/5.49.2/addon/hint/html-hint.js +350 -0
  211. data/vendor/assets/javascripts/codemirror/5.49.2/addon/hint/javascript-hint.js +157 -0
  212. data/vendor/assets/javascripts/codemirror/5.49.2/addon/hint/show-hint.css +36 -0
  213. data/vendor/assets/javascripts/codemirror/5.49.2/addon/hint/show-hint.js +460 -0
  214. data/vendor/assets/javascripts/codemirror/5.49.2/addon/hint/sql-hint.js +304 -0
  215. data/vendor/assets/javascripts/codemirror/5.49.2/addon/hint/xml-hint.js +123 -0
  216. data/vendor/assets/javascripts/codemirror/5.49.2/addon/lint/coffeescript-lint.js +47 -0
  217. data/vendor/assets/javascripts/codemirror/5.49.2/addon/lint/css-lint.js +40 -0
  218. data/vendor/assets/javascripts/codemirror/5.49.2/addon/lint/html-lint.js +59 -0
  219. data/vendor/assets/javascripts/codemirror/5.49.2/addon/lint/javascript-lint.js +63 -0
  220. data/vendor/assets/javascripts/codemirror/5.49.2/addon/lint/json-lint.js +40 -0
  221. data/vendor/assets/javascripts/codemirror/5.49.2/addon/lint/lint.css +73 -0
  222. data/vendor/assets/javascripts/codemirror/5.49.2/addon/lint/lint.js +252 -0
  223. data/vendor/assets/javascripts/codemirror/5.49.2/addon/lint/yaml-lint.js +41 -0
  224. data/vendor/assets/javascripts/codemirror/5.49.2/addon/merge/merge.css +119 -0
  225. data/vendor/assets/javascripts/codemirror/5.49.2/addon/merge/merge.js +1002 -0
  226. data/vendor/assets/javascripts/codemirror/5.49.2/addon/mode/loadmode.js +64 -0
  227. data/vendor/assets/javascripts/codemirror/5.49.2/addon/mode/multiplex.js +131 -0
  228. data/vendor/assets/javascripts/codemirror/5.49.2/addon/mode/multiplex_test.js +33 -0
  229. data/vendor/assets/javascripts/codemirror/5.49.2/addon/mode/overlay.js +90 -0
  230. data/vendor/assets/javascripts/codemirror/5.49.2/addon/mode/simple.js +216 -0
  231. data/vendor/assets/javascripts/codemirror/5.49.2/addon/runmode/colorize.js +40 -0
  232. data/vendor/assets/javascripts/codemirror/5.49.2/addon/runmode/runmode-standalone.js +158 -0
  233. data/vendor/assets/javascripts/codemirror/5.49.2/addon/runmode/runmode.js +72 -0
  234. data/vendor/assets/javascripts/codemirror/5.49.2/addon/runmode/runmode.node.js +197 -0
  235. data/vendor/assets/javascripts/codemirror/5.49.2/addon/scroll/annotatescrollbar.js +122 -0
  236. data/vendor/assets/javascripts/codemirror/5.49.2/addon/scroll/scrollpastend.js +48 -0
  237. data/vendor/assets/javascripts/codemirror/5.49.2/addon/scroll/simplescrollbars.css +66 -0
  238. data/vendor/assets/javascripts/codemirror/5.49.2/addon/scroll/simplescrollbars.js +152 -0
  239. data/vendor/assets/javascripts/codemirror/5.49.2/addon/search/jump-to-line.js +50 -0
  240. data/vendor/assets/javascripts/codemirror/5.49.2/addon/search/match-highlighter.js +165 -0
  241. data/vendor/assets/javascripts/codemirror/5.49.2/addon/search/matchesonscrollbar.css +8 -0
  242. data/vendor/assets/javascripts/codemirror/5.49.2/addon/search/matchesonscrollbar.js +97 -0
  243. data/vendor/assets/javascripts/codemirror/5.49.2/addon/search/search.js +260 -0
  244. data/vendor/assets/javascripts/codemirror/5.49.2/addon/search/searchcursor.js +293 -0
  245. data/vendor/assets/javascripts/codemirror/5.49.2/addon/selection/active-line.js +72 -0
  246. data/vendor/assets/javascripts/codemirror/5.49.2/addon/selection/mark-selection.js +119 -0
  247. data/vendor/assets/javascripts/codemirror/5.49.2/addon/selection/selection-pointer.js +98 -0
  248. data/vendor/assets/javascripts/codemirror/5.49.2/addon/tern/tern.css +87 -0
  249. data/vendor/assets/javascripts/codemirror/5.49.2/addon/tern/tern.js +718 -0
  250. data/vendor/assets/javascripts/codemirror/5.49.2/addon/tern/worker.js +44 -0
  251. data/vendor/assets/javascripts/codemirror/5.49.2/addon/wrap/hardwrap.js +145 -0
  252. data/vendor/assets/javascripts/codemirror/5.49.2/lib/codemirror.js +9783 -0
  253. data/vendor/assets/javascripts/codemirror/5.49.2/mode/apl/apl.js +174 -0
  254. data/vendor/assets/javascripts/codemirror/5.49.2/mode/apl/index.html +72 -0
  255. data/vendor/assets/javascripts/codemirror/5.49.2/mode/asciiarmor/asciiarmor.js +74 -0
  256. data/vendor/assets/javascripts/codemirror/5.49.2/mode/asciiarmor/index.html +46 -0
  257. data/vendor/assets/javascripts/codemirror/5.49.2/mode/asn.1/asn.1.js +204 -0
  258. data/vendor/assets/javascripts/codemirror/5.49.2/mode/asn.1/index.html +78 -0
  259. data/vendor/assets/javascripts/codemirror/5.49.2/mode/asterisk/asterisk.js +220 -0
  260. data/vendor/assets/javascripts/codemirror/5.49.2/mode/asterisk/index.html +155 -0
  261. data/vendor/assets/javascripts/codemirror/5.49.2/mode/brainfuck/brainfuck.js +85 -0
  262. data/vendor/assets/javascripts/codemirror/5.49.2/mode/brainfuck/index.html +85 -0
  263. data/vendor/assets/javascripts/codemirror/5.49.2/mode/clike/clike.js +935 -0
  264. data/vendor/assets/javascripts/codemirror/5.49.2/mode/clike/index.html +380 -0
  265. data/vendor/assets/javascripts/codemirror/5.49.2/mode/clike/scala.html +767 -0
  266. data/vendor/assets/javascripts/codemirror/5.49.2/mode/clike/test.js +165 -0
  267. data/vendor/assets/javascripts/codemirror/5.49.2/mode/clojure/clojure.js +292 -0
  268. data/vendor/assets/javascripts/codemirror/5.49.2/mode/clojure/index.html +95 -0
  269. data/vendor/assets/javascripts/codemirror/5.49.2/mode/clojure/test.js +384 -0
  270. data/vendor/assets/javascripts/codemirror/5.49.2/mode/cmake/cmake.js +97 -0
  271. data/vendor/assets/javascripts/codemirror/5.49.2/mode/cmake/index.html +129 -0
  272. data/vendor/assets/javascripts/codemirror/5.49.2/mode/cobol/cobol.js +255 -0
  273. data/vendor/assets/javascripts/codemirror/5.49.2/mode/cobol/index.html +210 -0
  274. data/vendor/assets/javascripts/codemirror/5.49.2/mode/coffeescript/coffeescript.js +359 -0
  275. data/vendor/assets/javascripts/codemirror/5.49.2/mode/coffeescript/index.html +740 -0
  276. data/vendor/assets/javascripts/codemirror/5.49.2/mode/commonlisp/commonlisp.js +124 -0
  277. data/vendor/assets/javascripts/codemirror/5.49.2/mode/commonlisp/index.html +177 -0
  278. data/vendor/assets/javascripts/codemirror/5.49.2/mode/crystal/crystal.js +433 -0
  279. data/vendor/assets/javascripts/codemirror/5.49.2/mode/crystal/index.html +116 -0
  280. data/vendor/assets/javascripts/codemirror/5.49.2/mode/css/css.js +831 -0
  281. data/vendor/assets/javascripts/codemirror/5.49.2/mode/css/gss.html +104 -0
  282. data/vendor/assets/javascripts/codemirror/5.49.2/mode/css/gss_test.js +17 -0
  283. data/vendor/assets/javascripts/codemirror/5.49.2/mode/css/index.html +75 -0
  284. data/vendor/assets/javascripts/codemirror/5.49.2/mode/css/less.html +152 -0
  285. data/vendor/assets/javascripts/codemirror/5.49.2/mode/css/less_test.js +54 -0
  286. data/vendor/assets/javascripts/codemirror/5.49.2/mode/css/scss.html +158 -0
  287. data/vendor/assets/javascripts/codemirror/5.49.2/mode/css/scss_test.js +110 -0
  288. data/vendor/assets/javascripts/codemirror/5.49.2/mode/css/test.js +217 -0
  289. data/vendor/assets/javascripts/codemirror/5.49.2/mode/cypher/cypher.js +150 -0
  290. data/vendor/assets/javascripts/codemirror/5.49.2/mode/cypher/index.html +64 -0
  291. data/vendor/assets/javascripts/codemirror/5.49.2/mode/cypher/test.js +37 -0
  292. data/vendor/assets/javascripts/codemirror/5.49.2/mode/d/d.js +223 -0
  293. data/vendor/assets/javascripts/codemirror/5.49.2/mode/d/index.html +273 -0
  294. data/vendor/assets/javascripts/codemirror/5.49.2/mode/d/test.js +11 -0
  295. data/vendor/assets/javascripts/codemirror/5.49.2/mode/dart/dart.js +166 -0
  296. data/vendor/assets/javascripts/codemirror/5.49.2/mode/dart/index.html +71 -0
  297. data/vendor/assets/javascripts/codemirror/5.49.2/mode/diff/diff.js +47 -0
  298. data/vendor/assets/javascripts/codemirror/5.49.2/mode/diff/index.html +117 -0
  299. data/vendor/assets/javascripts/codemirror/5.49.2/mode/django/django.js +356 -0
  300. data/vendor/assets/javascripts/codemirror/5.49.2/mode/django/index.html +73 -0
  301. data/vendor/assets/javascripts/codemirror/5.49.2/mode/dockerfile/dockerfile.js +211 -0
  302. data/vendor/assets/javascripts/codemirror/5.49.2/mode/dockerfile/index.html +73 -0
  303. data/vendor/assets/javascripts/codemirror/5.49.2/mode/dockerfile/test.js +128 -0
  304. data/vendor/assets/javascripts/codemirror/5.49.2/mode/dtd/dtd.js +142 -0
  305. data/vendor/assets/javascripts/codemirror/5.49.2/mode/dtd/index.html +89 -0
  306. data/vendor/assets/javascripts/codemirror/5.49.2/mode/dylan/dylan.js +352 -0
  307. data/vendor/assets/javascripts/codemirror/5.49.2/mode/dylan/index.html +407 -0
  308. data/vendor/assets/javascripts/codemirror/5.49.2/mode/dylan/test.js +88 -0
  309. data/vendor/assets/javascripts/codemirror/5.49.2/mode/ebnf/ebnf.js +195 -0
  310. data/vendor/assets/javascripts/codemirror/5.49.2/mode/ebnf/index.html +102 -0
  311. data/vendor/assets/javascripts/codemirror/5.49.2/mode/ecl/ecl.js +206 -0
  312. data/vendor/assets/javascripts/codemirror/5.49.2/mode/ecl/index.html +52 -0
  313. data/vendor/assets/javascripts/codemirror/5.49.2/mode/eiffel/eiffel.js +160 -0
  314. data/vendor/assets/javascripts/codemirror/5.49.2/mode/eiffel/index.html +429 -0
  315. data/vendor/assets/javascripts/codemirror/5.49.2/mode/elm/elm.js +205 -0
  316. data/vendor/assets/javascripts/codemirror/5.49.2/mode/elm/index.html +61 -0
  317. data/vendor/assets/javascripts/codemirror/5.49.2/mode/erlang/erlang.js +619 -0
  318. data/vendor/assets/javascripts/codemirror/5.49.2/mode/erlang/index.html +76 -0
  319. data/vendor/assets/javascripts/codemirror/5.49.2/mode/factor/factor.js +85 -0
  320. data/vendor/assets/javascripts/codemirror/5.49.2/mode/factor/index.html +77 -0
  321. data/vendor/assets/javascripts/codemirror/5.49.2/mode/fcl/fcl.js +173 -0
  322. data/vendor/assets/javascripts/codemirror/5.49.2/mode/fcl/index.html +108 -0
  323. data/vendor/assets/javascripts/codemirror/5.49.2/mode/forth/forth.js +180 -0
  324. data/vendor/assets/javascripts/codemirror/5.49.2/mode/forth/index.html +75 -0
  325. data/vendor/assets/javascripts/codemirror/5.49.2/mode/fortran/fortran.js +188 -0
  326. data/vendor/assets/javascripts/codemirror/5.49.2/mode/fortran/index.html +81 -0
  327. data/vendor/assets/javascripts/codemirror/5.49.2/mode/gas/gas.js +345 -0
  328. data/vendor/assets/javascripts/codemirror/5.49.2/mode/gas/index.html +68 -0
  329. data/vendor/assets/javascripts/codemirror/5.49.2/mode/gfm/gfm.js +129 -0
  330. data/vendor/assets/javascripts/codemirror/5.49.2/mode/gfm/index.html +136 -0
  331. data/vendor/assets/javascripts/codemirror/5.49.2/mode/gfm/test.js +198 -0
  332. data/vendor/assets/javascripts/codemirror/5.49.2/mode/gherkin/gherkin.js +178 -0
  333. data/vendor/assets/javascripts/codemirror/5.49.2/mode/gherkin/index.html +48 -0
  334. data/vendor/assets/javascripts/codemirror/5.49.2/mode/go/go.js +187 -0
  335. data/vendor/assets/javascripts/codemirror/5.49.2/mode/go/index.html +85 -0
  336. data/vendor/assets/javascripts/codemirror/5.49.2/mode/groovy/groovy.js +233 -0
  337. data/vendor/assets/javascripts/codemirror/5.49.2/mode/groovy/index.html +84 -0
  338. data/vendor/assets/javascripts/codemirror/5.49.2/mode/haml/haml.js +161 -0
  339. data/vendor/assets/javascripts/codemirror/5.49.2/mode/haml/index.html +79 -0
  340. data/vendor/assets/javascripts/codemirror/5.49.2/mode/haml/test.js +97 -0
  341. data/vendor/assets/javascripts/codemirror/5.49.2/mode/handlebars/handlebars.js +70 -0
  342. data/vendor/assets/javascripts/codemirror/5.49.2/mode/handlebars/index.html +82 -0
  343. data/vendor/assets/javascripts/codemirror/5.49.2/mode/haskell-literate/haskell-literate.js +43 -0
  344. data/vendor/assets/javascripts/codemirror/5.49.2/mode/haskell-literate/index.html +282 -0
  345. data/vendor/assets/javascripts/codemirror/5.49.2/mode/haskell/haskell.js +268 -0
  346. data/vendor/assets/javascripts/codemirror/5.49.2/mode/haskell/index.html +73 -0
  347. data/vendor/assets/javascripts/codemirror/5.49.2/mode/haxe/haxe.js +515 -0
  348. data/vendor/assets/javascripts/codemirror/5.49.2/mode/haxe/index.html +124 -0
  349. data/vendor/assets/javascripts/codemirror/5.49.2/mode/htmlembedded/htmlembedded.js +37 -0
  350. data/vendor/assets/javascripts/codemirror/5.49.2/mode/htmlembedded/index.html +60 -0
  351. data/vendor/assets/javascripts/codemirror/5.49.2/mode/htmlmixed/htmlmixed.js +152 -0
  352. data/vendor/assets/javascripts/codemirror/5.49.2/mode/htmlmixed/index.html +100 -0
  353. data/vendor/assets/javascripts/codemirror/5.49.2/mode/http/http.js +113 -0
  354. data/vendor/assets/javascripts/codemirror/5.49.2/mode/http/index.html +45 -0
  355. data/vendor/assets/javascripts/codemirror/5.49.2/mode/idl/idl.js +290 -0
  356. data/vendor/assets/javascripts/codemirror/5.49.2/mode/idl/index.html +65 -0
  357. data/vendor/assets/javascripts/codemirror/5.49.2/mode/index.html +165 -0
  358. data/vendor/assets/javascripts/codemirror/5.49.2/mode/javascript/index.html +114 -0
  359. data/vendor/assets/javascripts/codemirror/5.49.2/mode/javascript/javascript.js +930 -0
  360. data/vendor/assets/javascripts/codemirror/5.49.2/mode/javascript/json-ld.html +72 -0
  361. data/vendor/assets/javascripts/codemirror/5.49.2/mode/javascript/test.js +513 -0
  362. data/vendor/assets/javascripts/codemirror/5.49.2/mode/javascript/typescript.html +62 -0
  363. data/vendor/assets/javascripts/codemirror/5.49.2/mode/jinja2/index.html +54 -0
  364. data/vendor/assets/javascripts/codemirror/5.49.2/mode/jinja2/jinja2.js +146 -0
  365. data/vendor/assets/javascripts/codemirror/5.49.2/mode/jsx/index.html +89 -0
  366. data/vendor/assets/javascripts/codemirror/5.49.2/mode/jsx/jsx.js +148 -0
  367. data/vendor/assets/javascripts/codemirror/5.49.2/mode/jsx/test.js +91 -0
  368. data/vendor/assets/javascripts/codemirror/5.49.2/mode/julia/index.html +196 -0
  369. data/vendor/assets/javascripts/codemirror/5.49.2/mode/julia/julia.js +429 -0
  370. data/vendor/assets/javascripts/codemirror/5.49.2/mode/livescript/index.html +459 -0
  371. data/vendor/assets/javascripts/codemirror/5.49.2/mode/livescript/livescript.js +280 -0
  372. data/vendor/assets/javascripts/codemirror/5.49.2/mode/lua/index.html +85 -0
  373. data/vendor/assets/javascripts/codemirror/5.49.2/mode/lua/lua.js +159 -0
  374. data/vendor/assets/javascripts/codemirror/5.49.2/mode/markdown/index.html +412 -0
  375. data/vendor/assets/javascripts/codemirror/5.49.2/mode/markdown/markdown.js +883 -0
  376. data/vendor/assets/javascripts/codemirror/5.49.2/mode/markdown/test.js +1317 -0
  377. data/vendor/assets/javascripts/codemirror/5.49.2/mode/mathematica/index.html +72 -0
  378. data/vendor/assets/javascripts/codemirror/5.49.2/mode/mathematica/mathematica.js +176 -0
  379. data/vendor/assets/javascripts/codemirror/5.49.2/mode/mbox/index.html +44 -0
  380. data/vendor/assets/javascripts/codemirror/5.49.2/mode/mbox/mbox.js +129 -0
  381. data/vendor/assets/javascripts/codemirror/5.49.2/mode/meta.js +219 -0
  382. data/vendor/assets/javascripts/codemirror/5.49.2/mode/mirc/index.html +161 -0
  383. data/vendor/assets/javascripts/codemirror/5.49.2/mode/mirc/mirc.js +193 -0
  384. data/vendor/assets/javascripts/codemirror/5.49.2/mode/mllike/index.html +198 -0
  385. data/vendor/assets/javascripts/codemirror/5.49.2/mode/mllike/mllike.js +359 -0
  386. data/vendor/assets/javascripts/codemirror/5.49.2/mode/modelica/index.html +67 -0
  387. data/vendor/assets/javascripts/codemirror/5.49.2/mode/modelica/modelica.js +245 -0
  388. data/vendor/assets/javascripts/codemirror/5.49.2/mode/mscgen/index.html +151 -0
  389. data/vendor/assets/javascripts/codemirror/5.49.2/mode/mscgen/mscgen.js +175 -0
  390. data/vendor/assets/javascripts/codemirror/5.49.2/mode/mscgen/mscgen_test.js +84 -0
  391. data/vendor/assets/javascripts/codemirror/5.49.2/mode/mscgen/msgenny_test.js +77 -0
  392. data/vendor/assets/javascripts/codemirror/5.49.2/mode/mscgen/xu_test.js +87 -0
  393. data/vendor/assets/javascripts/codemirror/5.49.2/mode/mumps/index.html +85 -0
  394. data/vendor/assets/javascripts/codemirror/5.49.2/mode/mumps/mumps.js +148 -0
  395. data/vendor/assets/javascripts/codemirror/5.49.2/mode/nginx/index.html +181 -0
  396. data/vendor/assets/javascripts/codemirror/5.49.2/mode/nginx/nginx.js +178 -0
  397. data/vendor/assets/javascripts/codemirror/5.49.2/mode/nsis/index.html +80 -0
  398. data/vendor/assets/javascripts/codemirror/5.49.2/mode/nsis/nsis.js +95 -0
  399. data/vendor/assets/javascripts/codemirror/5.49.2/mode/ntriples/index.html +70 -0
  400. data/vendor/assets/javascripts/codemirror/5.49.2/mode/ntriples/ntriples.js +195 -0
  401. data/vendor/assets/javascripts/codemirror/5.49.2/mode/octave/index.html +84 -0
  402. data/vendor/assets/javascripts/codemirror/5.49.2/mode/octave/octave.js +139 -0
  403. data/vendor/assets/javascripts/codemirror/5.49.2/mode/oz/index.html +59 -0
  404. data/vendor/assets/javascripts/codemirror/5.49.2/mode/oz/oz.js +252 -0
  405. data/vendor/assets/javascripts/codemirror/5.49.2/mode/pascal/index.html +61 -0
  406. data/vendor/assets/javascripts/codemirror/5.49.2/mode/pascal/pascal.js +121 -0
  407. data/vendor/assets/javascripts/codemirror/5.49.2/mode/pegjs/index.html +66 -0
  408. data/vendor/assets/javascripts/codemirror/5.49.2/mode/pegjs/pegjs.js +114 -0
  409. data/vendor/assets/javascripts/codemirror/5.49.2/mode/perl/index.html +75 -0
  410. data/vendor/assets/javascripts/codemirror/5.49.2/mode/perl/perl.js +837 -0
  411. data/vendor/assets/javascripts/codemirror/5.49.2/mode/php/index.html +64 -0
  412. data/vendor/assets/javascripts/codemirror/5.49.2/mode/php/php.js +234 -0
  413. data/vendor/assets/javascripts/codemirror/5.49.2/mode/php/test.js +154 -0
  414. data/vendor/assets/javascripts/codemirror/5.49.2/mode/pig/index.html +53 -0
  415. data/vendor/assets/javascripts/codemirror/5.49.2/mode/pig/pig.js +178 -0
  416. data/vendor/assets/javascripts/codemirror/5.49.2/mode/powershell/index.html +205 -0
  417. data/vendor/assets/javascripts/codemirror/5.49.2/mode/powershell/powershell.js +398 -0
  418. data/vendor/assets/javascripts/codemirror/5.49.2/mode/powershell/test.js +74 -0
  419. data/vendor/assets/javascripts/codemirror/5.49.2/mode/properties/index.html +53 -0
  420. data/vendor/assets/javascripts/codemirror/5.49.2/mode/properties/properties.js +78 -0
  421. data/vendor/assets/javascripts/codemirror/5.49.2/mode/protobuf/index.html +104 -0
  422. data/vendor/assets/javascripts/codemirror/5.49.2/mode/protobuf/protobuf.js +69 -0
  423. data/vendor/assets/javascripts/codemirror/5.49.2/mode/pug/index.html +70 -0
  424. data/vendor/assets/javascripts/codemirror/5.49.2/mode/pug/pug.js +591 -0
  425. data/vendor/assets/javascripts/codemirror/5.49.2/mode/puppet/index.html +121 -0
  426. data/vendor/assets/javascripts/codemirror/5.49.2/mode/puppet/puppet.js +220 -0
  427. data/vendor/assets/javascripts/codemirror/5.49.2/mode/python/index.html +207 -0
  428. data/vendor/assets/javascripts/codemirror/5.49.2/mode/python/python.js +399 -0
  429. data/vendor/assets/javascripts/codemirror/5.49.2/mode/python/test.js +44 -0
  430. data/vendor/assets/javascripts/codemirror/5.49.2/mode/q/index.html +144 -0
  431. data/vendor/assets/javascripts/codemirror/5.49.2/mode/q/q.js +139 -0
  432. data/vendor/assets/javascripts/codemirror/5.49.2/mode/r/index.html +88 -0
  433. data/vendor/assets/javascripts/codemirror/5.49.2/mode/r/r.js +190 -0
  434. data/vendor/assets/javascripts/codemirror/5.49.2/mode/rpm/changes/index.html +66 -0
  435. data/vendor/assets/javascripts/codemirror/5.49.2/mode/rpm/index.html +149 -0
  436. data/vendor/assets/javascripts/codemirror/5.49.2/mode/rpm/rpm.js +109 -0
  437. data/vendor/assets/javascripts/codemirror/5.49.2/mode/rst/index.html +535 -0
  438. data/vendor/assets/javascripts/codemirror/5.49.2/mode/rst/rst.js +557 -0
  439. data/vendor/assets/javascripts/codemirror/5.49.2/mode/ruby/index.html +183 -0
  440. data/vendor/assets/javascripts/codemirror/5.49.2/mode/ruby/ruby.js +298 -0
  441. data/vendor/assets/javascripts/codemirror/5.49.2/mode/ruby/test.js +23 -0
  442. data/vendor/assets/javascripts/codemirror/5.49.2/mode/rust/index.html +64 -0
  443. data/vendor/assets/javascripts/codemirror/5.49.2/mode/rust/rust.js +72 -0
  444. data/vendor/assets/javascripts/codemirror/5.49.2/mode/rust/test.js +39 -0
  445. data/vendor/assets/javascripts/codemirror/5.49.2/mode/sas/index.html +81 -0
  446. data/vendor/assets/javascripts/codemirror/5.49.2/mode/sas/sas.js +303 -0
  447. data/vendor/assets/javascripts/codemirror/5.49.2/mode/sass/index.html +68 -0
  448. data/vendor/assets/javascripts/codemirror/5.49.2/mode/sass/sass.js +454 -0
  449. data/vendor/assets/javascripts/codemirror/5.49.2/mode/sass/test.js +122 -0
  450. data/vendor/assets/javascripts/codemirror/5.49.2/mode/scheme/index.html +77 -0
  451. data/vendor/assets/javascripts/codemirror/5.49.2/mode/scheme/scheme.js +265 -0
  452. data/vendor/assets/javascripts/codemirror/5.49.2/mode/shell/index.html +66 -0
  453. data/vendor/assets/javascripts/codemirror/5.49.2/mode/shell/shell.js +152 -0
  454. data/vendor/assets/javascripts/codemirror/5.49.2/mode/shell/test.js +73 -0
  455. data/vendor/assets/javascripts/codemirror/5.49.2/mode/sieve/index.html +93 -0
  456. data/vendor/assets/javascripts/codemirror/5.49.2/mode/sieve/sieve.js +193 -0
  457. data/vendor/assets/javascripts/codemirror/5.49.2/mode/slim/index.html +96 -0
  458. data/vendor/assets/javascripts/codemirror/5.49.2/mode/slim/slim.js +575 -0
  459. data/vendor/assets/javascripts/codemirror/5.49.2/mode/slim/test.js +96 -0
  460. data/vendor/assets/javascripts/codemirror/5.49.2/mode/smalltalk/index.html +68 -0
  461. data/vendor/assets/javascripts/codemirror/5.49.2/mode/smalltalk/smalltalk.js +168 -0
  462. data/vendor/assets/javascripts/codemirror/5.49.2/mode/smarty/index.html +138 -0
  463. data/vendor/assets/javascripts/codemirror/5.49.2/mode/smarty/smarty.js +225 -0
  464. data/vendor/assets/javascripts/codemirror/5.49.2/mode/solr/index.html +57 -0
  465. data/vendor/assets/javascripts/codemirror/5.49.2/mode/solr/solr.js +104 -0
  466. data/vendor/assets/javascripts/codemirror/5.49.2/mode/soy/index.html +68 -0
  467. data/vendor/assets/javascripts/codemirror/5.49.2/mode/soy/soy.js +437 -0
  468. data/vendor/assets/javascripts/codemirror/5.49.2/mode/soy/test.js +204 -0
  469. data/vendor/assets/javascripts/codemirror/5.49.2/mode/sparql/index.html +61 -0
  470. data/vendor/assets/javascripts/codemirror/5.49.2/mode/sparql/sparql.js +180 -0
  471. data/vendor/assets/javascripts/codemirror/5.49.2/mode/spreadsheet/index.html +42 -0
  472. data/vendor/assets/javascripts/codemirror/5.49.2/mode/spreadsheet/spreadsheet.js +112 -0
  473. data/vendor/assets/javascripts/codemirror/5.49.2/mode/sql/index.html +89 -0
  474. data/vendor/assets/javascripts/codemirror/5.49.2/mode/sql/sql.js +494 -0
  475. data/vendor/assets/javascripts/codemirror/5.49.2/mode/stex/index.html +116 -0
  476. data/vendor/assets/javascripts/codemirror/5.49.2/mode/stex/stex.js +264 -0
  477. data/vendor/assets/javascripts/codemirror/5.49.2/mode/stex/test.js +132 -0
  478. data/vendor/assets/javascripts/codemirror/5.49.2/mode/stylus/index.html +106 -0
  479. data/vendor/assets/javascripts/codemirror/5.49.2/mode/stylus/stylus.js +771 -0
  480. data/vendor/assets/javascripts/codemirror/5.49.2/mode/swift/index.html +70 -0
  481. data/vendor/assets/javascripts/codemirror/5.49.2/mode/swift/swift.js +223 -0
  482. data/vendor/assets/javascripts/codemirror/5.49.2/mode/swift/test.js +162 -0
  483. data/vendor/assets/javascripts/codemirror/5.49.2/mode/tcl/index.html +142 -0
  484. data/vendor/assets/javascripts/codemirror/5.49.2/mode/tcl/tcl.js +139 -0
  485. data/vendor/assets/javascripts/codemirror/5.49.2/mode/textile/index.html +191 -0
  486. data/vendor/assets/javascripts/codemirror/5.49.2/mode/textile/test.js +417 -0
  487. data/vendor/assets/javascripts/codemirror/5.49.2/mode/textile/textile.js +469 -0
  488. data/vendor/assets/javascripts/codemirror/5.49.2/mode/tiddlywiki/index.html +154 -0
  489. data/vendor/assets/javascripts/codemirror/5.49.2/mode/tiddlywiki/tiddlywiki.css +14 -0
  490. data/vendor/assets/javascripts/codemirror/5.49.2/mode/tiddlywiki/tiddlywiki.js +308 -0
  491. data/vendor/assets/javascripts/codemirror/5.49.2/mode/tiki/index.html +95 -0
  492. data/vendor/assets/javascripts/codemirror/5.49.2/mode/tiki/tiki.css +26 -0
  493. data/vendor/assets/javascripts/codemirror/5.49.2/mode/tiki/tiki.js +312 -0
  494. data/vendor/assets/javascripts/codemirror/5.49.2/mode/toml/index.html +73 -0
  495. data/vendor/assets/javascripts/codemirror/5.49.2/mode/toml/toml.js +88 -0
  496. data/vendor/assets/javascripts/codemirror/5.49.2/mode/tornado/index.html +63 -0
  497. data/vendor/assets/javascripts/codemirror/5.49.2/mode/tornado/tornado.js +68 -0
  498. data/vendor/assets/javascripts/codemirror/5.49.2/mode/troff/index.html +146 -0
  499. data/vendor/assets/javascripts/codemirror/5.49.2/mode/troff/troff.js +84 -0
  500. data/vendor/assets/javascripts/codemirror/5.49.2/mode/ttcn-cfg/index.html +116 -0
  501. data/vendor/assets/javascripts/codemirror/5.49.2/mode/ttcn-cfg/ttcn-cfg.js +214 -0
  502. data/vendor/assets/javascripts/codemirror/5.49.2/mode/ttcn/index.html +119 -0
  503. data/vendor/assets/javascripts/codemirror/5.49.2/mode/ttcn/ttcn.js +283 -0
  504. data/vendor/assets/javascripts/codemirror/5.49.2/mode/turtle/index.html +51 -0
  505. data/vendor/assets/javascripts/codemirror/5.49.2/mode/turtle/turtle.js +162 -0
  506. data/vendor/assets/javascripts/codemirror/5.49.2/mode/twig/index.html +45 -0
  507. data/vendor/assets/javascripts/codemirror/5.49.2/mode/twig/twig.js +141 -0
  508. data/vendor/assets/javascripts/codemirror/5.49.2/mode/vb/index.html +49 -0
  509. data/vendor/assets/javascripts/codemirror/5.49.2/mode/vb/vb.js +275 -0
  510. data/vendor/assets/javascripts/codemirror/5.49.2/mode/vbscript/index.html +55 -0
  511. data/vendor/assets/javascripts/codemirror/5.49.2/mode/vbscript/vbscript.js +350 -0
  512. data/vendor/assets/javascripts/codemirror/5.49.2/mode/velocity/index.html +120 -0
  513. data/vendor/assets/javascripts/codemirror/5.49.2/mode/velocity/velocity.js +201 -0
  514. data/vendor/assets/javascripts/codemirror/5.49.2/mode/verilog/index.html +120 -0
  515. data/vendor/assets/javascripts/codemirror/5.49.2/mode/verilog/test.js +273 -0
  516. data/vendor/assets/javascripts/codemirror/5.49.2/mode/verilog/verilog.js +675 -0
  517. data/vendor/assets/javascripts/codemirror/5.49.2/mode/vhdl/index.html +95 -0
  518. data/vendor/assets/javascripts/codemirror/5.49.2/mode/vhdl/vhdl.js +189 -0
  519. data/vendor/assets/javascripts/codemirror/5.49.2/mode/vue/index.html +69 -0
  520. data/vendor/assets/javascripts/codemirror/5.49.2/mode/vue/vue.js +77 -0
  521. data/vendor/assets/javascripts/codemirror/5.49.2/mode/webidl/index.html +71 -0
  522. data/vendor/assets/javascripts/codemirror/5.49.2/mode/webidl/webidl.js +195 -0
  523. data/vendor/assets/javascripts/codemirror/5.49.2/mode/xml/index.html +61 -0
  524. data/vendor/assets/javascripts/codemirror/5.49.2/mode/xml/test.js +51 -0
  525. data/vendor/assets/javascripts/codemirror/5.49.2/mode/xml/xml.js +413 -0
  526. data/vendor/assets/javascripts/codemirror/5.49.2/mode/xquery/index.html +211 -0
  527. data/vendor/assets/javascripts/codemirror/5.49.2/mode/xquery/test.js +67 -0
  528. data/vendor/assets/javascripts/codemirror/5.49.2/mode/xquery/xquery.js +448 -0
  529. data/vendor/assets/javascripts/codemirror/5.49.2/mode/yacas/index.html +87 -0
  530. data/vendor/assets/javascripts/codemirror/5.49.2/mode/yacas/yacas.js +204 -0
  531. data/vendor/assets/javascripts/codemirror/5.49.2/mode/yaml-frontmatter/index.html +121 -0
  532. data/vendor/assets/javascripts/codemirror/5.49.2/mode/yaml-frontmatter/yaml-frontmatter.js +68 -0
  533. data/vendor/assets/javascripts/codemirror/5.49.2/mode/yaml/index.html +80 -0
  534. data/vendor/assets/javascripts/codemirror/5.49.2/mode/yaml/yaml.js +120 -0
  535. data/vendor/assets/javascripts/codemirror/5.49.2/mode/z80/index.html +53 -0
  536. data/vendor/assets/javascripts/codemirror/5.49.2/mode/z80/z80.js +116 -0
  537. data/vendor/assets/stylesheets/codemirror/5.49.2/lib/codemirror.css +349 -0
  538. data/vendor/assets/stylesheets/codemirror/5.49.2/theme/3024-day.css +41 -0
  539. data/vendor/assets/stylesheets/codemirror/5.49.2/theme/3024-night.css +39 -0
  540. data/vendor/assets/stylesheets/codemirror/5.49.2/theme/abcdef.css +32 -0
  541. data/vendor/assets/stylesheets/codemirror/5.49.2/theme/ambiance-mobile.css +5 -0
  542. data/vendor/assets/stylesheets/codemirror/5.49.2/theme/ambiance.css +74 -0
  543. data/vendor/assets/stylesheets/codemirror/5.49.2/theme/base16-dark.css +38 -0
  544. data/vendor/assets/stylesheets/codemirror/5.49.2/theme/base16-light.css +38 -0
  545. data/vendor/assets/stylesheets/codemirror/5.49.2/theme/bespin.css +34 -0
  546. data/vendor/assets/stylesheets/codemirror/5.49.2/theme/blackboard.css +32 -0
  547. data/vendor/assets/stylesheets/codemirror/5.49.2/theme/cobalt.css +25 -0
  548. data/vendor/assets/stylesheets/codemirror/5.49.2/theme/colorforth.css +33 -0
  549. data/vendor/assets/stylesheets/codemirror/5.49.2/theme/darcula.css +53 -0
  550. data/vendor/assets/stylesheets/codemirror/5.49.2/theme/dracula.css +40 -0
  551. data/vendor/assets/stylesheets/codemirror/5.49.2/theme/duotone-dark.css +35 -0
  552. data/vendor/assets/stylesheets/codemirror/5.49.2/theme/duotone-light.css +36 -0
  553. data/vendor/assets/stylesheets/codemirror/5.49.2/theme/eclipse.css +23 -0
  554. data/vendor/assets/stylesheets/codemirror/5.49.2/theme/elegant.css +13 -0
  555. data/vendor/assets/stylesheets/codemirror/5.49.2/theme/erlang-dark.css +34 -0
  556. data/vendor/assets/stylesheets/codemirror/5.49.2/theme/gruvbox-dark.css +37 -0
  557. data/vendor/assets/stylesheets/codemirror/5.49.2/theme/hopscotch.css +34 -0
  558. data/vendor/assets/stylesheets/codemirror/5.49.2/theme/icecoder.css +43 -0
  559. data/vendor/assets/stylesheets/codemirror/5.49.2/theme/idea.css +42 -0
  560. data/vendor/assets/stylesheets/codemirror/5.49.2/theme/isotope.css +34 -0
  561. data/vendor/assets/stylesheets/codemirror/5.49.2/theme/lesser-dark.css +47 -0
  562. data/vendor/assets/stylesheets/codemirror/5.49.2/theme/liquibyte.css +95 -0
  563. data/vendor/assets/stylesheets/codemirror/5.49.2/theme/lucario.css +37 -0
  564. data/vendor/assets/stylesheets/codemirror/5.49.2/theme/material-darker.css +135 -0
  565. data/vendor/assets/stylesheets/codemirror/5.49.2/theme/material-ocean.css +135 -0
  566. data/vendor/assets/stylesheets/codemirror/5.49.2/theme/material-palenight.css +135 -0
  567. data/vendor/assets/stylesheets/codemirror/5.49.2/theme/material.css +135 -0
  568. data/vendor/assets/stylesheets/codemirror/5.49.2/theme/mbo.css +37 -0
  569. data/vendor/assets/stylesheets/codemirror/5.49.2/theme/mdn-like.css +46 -0
  570. data/vendor/assets/stylesheets/codemirror/5.49.2/theme/midnight.css +39 -0
  571. data/vendor/assets/stylesheets/codemirror/5.49.2/theme/monokai.css +41 -0
  572. data/vendor/assets/stylesheets/codemirror/5.49.2/theme/moxer.css +143 -0
  573. data/vendor/assets/stylesheets/codemirror/5.49.2/theme/neat.css +12 -0
  574. data/vendor/assets/stylesheets/codemirror/5.49.2/theme/neo.css +43 -0
  575. data/vendor/assets/stylesheets/codemirror/5.49.2/theme/night.css +27 -0
  576. data/vendor/assets/stylesheets/codemirror/5.49.2/theme/nord.css +42 -0
  577. data/vendor/assets/stylesheets/codemirror/5.49.2/theme/oceanic-next.css +44 -0
  578. data/vendor/assets/stylesheets/codemirror/5.49.2/theme/panda-syntax.css +85 -0
  579. data/vendor/assets/stylesheets/codemirror/5.49.2/theme/paraiso-dark.css +38 -0
  580. data/vendor/assets/stylesheets/codemirror/5.49.2/theme/paraiso-light.css +38 -0
  581. data/vendor/assets/stylesheets/codemirror/5.49.2/theme/pastel-on-dark.css +52 -0
  582. data/vendor/assets/stylesheets/codemirror/5.49.2/theme/railscasts.css +34 -0
  583. data/vendor/assets/stylesheets/codemirror/5.49.2/theme/rubyblue.css +25 -0
  584. data/vendor/assets/stylesheets/codemirror/5.49.2/theme/seti.css +44 -0
  585. data/vendor/assets/stylesheets/codemirror/5.49.2/theme/shadowfox.css +52 -0
  586. data/vendor/assets/stylesheets/codemirror/5.49.2/theme/solarized.css +168 -0
  587. data/vendor/assets/stylesheets/codemirror/5.49.2/theme/ssms.css +16 -0
  588. data/vendor/assets/stylesheets/codemirror/5.49.2/theme/the-matrix.css +30 -0
  589. data/vendor/assets/stylesheets/codemirror/5.49.2/theme/tomorrow-night-bright.css +35 -0
  590. data/vendor/assets/stylesheets/codemirror/5.49.2/theme/tomorrow-night-eighties.css +38 -0
  591. data/vendor/assets/stylesheets/codemirror/5.49.2/theme/ttcn.css +64 -0
  592. data/vendor/assets/stylesheets/codemirror/5.49.2/theme/twilight.css +32 -0
  593. data/vendor/assets/stylesheets/codemirror/5.49.2/theme/vibrant-ink.css +34 -0
  594. data/vendor/assets/stylesheets/codemirror/5.49.2/theme/xq-dark.css +53 -0
  595. data/vendor/assets/stylesheets/codemirror/5.49.2/theme/xq-light.css +43 -0
  596. data/vendor/assets/stylesheets/codemirror/5.49.2/theme/yeti.css +44 -0
  597. data/vendor/assets/stylesheets/codemirror/5.49.2/theme/yonce.css +59 -0
  598. data/vendor/assets/stylesheets/codemirror/5.49.2/theme/zenburn.css +37 -0
  599. metadata +529 -199
  600. data/Rakefile +0 -27
  601. data/app/controllers/wallaby/abstract_resources_controller.rb +0 -318
  602. data/app/controllers/wallaby/application_controller.rb +0 -71
  603. data/app/controllers/wallaby/base_controller.rb +0 -23
  604. data/app/controllers/wallaby/resources_controller.rb +0 -5
  605. data/app/controllers/wallaby/secure_controller.rb +0 -60
  606. data/app/security/ability.rb +0 -10
  607. data/app/views/layouts/wallaby/error.html.erb +0 -42
  608. data/app/views/wallaby/error.html.erb +0 -11
  609. data/app/views/wallaby/resources/_resource_actions.html.erb +0 -3
  610. data/app/views/wallaby/resources/index/_bigint.html.erb +0 -5
  611. data/app/views/wallaby/resources/index/_bigserial.html.erb +0 -5
  612. data/app/views/wallaby/resources/index/_binary.html.erb +0 -5
  613. data/app/views/wallaby/resources/index/_bit.html.erb +0 -9
  614. data/app/views/wallaby/resources/index/_bit_varying.html.erb +0 -9
  615. data/app/views/wallaby/resources/index/_blob.html.erb +0 -5
  616. data/app/views/wallaby/resources/index/_boolean.html.erb +0 -9
  617. data/app/views/wallaby/resources/index/_box.html.erb +0 -16
  618. data/app/views/wallaby/resources/index/_cidr.html.erb +0 -10
  619. data/app/views/wallaby/resources/index/_circle.html.erb +0 -16
  620. data/app/views/wallaby/resources/index/_citext.html.erb +0 -16
  621. data/app/views/wallaby/resources/index/_color.html.erb +0 -10
  622. data/app/views/wallaby/resources/index/_date.html.erb +0 -11
  623. data/app/views/wallaby/resources/index/_daterange.html.erb +0 -12
  624. data/app/views/wallaby/resources/index/_datetime.html.erb +0 -11
  625. data/app/views/wallaby/resources/index/_decimal.html.erb +0 -5
  626. data/app/views/wallaby/resources/index/_email.html.erb +0 -5
  627. data/app/views/wallaby/resources/index/_float.html.erb +0 -5
  628. data/app/views/wallaby/resources/index/_has_and_belongs_to_many.html.erb +0 -15
  629. data/app/views/wallaby/resources/index/_has_many.html.erb +0 -15
  630. data/app/views/wallaby/resources/index/_has_one.html.erb +0 -5
  631. data/app/views/wallaby/resources/index/_hstore.html.erb +0 -16
  632. data/app/views/wallaby/resources/index/_inet.html.erb +0 -10
  633. data/app/views/wallaby/resources/index/_int4range.html.erb +0 -11
  634. data/app/views/wallaby/resources/index/_int8range.html.erb +0 -11
  635. data/app/views/wallaby/resources/index/_integer.html.erb +0 -5
  636. data/app/views/wallaby/resources/index/_json.html.erb +0 -15
  637. data/app/views/wallaby/resources/index/_jsonb.html.erb +0 -15
  638. data/app/views/wallaby/resources/index/_line.html.erb +0 -16
  639. data/app/views/wallaby/resources/index/_longblob.html.erb +0 -5
  640. data/app/views/wallaby/resources/index/_longtext.html.erb +0 -16
  641. data/app/views/wallaby/resources/index/_lseg.html.erb +0 -16
  642. data/app/views/wallaby/resources/index/_ltree.html.erb +0 -16
  643. data/app/views/wallaby/resources/index/_macaddr.html.erb +0 -9
  644. data/app/views/wallaby/resources/index/_mediumblob.html.erb +0 -5
  645. data/app/views/wallaby/resources/index/_mediumtext.html.erb +0 -16
  646. data/app/views/wallaby/resources/index/_numrange.html.erb +0 -11
  647. data/app/views/wallaby/resources/index/_password.html.erb +0 -9
  648. data/app/views/wallaby/resources/index/_path.html.erb +0 -16
  649. data/app/views/wallaby/resources/index/_point.html.erb +0 -10
  650. data/app/views/wallaby/resources/index/_polygon.html.erb +0 -16
  651. data/app/views/wallaby/resources/index/_raw.html.erb +0 -9
  652. data/app/views/wallaby/resources/index/_serial.html.erb +0 -5
  653. data/app/views/wallaby/resources/index/_sti.html.erb +0 -16
  654. data/app/views/wallaby/resources/index/_string.html.erb +0 -16
  655. data/app/views/wallaby/resources/index/_text.html.erb +0 -16
  656. data/app/views/wallaby/resources/index/_time.html.erb +0 -10
  657. data/app/views/wallaby/resources/index/_tinyblob.html.erb +0 -5
  658. data/app/views/wallaby/resources/index/_tinytext.html.erb +0 -16
  659. data/app/views/wallaby/resources/index/_tsrange.html.erb +0 -12
  660. data/app/views/wallaby/resources/index/_tstzrange.html.erb +0 -12
  661. data/app/views/wallaby/resources/index/_tsvector.html.erb +0 -16
  662. data/app/views/wallaby/resources/index/_unsigned_bigint.html.erb +0 -5
  663. data/app/views/wallaby/resources/index/_unsigned_decimal.html.erb +0 -5
  664. data/app/views/wallaby/resources/index/_unsigned_float.html.erb +0 -5
  665. data/app/views/wallaby/resources/index/_unsigned_integer.html.erb +0 -5
  666. data/app/views/wallaby/resources/index/_uuid.html.erb +0 -16
  667. data/app/views/wallaby/resources/index/_xml.html.erb +0 -16
  668. data/config/locales/wallaby.en.yml +0 -101
  669. data/config/routes.rb +0 -36
  670. data/lib/adaptors/wallaby/active_record.rb +0 -5
  671. data/lib/adaptors/wallaby/active_record/model_decorator.rb +0 -132
  672. data/lib/adaptors/wallaby/active_record/model_decorator/fields_builder.rb +0 -57
  673. data/lib/adaptors/wallaby/active_record/model_decorator/fields_builder/association_builder.rb +0 -50
  674. data/lib/adaptors/wallaby/active_record/model_decorator/fields_builder/polymorphic_builder.rb +0 -53
  675. data/lib/adaptors/wallaby/active_record/model_decorator/fields_builder/sti_builder.rb +0 -49
  676. data/lib/adaptors/wallaby/active_record/model_decorator/title_field_finder.rb +0 -32
  677. data/lib/adaptors/wallaby/active_record/model_finder.rb +0 -52
  678. data/lib/adaptors/wallaby/active_record/model_pagination_provider.rb +0 -27
  679. data/lib/adaptors/wallaby/active_record/model_service_provider.rb +0 -144
  680. data/lib/adaptors/wallaby/active_record/model_service_provider/normalizer.rb +0 -57
  681. data/lib/adaptors/wallaby/active_record/model_service_provider/permitter.rb +0 -76
  682. data/lib/adaptors/wallaby/active_record/model_service_provider/querier.rb +0 -166
  683. data/lib/adaptors/wallaby/active_record/model_service_provider/querier/transformer.rb +0 -77
  684. data/lib/adaptors/wallaby/active_record/model_service_provider/validator.rb +0 -35
  685. data/lib/concerns/wallaby/resources_helper_methods.rb +0 -44
  686. data/lib/decorators/wallaby/abstract_resource_decorator.rb +0 -79
  687. data/lib/decorators/wallaby/resource_decorator.rb +0 -7
  688. data/lib/errors/wallaby/general_error.rb +0 -4
  689. data/lib/errors/wallaby/invalid_error.rb +0 -4
  690. data/lib/errors/wallaby/model_not_found.rb +0 -9
  691. data/lib/errors/wallaby/not_authenticated.rb +0 -4
  692. data/lib/errors/wallaby/not_found.rb +0 -4
  693. data/lib/errors/wallaby/not_implemented.rb +0 -4
  694. data/lib/errors/wallaby/resource_not_found.rb +0 -9
  695. data/lib/errors/wallaby/unprocessable_entity.rb +0 -4
  696. data/lib/forms/wallaby/form_builder.rb +0 -55
  697. data/lib/helpers/wallaby/application_helper.rb +0 -49
  698. data/lib/helpers/wallaby/base_helper.rb +0 -60
  699. data/lib/helpers/wallaby/form_helper.rb +0 -63
  700. data/lib/helpers/wallaby/index_helper.rb +0 -63
  701. data/lib/helpers/wallaby/links_helper.rb +0 -155
  702. data/lib/helpers/wallaby/resources_helper.rb +0 -52
  703. data/lib/helpers/wallaby/secure_helper.rb +0 -50
  704. data/lib/helpers/wallaby/styling_helper.rb +0 -66
  705. data/lib/interfaces/wallaby/mode.rb +0 -47
  706. data/lib/interfaces/wallaby/model_decorator.rb +0 -135
  707. data/lib/interfaces/wallaby/model_decorator/field_helpers.rb +0 -78
  708. data/lib/interfaces/wallaby/model_finder.rb +0 -10
  709. data/lib/interfaces/wallaby/model_pagination_provider.rb +0 -105
  710. data/lib/interfaces/wallaby/model_service_provider.rb +0 -79
  711. data/lib/paginators/wallaby/abstract_resource_paginator.rb +0 -28
  712. data/lib/paginators/wallaby/resource_paginator.rb +0 -6
  713. data/lib/parsers/wallaby/parser.rb +0 -33
  714. data/lib/responders/wallaby/abstract_responder.rb +0 -81
  715. data/lib/responders/wallaby/resources_responder.rb +0 -6
  716. data/lib/routes/wallaby/resources_router.rb +0 -45
  717. data/lib/servicers/wallaby/abstract_model_servicer.rb +0 -72
  718. data/lib/servicers/wallaby/model_servicer.rb +0 -6
  719. data/lib/services/wallaby/link_options_normalizer.rb +0 -20
  720. data/lib/services/wallaby/lookup_context_wrapper.rb +0 -42
  721. data/lib/services/wallaby/map.rb +0 -128
  722. data/lib/services/wallaby/map/mode_mapper.rb +0 -21
  723. data/lib/services/wallaby/map/model_class_collector.rb +0 -48
  724. data/lib/services/wallaby/map/model_class_mapper.rb +0 -38
  725. data/lib/services/wallaby/partial_renderer.rb +0 -67
  726. data/lib/services/wallaby/prefixes_builder.rb +0 -72
  727. data/lib/services/wallaby/sorting/hash_builder.rb +0 -22
  728. data/lib/services/wallaby/sorting/link_builder.rb +0 -50
  729. data/lib/services/wallaby/sorting/next_builder.rb +0 -75
  730. data/lib/services/wallaby/url_for.rb +0 -36
  731. data/lib/tree/wallaby/node.rb +0 -19
  732. data/lib/utils/wallaby/test_utils.rb +0 -32
  733. data/lib/utils/wallaby/utils.rb +0 -122
  734. data/lib/wallaby/configuration.rb +0 -74
  735. data/lib/wallaby/configuration/features.rb +0 -13
  736. data/lib/wallaby/configuration/mapping.rb +0 -66
  737. data/lib/wallaby/configuration/metadata.rb +0 -13
  738. data/lib/wallaby/configuration/models.rb +0 -32
  739. data/lib/wallaby/configuration/pagination.rb +0 -13
  740. data/lib/wallaby/configuration/security.rb +0 -62
  741. data/lib/wallaby/engine.rb +0 -154
@@ -0,0 +1,412 @@
1
+ <!doctype html>
2
+
3
+ <title>CodeMirror: Markdown mode</title>
4
+ <meta charset="utf-8"/>
5
+ <link rel=stylesheet href="../../doc/docs.css">
6
+
7
+ <link rel="stylesheet" href="../../lib/codemirror.css">
8
+ <script src="../../lib/codemirror.js"></script>
9
+ <script src="../../addon/edit/continuelist.js"></script>
10
+ <script src="../xml/xml.js"></script>
11
+ <script src="../javascript/javascript.js"></script>
12
+ <script src="markdown.js"></script>
13
+ <style>
14
+ .CodeMirror {border-top: 1px solid black; border-bottom: 1px solid black;}
15
+ .cm-s-default .cm-trailing-space-a:before,
16
+ .cm-s-default .cm-trailing-space-b:before {position: absolute; content: "\00B7"; color: #777;}
17
+ .cm-s-default .cm-trailing-space-new-line:before {position: absolute; content: "\21B5"; color: #777;}
18
+ </style>
19
+ <div id=nav>
20
+ <a href="https://codemirror.net"><h1>CodeMirror</h1><img id=logo src="../../doc/logo.png" alt=""></a>
21
+
22
+ <ul>
23
+ <li><a href="../../index.html">Home</a>
24
+ <li><a href="../../doc/manual.html">Manual</a>
25
+ <li><a href="https://github.com/codemirror/codemirror">Code</a>
26
+ </ul>
27
+ <ul>
28
+ <li><a href="../index.html">Language modes</a>
29
+ <li><a class=active href="#">Markdown</a>
30
+ </ul>
31
+ </div>
32
+
33
+ <article>
34
+ <h2>Markdown mode</h2>
35
+ <form><textarea id="code" name="code">
36
+ Markdown: Basics
37
+ ================
38
+
39
+ &lt;ul id="ProjectSubmenu"&gt;
40
+ &lt;li&gt;&lt;a href="/projects/markdown/" title="Markdown Project Page"&gt;Main&lt;/a&gt;&lt;/li&gt;
41
+ &lt;li&gt;&lt;a class="selected" title="Markdown Basics"&gt;Basics&lt;/a&gt;&lt;/li&gt;
42
+ &lt;li&gt;&lt;a href="/projects/markdown/syntax" title="Markdown Syntax Documentation"&gt;Syntax&lt;/a&gt;&lt;/li&gt;
43
+ &lt;li&gt;&lt;a href="/projects/markdown/license" title="Pricing and License Information"&gt;License&lt;/a&gt;&lt;/li&gt;
44
+ &lt;li&gt;&lt;a href="/projects/markdown/dingus" title="Online Markdown Web Form"&gt;Dingus&lt;/a&gt;&lt;/li&gt;
45
+ &lt;/ul&gt;
46
+
47
+
48
+ Getting the Gist of Markdown's Formatting Syntax
49
+ ------------------------------------------------
50
+
51
+ This page offers a brief overview of what it's like to use Markdown.
52
+ The [syntax page] [s] provides complete, detailed documentation for
53
+ every feature, but Markdown should be very easy to pick up simply by
54
+ looking at a few examples of it in action. The examples on this page
55
+ are written in a before/after style, showing example syntax and the
56
+ HTML output produced by Markdown.
57
+
58
+ It's also helpful to simply try Markdown out; the [Dingus] [d] is a
59
+ web application that allows you type your own Markdown-formatted text
60
+ and translate it to XHTML.
61
+
62
+ **Note:** This document is itself written using Markdown; you
63
+ can [see the source for it by adding '.text' to the URL] [src].
64
+
65
+ [s]: /projects/markdown/syntax "Markdown Syntax"
66
+ [d]: /projects/markdown/dingus "Markdown Dingus"
67
+ [src]: /projects/markdown/basics.text
68
+
69
+
70
+ ## Paragraphs, Headers, Blockquotes ##
71
+
72
+ A paragraph is simply one or more consecutive lines of text, separated
73
+ by one or more blank lines. (A blank line is any line that looks like
74
+ a blank line -- a line containing nothing but spaces or tabs is
75
+ considered blank.) Normal paragraphs should not be indented with
76
+ spaces or tabs.
77
+
78
+ Markdown offers two styles of headers: *Setext* and *atx*.
79
+ Setext-style headers for `&lt;h1&gt;` and `&lt;h2&gt;` are created by
80
+ "underlining" with equal signs (`=`) and hyphens (`-`), respectively.
81
+ To create an atx-style header, you put 1-6 hash marks (`#`) at the
82
+ beginning of the line -- the number of hashes equals the resulting
83
+ HTML header level.
84
+
85
+ Blockquotes are indicated using email-style '`&gt;`' angle brackets.
86
+
87
+ Markdown:
88
+
89
+ A First Level Header
90
+ ====================
91
+
92
+ A Second Level Header
93
+ ---------------------
94
+
95
+ Now is the time for all good men to come to
96
+ the aid of their country. This is just a
97
+ regular paragraph.
98
+
99
+ The quick brown fox jumped over the lazy
100
+ dog's back.
101
+
102
+ ### Header 3
103
+
104
+ &gt; This is a blockquote.
105
+ &gt;
106
+ &gt; This is the second paragraph in the blockquote.
107
+ &gt;
108
+ &gt; ## This is an H2 in a blockquote
109
+
110
+
111
+ Output:
112
+
113
+ &lt;h1&gt;A First Level Header&lt;/h1&gt;
114
+
115
+ &lt;h2&gt;A Second Level Header&lt;/h2&gt;
116
+
117
+ &lt;p&gt;Now is the time for all good men to come to
118
+ the aid of their country. This is just a
119
+ regular paragraph.&lt;/p&gt;
120
+
121
+ &lt;p&gt;The quick brown fox jumped over the lazy
122
+ dog's back.&lt;/p&gt;
123
+
124
+ &lt;h3&gt;Header 3&lt;/h3&gt;
125
+
126
+ &lt;blockquote&gt;
127
+ &lt;p&gt;This is a blockquote.&lt;/p&gt;
128
+
129
+ &lt;p&gt;This is the second paragraph in the blockquote.&lt;/p&gt;
130
+
131
+ &lt;h2&gt;This is an H2 in a blockquote&lt;/h2&gt;
132
+ &lt;/blockquote&gt;
133
+
134
+
135
+
136
+ ### Phrase Emphasis ###
137
+
138
+ Markdown uses asterisks and underscores to indicate spans of emphasis.
139
+
140
+ Markdown:
141
+
142
+ Some of these words *are emphasized*.
143
+ Some of these words _are emphasized also_.
144
+
145
+ Use two asterisks for **strong emphasis**.
146
+ Or, if you prefer, __use two underscores instead__.
147
+
148
+ Output:
149
+
150
+ &lt;p&gt;Some of these words &lt;em&gt;are emphasized&lt;/em&gt;.
151
+ Some of these words &lt;em&gt;are emphasized also&lt;/em&gt;.&lt;/p&gt;
152
+
153
+ &lt;p&gt;Use two asterisks for &lt;strong&gt;strong emphasis&lt;/strong&gt;.
154
+ Or, if you prefer, &lt;strong&gt;use two underscores instead&lt;/strong&gt;.&lt;/p&gt;
155
+
156
+
157
+
158
+ ## Lists ##
159
+
160
+ Unordered (bulleted) lists use asterisks, pluses, and hyphens (`*`,
161
+ `+`, and `-`) as list markers. These three markers are
162
+ interchangable; this:
163
+
164
+ * Candy.
165
+ * Gum.
166
+ * Booze.
167
+
168
+ this:
169
+
170
+ + Candy.
171
+ + Gum.
172
+ + Booze.
173
+
174
+ and this:
175
+
176
+ - Candy.
177
+ - Gum.
178
+ - Booze.
179
+
180
+ all produce the same output:
181
+
182
+ &lt;ul&gt;
183
+ &lt;li&gt;Candy.&lt;/li&gt;
184
+ &lt;li&gt;Gum.&lt;/li&gt;
185
+ &lt;li&gt;Booze.&lt;/li&gt;
186
+ &lt;/ul&gt;
187
+
188
+ Ordered (numbered) lists use regular numbers, followed by periods, as
189
+ list markers:
190
+
191
+ 1. Red
192
+ 2. Green
193
+ 3. Blue
194
+
195
+ Output:
196
+
197
+ &lt;ol&gt;
198
+ &lt;li&gt;Red&lt;/li&gt;
199
+ &lt;li&gt;Green&lt;/li&gt;
200
+ &lt;li&gt;Blue&lt;/li&gt;
201
+ &lt;/ol&gt;
202
+
203
+ If you put blank lines between items, you'll get `&lt;p&gt;` tags for the
204
+ list item text. You can create multi-paragraph list items by indenting
205
+ the paragraphs by 4 spaces or 1 tab:
206
+
207
+ * A list item.
208
+
209
+ With multiple paragraphs.
210
+
211
+ * Another item in the list.
212
+
213
+ Output:
214
+
215
+ &lt;ul&gt;
216
+ &lt;li&gt;&lt;p&gt;A list item.&lt;/p&gt;
217
+ &lt;p&gt;With multiple paragraphs.&lt;/p&gt;&lt;/li&gt;
218
+ &lt;li&gt;&lt;p&gt;Another item in the list.&lt;/p&gt;&lt;/li&gt;
219
+ &lt;/ul&gt;
220
+
221
+
222
+
223
+ ### Links ###
224
+
225
+ Markdown supports two styles for creating links: *inline* and
226
+ *reference*. With both styles, you use square brackets to delimit the
227
+ text you want to turn into a link.
228
+
229
+ Inline-style links use parentheses immediately after the link text.
230
+ For example:
231
+
232
+ This is an [example link](http://example.com/).
233
+
234
+ Output:
235
+
236
+ &lt;p&gt;This is an &lt;a href="http://example.com/"&gt;
237
+ example link&lt;/a&gt;.&lt;/p&gt;
238
+
239
+ Optionally, you may include a title attribute in the parentheses:
240
+
241
+ This is an [example link](http://example.com/ "With a Title").
242
+
243
+ Output:
244
+
245
+ &lt;p&gt;This is an &lt;a href="http://example.com/" title="With a Title"&gt;
246
+ example link&lt;/a&gt;.&lt;/p&gt;
247
+
248
+ Reference-style links allow you to refer to your links by names, which
249
+ you define elsewhere in your document:
250
+
251
+ I get 10 times more traffic from [Google][1] than from
252
+ [Yahoo][2] or [MSN][3].
253
+
254
+ [1]: http://google.com/ "Google"
255
+ [2]: http://search.yahoo.com/ "Yahoo Search"
256
+ [3]: http://search.msn.com/ "MSN Search"
257
+
258
+ Output:
259
+
260
+ &lt;p&gt;I get 10 times more traffic from &lt;a href="http://google.com/"
261
+ title="Google"&gt;Google&lt;/a&gt; than from &lt;a href="http://search.yahoo.com/"
262
+ title="Yahoo Search"&gt;Yahoo&lt;/a&gt; or &lt;a href="http://search.msn.com/"
263
+ title="MSN Search"&gt;MSN&lt;/a&gt;.&lt;/p&gt;
264
+
265
+ The title attribute is optional. Link names may contain letters,
266
+ numbers and spaces, but are *not* case sensitive:
267
+
268
+ I start my morning with a cup of coffee and
269
+ [The New York Times][NY Times].
270
+
271
+ [ny times]: http://www.nytimes.com/
272
+
273
+ Output:
274
+
275
+ &lt;p&gt;I start my morning with a cup of coffee and
276
+ &lt;a href="http://www.nytimes.com/"&gt;The New York Times&lt;/a&gt;.&lt;/p&gt;
277
+
278
+
279
+ ### Images ###
280
+
281
+ Image syntax is very much like link syntax.
282
+
283
+ Inline (titles are optional):
284
+
285
+ ![alt text](/path/to/img.jpg "Title")
286
+
287
+ Reference-style:
288
+
289
+ ![alt text][id]
290
+
291
+ [id]: /path/to/img.jpg "Title"
292
+
293
+ Both of the above examples produce the same output:
294
+
295
+ &lt;img src="/path/to/img.jpg" alt="alt text" title="Title" /&gt;
296
+
297
+
298
+
299
+ ### Code ###
300
+
301
+ In a regular paragraph, you can create code span by wrapping text in
302
+ backtick quotes. Any ampersands (`&amp;`) and angle brackets (`&lt;` or
303
+ `&gt;`) will automatically be translated into HTML entities. This makes
304
+ it easy to use Markdown to write about HTML example code:
305
+
306
+ I strongly recommend against using any `&lt;blink&gt;` tags.
307
+
308
+ I wish SmartyPants used named entities like `&amp;mdash;`
309
+ instead of decimal-encoded entites like `&amp;#8212;`.
310
+
311
+ Output:
312
+
313
+ &lt;p&gt;I strongly recommend against using any
314
+ &lt;code&gt;&amp;lt;blink&amp;gt;&lt;/code&gt; tags.&lt;/p&gt;
315
+
316
+ &lt;p&gt;I wish SmartyPants used named entities like
317
+ &lt;code&gt;&amp;amp;mdash;&lt;/code&gt; instead of decimal-encoded
318
+ entites like &lt;code&gt;&amp;amp;#8212;&lt;/code&gt;.&lt;/p&gt;
319
+
320
+
321
+ To specify an entire block of pre-formatted code, indent every line of
322
+ the block by 4 spaces or 1 tab. Just like with code spans, `&amp;`, `&lt;`,
323
+ and `&gt;` characters will be escaped automatically.
324
+
325
+ Markdown:
326
+
327
+ If you want your page to validate under XHTML 1.0 Strict,
328
+ you've got to put paragraph tags in your blockquotes:
329
+
330
+ &lt;blockquote&gt;
331
+ &lt;p&gt;For example.&lt;/p&gt;
332
+ &lt;/blockquote&gt;
333
+
334
+ Output:
335
+
336
+ &lt;p&gt;If you want your page to validate under XHTML 1.0 Strict,
337
+ you've got to put paragraph tags in your blockquotes:&lt;/p&gt;
338
+
339
+ &lt;pre&gt;&lt;code&gt;&amp;lt;blockquote&amp;gt;
340
+ &amp;lt;p&amp;gt;For example.&amp;lt;/p&amp;gt;
341
+ &amp;lt;/blockquote&amp;gt;
342
+ &lt;/code&gt;&lt;/pre&gt;
343
+
344
+ ## Fenced code blocks (and syntax highlighting)
345
+
346
+ ```javascript
347
+ for (var i = 0; i < items.length; i++) {
348
+ console.log(items[i], i); // log them
349
+ }
350
+ ```
351
+
352
+ </textarea></form>
353
+
354
+ <script>
355
+ var editor = CodeMirror.fromTextArea(document.getElementById("code"), {
356
+ mode: 'markdown',
357
+ lineNumbers: true,
358
+ theme: "default",
359
+ extraKeys: {"Enter": "newlineAndIndentContinueMarkdownList"}
360
+ });
361
+ </script>
362
+
363
+ <p>If you also want support <code>strikethrough</code>, <code>emoji</code> and few other goodies, check out <a href="../gfm/index.html">Github-Flavored Markdown mode</a>.</p>
364
+
365
+ <p>Optionally depends on other modes for properly highlighted code blocks,
366
+ and XML mode for properly highlighted inline XML blocks.</p>
367
+
368
+ <p>Markdown mode supports these options:</p>
369
+ <ul>
370
+ <li>
371
+ <d1>
372
+ <dt><code>highlightFormatting: boolean</code></dt>
373
+ <dd>Whether to separately highlight markdown meta characterts (<code>*[]()</code>etc.) (default: <code>false</code>).</dd>
374
+ </d1>
375
+ </li>
376
+ <li>
377
+ <d1>
378
+ <dt><code>maxBlockquoteDepth: boolean</code></dt>
379
+ <dd>Maximum allowed blockquote nesting (default: <code>0</code> - infinite nesting).</dd>
380
+ </d1>
381
+ </li>
382
+ <li>
383
+ <d1>
384
+ <dt><code>xml: boolean</code></dt>
385
+ <dd>Whether to highlight inline XML (default: <code>true</code>).</dd>
386
+ </d1>
387
+ </li>
388
+ <li>
389
+ <d1>
390
+ <dt><code>fencedCodeBlockHighlighting: boolean</code></dt>
391
+ <dd>Whether to syntax-highlight fenced code blocks, if given mode is included (default: <code>true</code>).</dd>
392
+ </d1>
393
+ </li>
394
+ <li>
395
+ <d1>
396
+ <dt><code>tokenTypeOverrides: Object</code></dt>
397
+ <dd>When you want ot override default token type names (e.g. <code>{code: "code"}</code>).</dd>
398
+ </d1>
399
+ </li>
400
+ <li>
401
+ <d1>
402
+ <dt><code>allowAtxHeaderWithoutSpace: boolean</code></dt>
403
+ <dd>Allow lazy headers without whitespace between hashtag and text (default: <code>false</code>).</dd>
404
+ </d1>
405
+ </li>
406
+ </ul>
407
+
408
+ <p><strong>MIME types defined:</strong> <code>text/x-markdown</code>.</p>
409
+
410
+ <p><strong>Parsing/Highlighting Tests:</strong> <a href="../../test/index.html#markdown_*">normal</a>, <a href="../../test/index.html#verbose,markdown_*">verbose</a>.</p>
411
+
412
+ </article>
@@ -0,0 +1,883 @@
1
+ // CodeMirror, copyright (c) by Marijn Haverbeke and others
2
+ // Distributed under an MIT license: https://codemirror.net/LICENSE
3
+
4
+ (function(mod) {
5
+ if (typeof exports == "object" && typeof module == "object") // CommonJS
6
+ mod(require("../../lib/codemirror"), require("../xml/xml"), require("../meta"));
7
+ else if (typeof define == "function" && define.amd) // AMD
8
+ define(["../../lib/codemirror", "../xml/xml", "../meta"], mod);
9
+ else // Plain browser env
10
+ mod(CodeMirror);
11
+ })(function(CodeMirror) {
12
+ "use strict";
13
+
14
+ CodeMirror.defineMode("markdown", function(cmCfg, modeCfg) {
15
+
16
+ var htmlMode = CodeMirror.getMode(cmCfg, "text/html");
17
+ var htmlModeMissing = htmlMode.name == "null"
18
+
19
+ function getMode(name) {
20
+ if (CodeMirror.findModeByName) {
21
+ var found = CodeMirror.findModeByName(name);
22
+ if (found) name = found.mime || found.mimes[0];
23
+ }
24
+ var mode = CodeMirror.getMode(cmCfg, name);
25
+ return mode.name == "null" ? null : mode;
26
+ }
27
+
28
+ // Should characters that affect highlighting be highlighted separate?
29
+ // Does not include characters that will be output (such as `1.` and `-` for lists)
30
+ if (modeCfg.highlightFormatting === undefined)
31
+ modeCfg.highlightFormatting = false;
32
+
33
+ // Maximum number of nested blockquotes. Set to 0 for infinite nesting.
34
+ // Excess `>` will emit `error` token.
35
+ if (modeCfg.maxBlockquoteDepth === undefined)
36
+ modeCfg.maxBlockquoteDepth = 0;
37
+
38
+ // Turn on task lists? ("- [ ] " and "- [x] ")
39
+ if (modeCfg.taskLists === undefined) modeCfg.taskLists = false;
40
+
41
+ // Turn on strikethrough syntax
42
+ if (modeCfg.strikethrough === undefined)
43
+ modeCfg.strikethrough = false;
44
+
45
+ if (modeCfg.emoji === undefined)
46
+ modeCfg.emoji = false;
47
+
48
+ if (modeCfg.fencedCodeBlockHighlighting === undefined)
49
+ modeCfg.fencedCodeBlockHighlighting = true;
50
+
51
+ if (modeCfg.xml === undefined)
52
+ modeCfg.xml = true;
53
+
54
+ // Allow token types to be overridden by user-provided token types.
55
+ if (modeCfg.tokenTypeOverrides === undefined)
56
+ modeCfg.tokenTypeOverrides = {};
57
+
58
+ var tokenTypes = {
59
+ header: "header",
60
+ code: "comment",
61
+ quote: "quote",
62
+ list1: "variable-2",
63
+ list2: "variable-3",
64
+ list3: "keyword",
65
+ hr: "hr",
66
+ image: "image",
67
+ imageAltText: "image-alt-text",
68
+ imageMarker: "image-marker",
69
+ formatting: "formatting",
70
+ linkInline: "link",
71
+ linkEmail: "link",
72
+ linkText: "link",
73
+ linkHref: "string",
74
+ em: "em",
75
+ strong: "strong",
76
+ strikethrough: "strikethrough",
77
+ emoji: "builtin"
78
+ };
79
+
80
+ for (var tokenType in tokenTypes) {
81
+ if (tokenTypes.hasOwnProperty(tokenType) && modeCfg.tokenTypeOverrides[tokenType]) {
82
+ tokenTypes[tokenType] = modeCfg.tokenTypeOverrides[tokenType];
83
+ }
84
+ }
85
+
86
+ var hrRE = /^([*\-_])(?:\s*\1){2,}\s*$/
87
+ , listRE = /^(?:[*\-+]|^[0-9]+([.)]))\s+/
88
+ , taskListRE = /^\[(x| )\](?=\s)/i // Must follow listRE
89
+ , atxHeaderRE = modeCfg.allowAtxHeaderWithoutSpace ? /^(#+)/ : /^(#+)(?: |$)/
90
+ , setextHeaderRE = /^ *(?:\={1,}|-{1,})\s*$/
91
+ , textRE = /^[^#!\[\]*_\\<>` "'(~:]+/
92
+ , fencedCodeRE = /^(~~~+|```+)[ \t]*([\w+#-]*)[^\n`]*$/
93
+ , linkDefRE = /^\s*\[[^\]]+?\]:.*$/ // naive link-definition
94
+ , punctuation = /[!"#$%&'()*+,\-.\/:;<=>?@\[\\\]^_`{|}~\xA1\xA7\xAB\xB6\xB7\xBB\xBF\u037E\u0387\u055A-\u055F\u0589\u058A\u05BE\u05C0\u05C3\u05C6\u05F3\u05F4\u0609\u060A\u060C\u060D\u061B\u061E\u061F\u066A-\u066D\u06D4\u0700-\u070D\u07F7-\u07F9\u0830-\u083E\u085E\u0964\u0965\u0970\u0AF0\u0DF4\u0E4F\u0E5A\u0E5B\u0F04-\u0F12\u0F14\u0F3A-\u0F3D\u0F85\u0FD0-\u0FD4\u0FD9\u0FDA\u104A-\u104F\u10FB\u1360-\u1368\u1400\u166D\u166E\u169B\u169C\u16EB-\u16ED\u1735\u1736\u17D4-\u17D6\u17D8-\u17DA\u1800-\u180A\u1944\u1945\u1A1E\u1A1F\u1AA0-\u1AA6\u1AA8-\u1AAD\u1B5A-\u1B60\u1BFC-\u1BFF\u1C3B-\u1C3F\u1C7E\u1C7F\u1CC0-\u1CC7\u1CD3\u2010-\u2027\u2030-\u2043\u2045-\u2051\u2053-\u205E\u207D\u207E\u208D\u208E\u2308-\u230B\u2329\u232A\u2768-\u2775\u27C5\u27C6\u27E6-\u27EF\u2983-\u2998\u29D8-\u29DB\u29FC\u29FD\u2CF9-\u2CFC\u2CFE\u2CFF\u2D70\u2E00-\u2E2E\u2E30-\u2E42\u3001-\u3003\u3008-\u3011\u3014-\u301F\u3030\u303D\u30A0\u30FB\uA4FE\uA4FF\uA60D-\uA60F\uA673\uA67E\uA6F2-\uA6F7\uA874-\uA877\uA8CE\uA8CF\uA8F8-\uA8FA\uA8FC\uA92E\uA92F\uA95F\uA9C1-\uA9CD\uA9DE\uA9DF\uAA5C-\uAA5F\uAADE\uAADF\uAAF0\uAAF1\uABEB\uFD3E\uFD3F\uFE10-\uFE19\uFE30-\uFE52\uFE54-\uFE61\uFE63\uFE68\uFE6A\uFE6B\uFF01-\uFF03\uFF05-\uFF0A\uFF0C-\uFF0F\uFF1A\uFF1B\uFF1F\uFF20\uFF3B-\uFF3D\uFF3F\uFF5B\uFF5D\uFF5F-\uFF65]|\uD800[\uDD00-\uDD02\uDF9F\uDFD0]|\uD801\uDD6F|\uD802[\uDC57\uDD1F\uDD3F\uDE50-\uDE58\uDE7F\uDEF0-\uDEF6\uDF39-\uDF3F\uDF99-\uDF9C]|\uD804[\uDC47-\uDC4D\uDCBB\uDCBC\uDCBE-\uDCC1\uDD40-\uDD43\uDD74\uDD75\uDDC5-\uDDC9\uDDCD\uDDDB\uDDDD-\uDDDF\uDE38-\uDE3D\uDEA9]|\uD805[\uDCC6\uDDC1-\uDDD7\uDE41-\uDE43\uDF3C-\uDF3E]|\uD809[\uDC70-\uDC74]|\uD81A[\uDE6E\uDE6F\uDEF5\uDF37-\uDF3B\uDF44]|\uD82F\uDC9F|\uD836[\uDE87-\uDE8B]/
95
+ , expandedTab = " " // CommonMark specifies tab as 4 spaces
96
+
97
+ function switchInline(stream, state, f) {
98
+ state.f = state.inline = f;
99
+ return f(stream, state);
100
+ }
101
+
102
+ function switchBlock(stream, state, f) {
103
+ state.f = state.block = f;
104
+ return f(stream, state);
105
+ }
106
+
107
+ function lineIsEmpty(line) {
108
+ return !line || !/\S/.test(line.string)
109
+ }
110
+
111
+ // Blocks
112
+
113
+ function blankLine(state) {
114
+ // Reset linkTitle state
115
+ state.linkTitle = false;
116
+ state.linkHref = false;
117
+ state.linkText = false;
118
+ // Reset EM state
119
+ state.em = false;
120
+ // Reset STRONG state
121
+ state.strong = false;
122
+ // Reset strikethrough state
123
+ state.strikethrough = false;
124
+ // Reset state.quote
125
+ state.quote = 0;
126
+ // Reset state.indentedCode
127
+ state.indentedCode = false;
128
+ if (state.f == htmlBlock) {
129
+ var exit = htmlModeMissing
130
+ if (!exit) {
131
+ var inner = CodeMirror.innerMode(htmlMode, state.htmlState)
132
+ exit = inner.mode.name == "xml" && inner.state.tagStart === null &&
133
+ (!inner.state.context && inner.state.tokenize.isInText)
134
+ }
135
+ if (exit) {
136
+ state.f = inlineNormal;
137
+ state.block = blockNormal;
138
+ state.htmlState = null;
139
+ }
140
+ }
141
+ // Reset state.trailingSpace
142
+ state.trailingSpace = 0;
143
+ state.trailingSpaceNewLine = false;
144
+ // Mark this line as blank
145
+ state.prevLine = state.thisLine
146
+ state.thisLine = {stream: null}
147
+ return null;
148
+ }
149
+
150
+ function blockNormal(stream, state) {
151
+ var firstTokenOnLine = stream.column() === state.indentation;
152
+ var prevLineLineIsEmpty = lineIsEmpty(state.prevLine.stream);
153
+ var prevLineIsIndentedCode = state.indentedCode;
154
+ var prevLineIsHr = state.prevLine.hr;
155
+ var prevLineIsList = state.list !== false;
156
+ var maxNonCodeIndentation = (state.listStack[state.listStack.length - 1] || 0) + 3;
157
+
158
+ state.indentedCode = false;
159
+
160
+ var lineIndentation = state.indentation;
161
+ // compute once per line (on first token)
162
+ if (state.indentationDiff === null) {
163
+ state.indentationDiff = state.indentation;
164
+ if (prevLineIsList) {
165
+ state.list = null;
166
+ // While this list item's marker's indentation is less than the deepest
167
+ // list item's content's indentation,pop the deepest list item
168
+ // indentation off the stack, and update block indentation state
169
+ while (lineIndentation < state.listStack[state.listStack.length - 1]) {
170
+ state.listStack.pop();
171
+ if (state.listStack.length) {
172
+ state.indentation = state.listStack[state.listStack.length - 1];
173
+ // less than the first list's indent -> the line is no longer a list
174
+ } else {
175
+ state.list = false;
176
+ }
177
+ }
178
+ if (state.list !== false) {
179
+ state.indentationDiff = lineIndentation - state.listStack[state.listStack.length - 1]
180
+ }
181
+ }
182
+ }
183
+
184
+ // not comprehensive (currently only for setext detection purposes)
185
+ var allowsInlineContinuation = (
186
+ !prevLineLineIsEmpty && !prevLineIsHr && !state.prevLine.header &&
187
+ (!prevLineIsList || !prevLineIsIndentedCode) &&
188
+ !state.prevLine.fencedCodeEnd
189
+ );
190
+
191
+ var isHr = (state.list === false || prevLineIsHr || prevLineLineIsEmpty) &&
192
+ state.indentation <= maxNonCodeIndentation && stream.match(hrRE);
193
+
194
+ var match = null;
195
+ if (state.indentationDiff >= 4 && (prevLineIsIndentedCode || state.prevLine.fencedCodeEnd ||
196
+ state.prevLine.header || prevLineLineIsEmpty)) {
197
+ stream.skipToEnd();
198
+ state.indentedCode = true;
199
+ return tokenTypes.code;
200
+ } else if (stream.eatSpace()) {
201
+ return null;
202
+ } else if (firstTokenOnLine && state.indentation <= maxNonCodeIndentation && (match = stream.match(atxHeaderRE)) && match[1].length <= 6) {
203
+ state.quote = 0;
204
+ state.header = match[1].length;
205
+ state.thisLine.header = true;
206
+ if (modeCfg.highlightFormatting) state.formatting = "header";
207
+ state.f = state.inline;
208
+ return getType(state);
209
+ } else if (state.indentation <= maxNonCodeIndentation && stream.eat('>')) {
210
+ state.quote = firstTokenOnLine ? 1 : state.quote + 1;
211
+ if (modeCfg.highlightFormatting) state.formatting = "quote";
212
+ stream.eatSpace();
213
+ return getType(state);
214
+ } else if (!isHr && !state.setext && firstTokenOnLine && state.indentation <= maxNonCodeIndentation && (match = stream.match(listRE))) {
215
+ var listType = match[1] ? "ol" : "ul";
216
+
217
+ state.indentation = lineIndentation + stream.current().length;
218
+ state.list = true;
219
+ state.quote = 0;
220
+
221
+ // Add this list item's content's indentation to the stack
222
+ state.listStack.push(state.indentation);
223
+ // Reset inline styles which shouldn't propagate aross list items
224
+ state.em = false;
225
+ state.strong = false;
226
+ state.code = false;
227
+ state.strikethrough = false;
228
+
229
+ if (modeCfg.taskLists && stream.match(taskListRE, false)) {
230
+ state.taskList = true;
231
+ }
232
+ state.f = state.inline;
233
+ if (modeCfg.highlightFormatting) state.formatting = ["list", "list-" + listType];
234
+ return getType(state);
235
+ } else if (firstTokenOnLine && state.indentation <= maxNonCodeIndentation && (match = stream.match(fencedCodeRE, true))) {
236
+ state.quote = 0;
237
+ state.fencedEndRE = new RegExp(match[1] + "+ *$");
238
+ // try switching mode
239
+ state.localMode = modeCfg.fencedCodeBlockHighlighting && getMode(match[2]);
240
+ if (state.localMode) state.localState = CodeMirror.startState(state.localMode);
241
+ state.f = state.block = local;
242
+ if (modeCfg.highlightFormatting) state.formatting = "code-block";
243
+ state.code = -1
244
+ return getType(state);
245
+ // SETEXT has lowest block-scope precedence after HR, so check it after
246
+ // the others (code, blockquote, list...)
247
+ } else if (
248
+ // if setext set, indicates line after ---/===
249
+ state.setext || (
250
+ // line before ---/===
251
+ (!allowsInlineContinuation || !prevLineIsList) && !state.quote && state.list === false &&
252
+ !state.code && !isHr && !linkDefRE.test(stream.string) &&
253
+ (match = stream.lookAhead(1)) && (match = match.match(setextHeaderRE))
254
+ )
255
+ ) {
256
+ if ( !state.setext ) {
257
+ state.header = match[0].charAt(0) == '=' ? 1 : 2;
258
+ state.setext = state.header;
259
+ } else {
260
+ state.header = state.setext;
261
+ // has no effect on type so we can reset it now
262
+ state.setext = 0;
263
+ stream.skipToEnd();
264
+ if (modeCfg.highlightFormatting) state.formatting = "header";
265
+ }
266
+ state.thisLine.header = true;
267
+ state.f = state.inline;
268
+ return getType(state);
269
+ } else if (isHr) {
270
+ stream.skipToEnd();
271
+ state.hr = true;
272
+ state.thisLine.hr = true;
273
+ return tokenTypes.hr;
274
+ } else if (stream.peek() === '[') {
275
+ return switchInline(stream, state, footnoteLink);
276
+ }
277
+
278
+ return switchInline(stream, state, state.inline);
279
+ }
280
+
281
+ function htmlBlock(stream, state) {
282
+ var style = htmlMode.token(stream, state.htmlState);
283
+ if (!htmlModeMissing) {
284
+ var inner = CodeMirror.innerMode(htmlMode, state.htmlState)
285
+ if ((inner.mode.name == "xml" && inner.state.tagStart === null &&
286
+ (!inner.state.context && inner.state.tokenize.isInText)) ||
287
+ (state.md_inside && stream.current().indexOf(">") > -1)) {
288
+ state.f = inlineNormal;
289
+ state.block = blockNormal;
290
+ state.htmlState = null;
291
+ }
292
+ }
293
+ return style;
294
+ }
295
+
296
+ function local(stream, state) {
297
+ var currListInd = state.listStack[state.listStack.length - 1] || 0;
298
+ var hasExitedList = state.indentation < currListInd;
299
+ var maxFencedEndInd = currListInd + 3;
300
+ if (state.fencedEndRE && state.indentation <= maxFencedEndInd && (hasExitedList || stream.match(state.fencedEndRE))) {
301
+ if (modeCfg.highlightFormatting) state.formatting = "code-block";
302
+ var returnType;
303
+ if (!hasExitedList) returnType = getType(state)
304
+ state.localMode = state.localState = null;
305
+ state.block = blockNormal;
306
+ state.f = inlineNormal;
307
+ state.fencedEndRE = null;
308
+ state.code = 0
309
+ state.thisLine.fencedCodeEnd = true;
310
+ if (hasExitedList) return switchBlock(stream, state, state.block);
311
+ return returnType;
312
+ } else if (state.localMode) {
313
+ return state.localMode.token(stream, state.localState);
314
+ } else {
315
+ stream.skipToEnd();
316
+ return tokenTypes.code;
317
+ }
318
+ }
319
+
320
+ // Inline
321
+ function getType(state) {
322
+ var styles = [];
323
+
324
+ if (state.formatting) {
325
+ styles.push(tokenTypes.formatting);
326
+
327
+ if (typeof state.formatting === "string") state.formatting = [state.formatting];
328
+
329
+ for (var i = 0; i < state.formatting.length; i++) {
330
+ styles.push(tokenTypes.formatting + "-" + state.formatting[i]);
331
+
332
+ if (state.formatting[i] === "header") {
333
+ styles.push(tokenTypes.formatting + "-" + state.formatting[i] + "-" + state.header);
334
+ }
335
+
336
+ // Add `formatting-quote` and `formatting-quote-#` for blockquotes
337
+ // Add `error` instead if the maximum blockquote nesting depth is passed
338
+ if (state.formatting[i] === "quote") {
339
+ if (!modeCfg.maxBlockquoteDepth || modeCfg.maxBlockquoteDepth >= state.quote) {
340
+ styles.push(tokenTypes.formatting + "-" + state.formatting[i] + "-" + state.quote);
341
+ } else {
342
+ styles.push("error");
343
+ }
344
+ }
345
+ }
346
+ }
347
+
348
+ if (state.taskOpen) {
349
+ styles.push("meta");
350
+ return styles.length ? styles.join(' ') : null;
351
+ }
352
+ if (state.taskClosed) {
353
+ styles.push("property");
354
+ return styles.length ? styles.join(' ') : null;
355
+ }
356
+
357
+ if (state.linkHref) {
358
+ styles.push(tokenTypes.linkHref, "url");
359
+ } else { // Only apply inline styles to non-url text
360
+ if (state.strong) { styles.push(tokenTypes.strong); }
361
+ if (state.em) { styles.push(tokenTypes.em); }
362
+ if (state.strikethrough) { styles.push(tokenTypes.strikethrough); }
363
+ if (state.emoji) { styles.push(tokenTypes.emoji); }
364
+ if (state.linkText) { styles.push(tokenTypes.linkText); }
365
+ if (state.code) { styles.push(tokenTypes.code); }
366
+ if (state.image) { styles.push(tokenTypes.image); }
367
+ if (state.imageAltText) { styles.push(tokenTypes.imageAltText, "link"); }
368
+ if (state.imageMarker) { styles.push(tokenTypes.imageMarker); }
369
+ }
370
+
371
+ if (state.header) { styles.push(tokenTypes.header, tokenTypes.header + "-" + state.header); }
372
+
373
+ if (state.quote) {
374
+ styles.push(tokenTypes.quote);
375
+
376
+ // Add `quote-#` where the maximum for `#` is modeCfg.maxBlockquoteDepth
377
+ if (!modeCfg.maxBlockquoteDepth || modeCfg.maxBlockquoteDepth >= state.quote) {
378
+ styles.push(tokenTypes.quote + "-" + state.quote);
379
+ } else {
380
+ styles.push(tokenTypes.quote + "-" + modeCfg.maxBlockquoteDepth);
381
+ }
382
+ }
383
+
384
+ if (state.list !== false) {
385
+ var listMod = (state.listStack.length - 1) % 3;
386
+ if (!listMod) {
387
+ styles.push(tokenTypes.list1);
388
+ } else if (listMod === 1) {
389
+ styles.push(tokenTypes.list2);
390
+ } else {
391
+ styles.push(tokenTypes.list3);
392
+ }
393
+ }
394
+
395
+ if (state.trailingSpaceNewLine) {
396
+ styles.push("trailing-space-new-line");
397
+ } else if (state.trailingSpace) {
398
+ styles.push("trailing-space-" + (state.trailingSpace % 2 ? "a" : "b"));
399
+ }
400
+
401
+ return styles.length ? styles.join(' ') : null;
402
+ }
403
+
404
+ function handleText(stream, state) {
405
+ if (stream.match(textRE, true)) {
406
+ return getType(state);
407
+ }
408
+ return undefined;
409
+ }
410
+
411
+ function inlineNormal(stream, state) {
412
+ var style = state.text(stream, state);
413
+ if (typeof style !== 'undefined')
414
+ return style;
415
+
416
+ if (state.list) { // List marker (*, +, -, 1., etc)
417
+ state.list = null;
418
+ return getType(state);
419
+ }
420
+
421
+ if (state.taskList) {
422
+ var taskOpen = stream.match(taskListRE, true)[1] === " ";
423
+ if (taskOpen) state.taskOpen = true;
424
+ else state.taskClosed = true;
425
+ if (modeCfg.highlightFormatting) state.formatting = "task";
426
+ state.taskList = false;
427
+ return getType(state);
428
+ }
429
+
430
+ state.taskOpen = false;
431
+ state.taskClosed = false;
432
+
433
+ if (state.header && stream.match(/^#+$/, true)) {
434
+ if (modeCfg.highlightFormatting) state.formatting = "header";
435
+ return getType(state);
436
+ }
437
+
438
+ var ch = stream.next();
439
+
440
+ // Matches link titles present on next line
441
+ if (state.linkTitle) {
442
+ state.linkTitle = false;
443
+ var matchCh = ch;
444
+ if (ch === '(') {
445
+ matchCh = ')';
446
+ }
447
+ matchCh = (matchCh+'').replace(/([.?*+^\[\]\\(){}|-])/g, "\\$1");
448
+ var regex = '^\\s*(?:[^' + matchCh + '\\\\]+|\\\\\\\\|\\\\.)' + matchCh;
449
+ if (stream.match(new RegExp(regex), true)) {
450
+ return tokenTypes.linkHref;
451
+ }
452
+ }
453
+
454
+ // If this block is changed, it may need to be updated in GFM mode
455
+ if (ch === '`') {
456
+ var previousFormatting = state.formatting;
457
+ if (modeCfg.highlightFormatting) state.formatting = "code";
458
+ stream.eatWhile('`');
459
+ var count = stream.current().length
460
+ if (state.code == 0 && (!state.quote || count == 1)) {
461
+ state.code = count
462
+ return getType(state)
463
+ } else if (count == state.code) { // Must be exact
464
+ var t = getType(state)
465
+ state.code = 0
466
+ return t
467
+ } else {
468
+ state.formatting = previousFormatting
469
+ return getType(state)
470
+ }
471
+ } else if (state.code) {
472
+ return getType(state);
473
+ }
474
+
475
+ if (ch === '\\') {
476
+ stream.next();
477
+ if (modeCfg.highlightFormatting) {
478
+ var type = getType(state);
479
+ var formattingEscape = tokenTypes.formatting + "-escape";
480
+ return type ? type + " " + formattingEscape : formattingEscape;
481
+ }
482
+ }
483
+
484
+ if (ch === '!' && stream.match(/\[[^\]]*\] ?(?:\(|\[)/, false)) {
485
+ state.imageMarker = true;
486
+ state.image = true;
487
+ if (modeCfg.highlightFormatting) state.formatting = "image";
488
+ return getType(state);
489
+ }
490
+
491
+ if (ch === '[' && state.imageMarker && stream.match(/[^\]]*\](\(.*?\)| ?\[.*?\])/, false)) {
492
+ state.imageMarker = false;
493
+ state.imageAltText = true
494
+ if (modeCfg.highlightFormatting) state.formatting = "image";
495
+ return getType(state);
496
+ }
497
+
498
+ if (ch === ']' && state.imageAltText) {
499
+ if (modeCfg.highlightFormatting) state.formatting = "image";
500
+ var type = getType(state);
501
+ state.imageAltText = false;
502
+ state.image = false;
503
+ state.inline = state.f = linkHref;
504
+ return type;
505
+ }
506
+
507
+ if (ch === '[' && !state.image) {
508
+ if (state.linkText && stream.match(/^.*?\]/)) return getType(state)
509
+ state.linkText = true;
510
+ if (modeCfg.highlightFormatting) state.formatting = "link";
511
+ return getType(state);
512
+ }
513
+
514
+ if (ch === ']' && state.linkText) {
515
+ if (modeCfg.highlightFormatting) state.formatting = "link";
516
+ var type = getType(state);
517
+ state.linkText = false;
518
+ state.inline = state.f = stream.match(/\(.*?\)| ?\[.*?\]/, false) ? linkHref : inlineNormal
519
+ return type;
520
+ }
521
+
522
+ if (ch === '<' && stream.match(/^(https?|ftps?):\/\/(?:[^\\>]|\\.)+>/, false)) {
523
+ state.f = state.inline = linkInline;
524
+ if (modeCfg.highlightFormatting) state.formatting = "link";
525
+ var type = getType(state);
526
+ if (type){
527
+ type += " ";
528
+ } else {
529
+ type = "";
530
+ }
531
+ return type + tokenTypes.linkInline;
532
+ }
533
+
534
+ if (ch === '<' && stream.match(/^[^> \\]+@(?:[^\\>]|\\.)+>/, false)) {
535
+ state.f = state.inline = linkInline;
536
+ if (modeCfg.highlightFormatting) state.formatting = "link";
537
+ var type = getType(state);
538
+ if (type){
539
+ type += " ";
540
+ } else {
541
+ type = "";
542
+ }
543
+ return type + tokenTypes.linkEmail;
544
+ }
545
+
546
+ if (modeCfg.xml && ch === '<' && stream.match(/^(!--|\?|!\[CDATA\[|[a-z][a-z0-9-]*(?:\s+[a-z_:.\-]+(?:\s*=\s*[^>]+)?)*\s*(?:>|$))/i, false)) {
547
+ var end = stream.string.indexOf(">", stream.pos);
548
+ if (end != -1) {
549
+ var atts = stream.string.substring(stream.start, end);
550
+ if (/markdown\s*=\s*('|"){0,1}1('|"){0,1}/.test(atts)) state.md_inside = true;
551
+ }
552
+ stream.backUp(1);
553
+ state.htmlState = CodeMirror.startState(htmlMode);
554
+ return switchBlock(stream, state, htmlBlock);
555
+ }
556
+
557
+ if (modeCfg.xml && ch === '<' && stream.match(/^\/\w*?>/)) {
558
+ state.md_inside = false;
559
+ return "tag";
560
+ } else if (ch === "*" || ch === "_") {
561
+ var len = 1, before = stream.pos == 1 ? " " : stream.string.charAt(stream.pos - 2)
562
+ while (len < 3 && stream.eat(ch)) len++
563
+ var after = stream.peek() || " "
564
+ // See http://spec.commonmark.org/0.27/#emphasis-and-strong-emphasis
565
+ var leftFlanking = !/\s/.test(after) && (!punctuation.test(after) || /\s/.test(before) || punctuation.test(before))
566
+ var rightFlanking = !/\s/.test(before) && (!punctuation.test(before) || /\s/.test(after) || punctuation.test(after))
567
+ var setEm = null, setStrong = null
568
+ if (len % 2) { // Em
569
+ if (!state.em && leftFlanking && (ch === "*" || !rightFlanking || punctuation.test(before)))
570
+ setEm = true
571
+ else if (state.em == ch && rightFlanking && (ch === "*" || !leftFlanking || punctuation.test(after)))
572
+ setEm = false
573
+ }
574
+ if (len > 1) { // Strong
575
+ if (!state.strong && leftFlanking && (ch === "*" || !rightFlanking || punctuation.test(before)))
576
+ setStrong = true
577
+ else if (state.strong == ch && rightFlanking && (ch === "*" || !leftFlanking || punctuation.test(after)))
578
+ setStrong = false
579
+ }
580
+ if (setStrong != null || setEm != null) {
581
+ if (modeCfg.highlightFormatting) state.formatting = setEm == null ? "strong" : setStrong == null ? "em" : "strong em"
582
+ if (setEm === true) state.em = ch
583
+ if (setStrong === true) state.strong = ch
584
+ var t = getType(state)
585
+ if (setEm === false) state.em = false
586
+ if (setStrong === false) state.strong = false
587
+ return t
588
+ }
589
+ } else if (ch === ' ') {
590
+ if (stream.eat('*') || stream.eat('_')) { // Probably surrounded by spaces
591
+ if (stream.peek() === ' ') { // Surrounded by spaces, ignore
592
+ return getType(state);
593
+ } else { // Not surrounded by spaces, back up pointer
594
+ stream.backUp(1);
595
+ }
596
+ }
597
+ }
598
+
599
+ if (modeCfg.strikethrough) {
600
+ if (ch === '~' && stream.eatWhile(ch)) {
601
+ if (state.strikethrough) {// Remove strikethrough
602
+ if (modeCfg.highlightFormatting) state.formatting = "strikethrough";
603
+ var t = getType(state);
604
+ state.strikethrough = false;
605
+ return t;
606
+ } else if (stream.match(/^[^\s]/, false)) {// Add strikethrough
607
+ state.strikethrough = true;
608
+ if (modeCfg.highlightFormatting) state.formatting = "strikethrough";
609
+ return getType(state);
610
+ }
611
+ } else if (ch === ' ') {
612
+ if (stream.match(/^~~/, true)) { // Probably surrounded by space
613
+ if (stream.peek() === ' ') { // Surrounded by spaces, ignore
614
+ return getType(state);
615
+ } else { // Not surrounded by spaces, back up pointer
616
+ stream.backUp(2);
617
+ }
618
+ }
619
+ }
620
+ }
621
+
622
+ if (modeCfg.emoji && ch === ":" && stream.match(/^(?:[a-z_\d+][a-z_\d+-]*|\-[a-z_\d+][a-z_\d+-]*):/)) {
623
+ state.emoji = true;
624
+ if (modeCfg.highlightFormatting) state.formatting = "emoji";
625
+ var retType = getType(state);
626
+ state.emoji = false;
627
+ return retType;
628
+ }
629
+
630
+ if (ch === ' ') {
631
+ if (stream.match(/^ +$/, false)) {
632
+ state.trailingSpace++;
633
+ } else if (state.trailingSpace) {
634
+ state.trailingSpaceNewLine = true;
635
+ }
636
+ }
637
+
638
+ return getType(state);
639
+ }
640
+
641
+ function linkInline(stream, state) {
642
+ var ch = stream.next();
643
+
644
+ if (ch === ">") {
645
+ state.f = state.inline = inlineNormal;
646
+ if (modeCfg.highlightFormatting) state.formatting = "link";
647
+ var type = getType(state);
648
+ if (type){
649
+ type += " ";
650
+ } else {
651
+ type = "";
652
+ }
653
+ return type + tokenTypes.linkInline;
654
+ }
655
+
656
+ stream.match(/^[^>]+/, true);
657
+
658
+ return tokenTypes.linkInline;
659
+ }
660
+
661
+ function linkHref(stream, state) {
662
+ // Check if space, and return NULL if so (to avoid marking the space)
663
+ if(stream.eatSpace()){
664
+ return null;
665
+ }
666
+ var ch = stream.next();
667
+ if (ch === '(' || ch === '[') {
668
+ state.f = state.inline = getLinkHrefInside(ch === "(" ? ")" : "]");
669
+ if (modeCfg.highlightFormatting) state.formatting = "link-string";
670
+ state.linkHref = true;
671
+ return getType(state);
672
+ }
673
+ return 'error';
674
+ }
675
+
676
+ var linkRE = {
677
+ ")": /^(?:[^\\\(\)]|\\.|\((?:[^\\\(\)]|\\.)*\))*?(?=\))/,
678
+ "]": /^(?:[^\\\[\]]|\\.|\[(?:[^\\\[\]]|\\.)*\])*?(?=\])/
679
+ }
680
+
681
+ function getLinkHrefInside(endChar) {
682
+ return function(stream, state) {
683
+ var ch = stream.next();
684
+
685
+ if (ch === endChar) {
686
+ state.f = state.inline = inlineNormal;
687
+ if (modeCfg.highlightFormatting) state.formatting = "link-string";
688
+ var returnState = getType(state);
689
+ state.linkHref = false;
690
+ return returnState;
691
+ }
692
+
693
+ stream.match(linkRE[endChar])
694
+ state.linkHref = true;
695
+ return getType(state);
696
+ };
697
+ }
698
+
699
+ function footnoteLink(stream, state) {
700
+ if (stream.match(/^([^\]\\]|\\.)*\]:/, false)) {
701
+ state.f = footnoteLinkInside;
702
+ stream.next(); // Consume [
703
+ if (modeCfg.highlightFormatting) state.formatting = "link";
704
+ state.linkText = true;
705
+ return getType(state);
706
+ }
707
+ return switchInline(stream, state, inlineNormal);
708
+ }
709
+
710
+ function footnoteLinkInside(stream, state) {
711
+ if (stream.match(/^\]:/, true)) {
712
+ state.f = state.inline = footnoteUrl;
713
+ if (modeCfg.highlightFormatting) state.formatting = "link";
714
+ var returnType = getType(state);
715
+ state.linkText = false;
716
+ return returnType;
717
+ }
718
+
719
+ stream.match(/^([^\]\\]|\\.)+/, true);
720
+
721
+ return tokenTypes.linkText;
722
+ }
723
+
724
+ function footnoteUrl(stream, state) {
725
+ // Check if space, and return NULL if so (to avoid marking the space)
726
+ if(stream.eatSpace()){
727
+ return null;
728
+ }
729
+ // Match URL
730
+ stream.match(/^[^\s]+/, true);
731
+ // Check for link title
732
+ if (stream.peek() === undefined) { // End of line, set flag to check next line
733
+ state.linkTitle = true;
734
+ } else { // More content on line, check if link title
735
+ stream.match(/^(?:\s+(?:"(?:[^"\\]|\\\\|\\.)+"|'(?:[^'\\]|\\\\|\\.)+'|\((?:[^)\\]|\\\\|\\.)+\)))?/, true);
736
+ }
737
+ state.f = state.inline = inlineNormal;
738
+ return tokenTypes.linkHref + " url";
739
+ }
740
+
741
+ var mode = {
742
+ startState: function() {
743
+ return {
744
+ f: blockNormal,
745
+
746
+ prevLine: {stream: null},
747
+ thisLine: {stream: null},
748
+
749
+ block: blockNormal,
750
+ htmlState: null,
751
+ indentation: 0,
752
+
753
+ inline: inlineNormal,
754
+ text: handleText,
755
+
756
+ formatting: false,
757
+ linkText: false,
758
+ linkHref: false,
759
+ linkTitle: false,
760
+ code: 0,
761
+ em: false,
762
+ strong: false,
763
+ header: 0,
764
+ setext: 0,
765
+ hr: false,
766
+ taskList: false,
767
+ list: false,
768
+ listStack: [],
769
+ quote: 0,
770
+ trailingSpace: 0,
771
+ trailingSpaceNewLine: false,
772
+ strikethrough: false,
773
+ emoji: false,
774
+ fencedEndRE: null
775
+ };
776
+ },
777
+
778
+ copyState: function(s) {
779
+ return {
780
+ f: s.f,
781
+
782
+ prevLine: s.prevLine,
783
+ thisLine: s.thisLine,
784
+
785
+ block: s.block,
786
+ htmlState: s.htmlState && CodeMirror.copyState(htmlMode, s.htmlState),
787
+ indentation: s.indentation,
788
+
789
+ localMode: s.localMode,
790
+ localState: s.localMode ? CodeMirror.copyState(s.localMode, s.localState) : null,
791
+
792
+ inline: s.inline,
793
+ text: s.text,
794
+ formatting: false,
795
+ linkText: s.linkText,
796
+ linkTitle: s.linkTitle,
797
+ linkHref: s.linkHref,
798
+ code: s.code,
799
+ em: s.em,
800
+ strong: s.strong,
801
+ strikethrough: s.strikethrough,
802
+ emoji: s.emoji,
803
+ header: s.header,
804
+ setext: s.setext,
805
+ hr: s.hr,
806
+ taskList: s.taskList,
807
+ list: s.list,
808
+ listStack: s.listStack.slice(0),
809
+ quote: s.quote,
810
+ indentedCode: s.indentedCode,
811
+ trailingSpace: s.trailingSpace,
812
+ trailingSpaceNewLine: s.trailingSpaceNewLine,
813
+ md_inside: s.md_inside,
814
+ fencedEndRE: s.fencedEndRE
815
+ };
816
+ },
817
+
818
+ token: function(stream, state) {
819
+
820
+ // Reset state.formatting
821
+ state.formatting = false;
822
+
823
+ if (stream != state.thisLine.stream) {
824
+ state.header = 0;
825
+ state.hr = false;
826
+
827
+ if (stream.match(/^\s*$/, true)) {
828
+ blankLine(state);
829
+ return null;
830
+ }
831
+
832
+ state.prevLine = state.thisLine
833
+ state.thisLine = {stream: stream}
834
+
835
+ // Reset state.taskList
836
+ state.taskList = false;
837
+
838
+ // Reset state.trailingSpace
839
+ state.trailingSpace = 0;
840
+ state.trailingSpaceNewLine = false;
841
+
842
+ if (!state.localState) {
843
+ state.f = state.block;
844
+ if (state.f != htmlBlock) {
845
+ var indentation = stream.match(/^\s*/, true)[0].replace(/\t/g, expandedTab).length;
846
+ state.indentation = indentation;
847
+ state.indentationDiff = null;
848
+ if (indentation > 0) return null;
849
+ }
850
+ }
851
+ }
852
+ return state.f(stream, state);
853
+ },
854
+
855
+ innerMode: function(state) {
856
+ if (state.block == htmlBlock) return {state: state.htmlState, mode: htmlMode};
857
+ if (state.localState) return {state: state.localState, mode: state.localMode};
858
+ return {state: state, mode: mode};
859
+ },
860
+
861
+ indent: function(state, textAfter, line) {
862
+ if (state.block == htmlBlock && htmlMode.indent) return htmlMode.indent(state.htmlState, textAfter, line)
863
+ if (state.localState && state.localMode.indent) return state.localMode.indent(state.localState, textAfter, line)
864
+ return CodeMirror.Pass
865
+ },
866
+
867
+ blankLine: blankLine,
868
+
869
+ getType: getType,
870
+
871
+ blockCommentStart: "<!--",
872
+ blockCommentEnd: "-->",
873
+ closeBrackets: "()[]{}''\"\"``",
874
+ fold: "markdown"
875
+ };
876
+ return mode;
877
+ }, "xml");
878
+
879
+ CodeMirror.defineMIME("text/markdown", "markdown");
880
+
881
+ CodeMirror.defineMIME("text/x-markdown", "markdown");
882
+
883
+ });