prism-rails 1.6.0.3 → 1.19.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (341) hide show
  1. checksums.yaml +5 -5
  2. data/CHANGELOG.md +3 -0
  3. data/README.md +88 -44
  4. data/lib/prism-rails/version.rb +1 -1
  5. data/vendor/assets/javascripts/languages/index.js +82 -0
  6. data/vendor/assets/javascripts/{prism → languages}/prism-abap.js +2 -2
  7. data/vendor/assets/javascripts/languages/prism-abnf.js +54 -0
  8. data/vendor/assets/javascripts/{prism → languages}/prism-actionscript.js +3 -5
  9. data/vendor/assets/javascripts/{prism → languages}/prism-ada.js +2 -2
  10. data/vendor/assets/javascripts/languages/prism-antlr4.js +65 -0
  11. data/vendor/assets/javascripts/languages/prism-apacheconf.js +47 -0
  12. data/vendor/assets/javascripts/{prism → languages}/prism-apl.js +8 -5
  13. data/vendor/assets/javascripts/{prism → languages}/prism-applescript.js +3 -3
  14. data/vendor/assets/javascripts/languages/prism-aql.js +41 -0
  15. data/vendor/assets/javascripts/languages/prism-arduino.js +5 -0
  16. data/vendor/assets/javascripts/languages/prism-arff.js +10 -0
  17. data/vendor/assets/javascripts/{prism → languages}/prism-asciidoc.js +23 -60
  18. data/vendor/assets/javascripts/languages/prism-asm6502.js +28 -0
  19. data/vendor/assets/javascripts/{prism → languages}/prism-aspnet.js +22 -10
  20. data/vendor/assets/javascripts/languages/prism-autohotkey.js +27 -0
  21. data/vendor/assets/javascripts/{prism → languages}/prism-autoit.js +1 -0
  22. data/vendor/assets/javascripts/languages/prism-bash.js +197 -0
  23. data/vendor/assets/javascripts/{prism → languages}/prism-basic.js +5 -2
  24. data/vendor/assets/javascripts/{prism → languages}/prism-batch.js +0 -0
  25. data/vendor/assets/javascripts/languages/prism-bbcode.js +27 -0
  26. data/vendor/assets/javascripts/{prism → languages}/prism-bison.js +0 -0
  27. data/vendor/assets/javascripts/languages/prism-bnf.js +21 -0
  28. data/vendor/assets/javascripts/{prism → languages}/prism-brainfuck.js +0 -0
  29. data/vendor/assets/javascripts/languages/prism-brightscript.js +44 -0
  30. data/vendor/assets/javascripts/languages/prism-bro.js +48 -0
  31. data/vendor/assets/javascripts/languages/prism-c.js +41 -0
  32. data/vendor/assets/javascripts/languages/prism-cil.js +27 -0
  33. data/vendor/assets/javascripts/languages/prism-clike.js +30 -0
  34. data/vendor/assets/javascripts/languages/prism-clojure.js +16 -0
  35. data/vendor/assets/javascripts/languages/prism-cmake.js +29 -0
  36. data/vendor/assets/javascripts/{prism → languages}/prism-coffeescript.js +6 -5
  37. data/vendor/assets/javascripts/languages/prism-concurnas.js +48 -0
  38. data/vendor/assets/javascripts/languages/prism-core.js +627 -0
  39. data/vendor/assets/javascripts/languages/prism-cpp.js +21 -0
  40. data/vendor/assets/javascripts/{prism → languages}/prism-crystal.js +5 -7
  41. data/vendor/assets/javascripts/languages/prism-csharp.js +81 -0
  42. data/vendor/assets/javascripts/languages/prism-csp.js +25 -0
  43. data/vendor/assets/javascripts/languages/prism-css-extras.js +109 -0
  44. data/vendor/assets/javascripts/languages/prism-css.js +62 -0
  45. data/vendor/assets/javascripts/{prism → languages}/prism-d.js +49 -34
  46. data/vendor/assets/javascripts/{prism → languages}/prism-dart.js +8 -2
  47. data/vendor/assets/javascripts/languages/prism-diff.js +54 -0
  48. data/vendor/assets/javascripts/languages/prism-django.js +60 -0
  49. data/vendor/assets/javascripts/languages/prism-dns-zone-file.js +33 -0
  50. data/vendor/assets/javascripts/languages/prism-docker.js +11 -0
  51. data/vendor/assets/javascripts/languages/prism-ebnf.js +22 -0
  52. data/vendor/assets/javascripts/{prism → languages}/prism-eiffel.js +20 -7
  53. data/vendor/assets/javascripts/languages/prism-ejs.js +24 -0
  54. data/vendor/assets/javascripts/{prism → languages}/prism-elixir.js +14 -15
  55. data/vendor/assets/javascripts/languages/prism-elm.js +44 -0
  56. data/vendor/assets/javascripts/languages/prism-erb.js +20 -0
  57. data/vendor/assets/javascripts/{prism → languages}/prism-erlang.js +7 -4
  58. data/vendor/assets/javascripts/languages/prism-etlua.js +23 -0
  59. data/vendor/assets/javascripts/languages/prism-factor.js +403 -0
  60. data/vendor/assets/javascripts/languages/prism-firestore-security-rules.js +35 -0
  61. data/vendor/assets/javascripts/languages/prism-flow.js +35 -0
  62. data/vendor/assets/javascripts/{prism → languages}/prism-fortran.js +5 -2
  63. data/vendor/assets/javascripts/languages/prism-fsharp.js +67 -0
  64. data/vendor/assets/javascripts/languages/prism-ftl.js +97 -0
  65. data/vendor/assets/javascripts/languages/prism-gcode.js +15 -0
  66. data/vendor/assets/javascripts/languages/prism-gdscript.js +27 -0
  67. data/vendor/assets/javascripts/languages/prism-gedcom.js +28 -0
  68. data/vendor/assets/javascripts/languages/prism-gherkin.js +85 -0
  69. data/vendor/assets/javascripts/{prism → languages}/prism-git.js +2 -2
  70. data/vendor/assets/javascripts/{prism → languages}/prism-glsl.js +3 -3
  71. data/vendor/assets/javascripts/languages/prism-gml.js +7 -0
  72. data/vendor/assets/javascripts/languages/prism-go.js +12 -0
  73. data/vendor/assets/javascripts/languages/prism-graphql.js +31 -0
  74. data/vendor/assets/javascripts/{prism → languages}/prism-groovy.js +12 -10
  75. data/vendor/assets/javascripts/{prism → languages}/prism-haml.js +14 -26
  76. data/vendor/assets/javascripts/languages/prism-handlebars.js +37 -0
  77. data/vendor/assets/javascripts/languages/prism-haskell.js +38 -0
  78. data/vendor/assets/javascripts/{prism → languages}/prism-haxe.js +4 -2
  79. data/vendor/assets/javascripts/languages/prism-hcl.js +65 -0
  80. data/vendor/assets/javascripts/languages/prism-hpkp.js +20 -0
  81. data/vendor/assets/javascripts/languages/prism-hsts.js +20 -0
  82. data/vendor/assets/javascripts/languages/prism-http.js +77 -0
  83. data/vendor/assets/javascripts/languages/prism-ichigojam.js +15 -0
  84. data/vendor/assets/javascripts/{prism → languages}/prism-icon.js +4 -1
  85. data/vendor/assets/javascripts/{prism → languages}/prism-inform7.js +6 -3
  86. data/vendor/assets/javascripts/{prism → languages}/prism-ini.js +2 -2
  87. data/vendor/assets/javascripts/languages/prism-io.js +31 -0
  88. data/vendor/assets/javascripts/{prism → languages}/prism-j.js +5 -2
  89. data/vendor/assets/javascripts/{prism → languages}/prism-jade.js +0 -0
  90. data/vendor/assets/javascripts/languages/prism-java.js +63 -0
  91. data/vendor/assets/javascripts/languages/prism-javadoc.js +54 -0
  92. data/vendor/assets/javascripts/languages/prism-javadoclike.js +87 -0
  93. data/vendor/assets/javascripts/languages/prism-javascript.js +91 -0
  94. data/vendor/assets/javascripts/languages/prism-javastacktrace.js +93 -0
  95. data/vendor/assets/javascripts/{prism → languages}/prism-jolie.js +9 -10
  96. data/vendor/assets/javascripts/languages/prism-jq.js +67 -0
  97. data/vendor/assets/javascripts/languages/prism-js-extras.js +104 -0
  98. data/vendor/assets/javascripts/languages/prism-js-templates.js +346 -0
  99. data/vendor/assets/javascripts/languages/prism-jsdoc.js +73 -0
  100. data/vendor/assets/javascripts/languages/prism-json.js +19 -0
  101. data/vendor/assets/javascripts/languages/prism-json5.js +23 -0
  102. data/vendor/assets/javascripts/languages/prism-jsonp.js +7 -0
  103. data/vendor/assets/javascripts/languages/prism-jsx.js +126 -0
  104. data/vendor/assets/javascripts/languages/prism-julia.js +13 -0
  105. data/vendor/assets/javascripts/languages/prism-keyman.js +14 -0
  106. data/vendor/assets/javascripts/{prism → languages}/prism-kotlin.js +6 -6
  107. data/vendor/assets/javascripts/{prism → languages}/prism-latex.js +16 -13
  108. data/vendor/assets/javascripts/languages/prism-latte.js +69 -0
  109. data/vendor/assets/javascripts/{prism → languages}/prism-less.js +3 -9
  110. data/vendor/assets/javascripts/languages/prism-lilypond.js +69 -0
  111. data/vendor/assets/javascripts/languages/prism-liquid.js +12 -0
  112. data/vendor/assets/javascripts/languages/prism-lisp.js +197 -0
  113. data/vendor/assets/javascripts/{prism → languages}/prism-livescript.js +19 -18
  114. data/vendor/assets/javascripts/{prism → languages}/prism-lolcode.js +3 -2
  115. data/vendor/assets/javascripts/{prism → languages}/prism-lua.js +0 -0
  116. data/vendor/assets/javascripts/{prism → languages}/prism-makefile.js +5 -2
  117. data/vendor/assets/javascripts/languages/prism-markdown.js +344 -0
  118. data/vendor/assets/javascripts/languages/prism-markup-templating.js +123 -0
  119. data/vendor/assets/javascripts/languages/prism-markup.js +103 -0
  120. data/vendor/assets/javascripts/{prism → languages}/prism-matlab.js +5 -3
  121. data/vendor/assets/javascripts/{prism → languages}/prism-mel.js +7 -3
  122. data/vendor/assets/javascripts/{prism → languages}/prism-mizar.js +0 -0
  123. data/vendor/assets/javascripts/{prism → languages}/prism-monkey.js +9 -3
  124. data/vendor/assets/javascripts/languages/prism-moonscript.js +57 -0
  125. data/vendor/assets/javascripts/languages/prism-n1ql.js +18 -0
  126. data/vendor/assets/javascripts/languages/prism-n4js.js +14 -0
  127. data/vendor/assets/javascripts/languages/prism-nand2tetris-hdl.js +9 -0
  128. data/vendor/assets/javascripts/languages/prism-nasm.js +24 -0
  129. data/vendor/assets/javascripts/languages/prism-neon.js +41 -0
  130. data/vendor/assets/javascripts/languages/prism-nginx.js +11 -0
  131. data/vendor/assets/javascripts/{prism → languages}/prism-nim.js +4 -1
  132. data/vendor/assets/javascripts/{prism → languages}/prism-nix.js +2 -1
  133. data/vendor/assets/javascripts/languages/prism-nsis.js +29 -0
  134. data/vendor/assets/javascripts/languages/prism-objectivec.js +7 -0
  135. data/vendor/assets/javascripts/languages/prism-ocaml.js +41 -0
  136. data/vendor/assets/javascripts/languages/prism-opencl.js +54 -0
  137. data/vendor/assets/javascripts/{prism → languages}/prism-oz.js +6 -2
  138. data/vendor/assets/javascripts/{prism → languages}/prism-parigp.js +4 -1
  139. data/vendor/assets/javascripts/languages/prism-parser.js +73 -0
  140. data/vendor/assets/javascripts/{prism → languages}/prism-pascal.js +9 -4
  141. data/vendor/assets/javascripts/languages/prism-pascaligo.js +62 -0
  142. data/vendor/assets/javascripts/languages/prism-pcaxis.js +53 -0
  143. data/vendor/assets/javascripts/languages/prism-perl.js +191 -0
  144. data/vendor/assets/javascripts/{prism → languages}/prism-php-extras.js +3 -3
  145. data/vendor/assets/javascripts/languages/prism-php.js +130 -0
  146. data/vendor/assets/javascripts/languages/prism-phpdoc.js +27 -0
  147. data/vendor/assets/javascripts/languages/prism-plsql.js +26 -0
  148. data/vendor/assets/javascripts/languages/prism-powershell.js +60 -0
  149. data/vendor/assets/javascripts/{prism → languages}/prism-processing.js +2 -2
  150. data/vendor/assets/javascripts/{prism → languages}/prism-prolog.js +4 -1
  151. data/vendor/assets/javascripts/{prism → languages}/prism-properties.js +2 -2
  152. data/vendor/assets/javascripts/languages/prism-protobuf.js +36 -0
  153. data/vendor/assets/javascripts/languages/prism-pug.js +181 -0
  154. data/vendor/assets/javascripts/{prism → languages}/prism-puppet.js +7 -2
  155. data/vendor/assets/javascripts/{prism → languages}/prism-pure.js +19 -17
  156. data/vendor/assets/javascripts/languages/prism-python.js +64 -0
  157. data/vendor/assets/javascripts/{prism → languages}/prism-q.js +13 -6
  158. data/vendor/assets/javascripts/languages/prism-qml.js +58 -0
  159. data/vendor/assets/javascripts/{prism → languages}/prism-qore.js +7 -4
  160. data/vendor/assets/javascripts/{prism → languages}/prism-r.js +5 -2
  161. data/vendor/assets/javascripts/{prism → languages}/prism-reason.js +4 -8
  162. data/vendor/assets/javascripts/languages/prism-regex.js +97 -0
  163. data/vendor/assets/javascripts/languages/prism-renpy.js +29 -0
  164. data/vendor/assets/javascripts/{prism → languages}/prism-rest.js +4 -4
  165. data/vendor/assets/javascripts/{prism → languages}/prism-rip.js +7 -3
  166. data/vendor/assets/javascripts/{prism → languages}/prism-roboconf.js +0 -0
  167. data/vendor/assets/javascripts/languages/prism-robotframework.js +104 -0
  168. data/vendor/assets/javascripts/{prism → languages}/prism-ruby.js +49 -15
  169. data/vendor/assets/javascripts/languages/prism-rust.js +68 -0
  170. data/vendor/assets/javascripts/languages/prism-sas.js +302 -0
  171. data/vendor/assets/javascripts/{prism → languages}/prism-sass.js +1 -2
  172. data/vendor/assets/javascripts/{prism → languages}/prism-scala.js +10 -11
  173. data/vendor/assets/javascripts/languages/prism-scheme.js +33 -0
  174. data/vendor/assets/javascripts/{prism → languages}/prism-scss.js +18 -16
  175. data/vendor/assets/javascripts/languages/prism-shell-session.js +54 -0
  176. data/vendor/assets/javascripts/{prism → languages}/prism-smalltalk.js +9 -9
  177. data/vendor/assets/javascripts/languages/prism-smarty.js +87 -0
  178. data/vendor/assets/javascripts/languages/prism-solidity.js +20 -0
  179. data/vendor/assets/javascripts/languages/prism-solution-file.js +51 -0
  180. data/vendor/assets/javascripts/languages/prism-soy.js +96 -0
  181. data/vendor/assets/javascripts/languages/prism-sparql.js +18 -0
  182. data/vendor/assets/javascripts/languages/prism-splunk-spl.js +24 -0
  183. data/vendor/assets/javascripts/languages/prism-sqf.js +34 -0
  184. data/vendor/assets/javascripts/languages/prism-sql.js +24 -0
  185. data/vendor/assets/javascripts/{prism → languages}/prism-stylus.js +16 -7
  186. data/vendor/assets/javascripts/languages/prism-swift.js +25 -0
  187. data/vendor/assets/javascripts/languages/prism-t4-cs.js +1 -0
  188. data/vendor/assets/javascripts/languages/prism-t4-templating.js +49 -0
  189. data/vendor/assets/javascripts/languages/prism-t4-vb.js +1 -0
  190. data/vendor/assets/javascripts/languages/prism-tap.js +20 -0
  191. data/vendor/assets/javascripts/languages/prism-tcl.js +46 -0
  192. data/vendor/assets/javascripts/{prism → languages}/prism-textile.js +35 -32
  193. data/vendor/assets/javascripts/languages/prism-toml.js +43 -0
  194. data/vendor/assets/javascripts/languages/prism-tsx.js +2 -0
  195. data/vendor/assets/javascripts/languages/prism-tt2.js +53 -0
  196. data/vendor/assets/javascripts/languages/prism-turtle.js +54 -0
  197. data/vendor/assets/javascripts/{prism → languages}/prism-twig.js +8 -8
  198. data/vendor/assets/javascripts/languages/prism-typescript.js +7 -0
  199. data/vendor/assets/javascripts/languages/prism-vala.js +74 -0
  200. data/vendor/assets/javascripts/languages/prism-vbnet.js +15 -0
  201. data/vendor/assets/javascripts/languages/prism-velocity.js +72 -0
  202. data/vendor/assets/javascripts/languages/prism-verilog.js +20 -0
  203. data/vendor/assets/javascripts/{prism → languages}/prism-vhdl.js +2 -2
  204. data/vendor/assets/javascripts/{prism → languages}/prism-vim.js +1 -1
  205. data/vendor/assets/javascripts/languages/prism-visual-basic.js +34 -0
  206. data/vendor/assets/javascripts/languages/prism-wasm.js +31 -0
  207. data/vendor/assets/javascripts/{prism → languages}/prism-wiki.js +7 -6
  208. data/vendor/assets/javascripts/languages/prism-xeora.js +114 -0
  209. data/vendor/assets/javascripts/{prism → languages}/prism-xojo.js +1 -1
  210. data/vendor/assets/javascripts/languages/prism-xquery.js +162 -0
  211. data/vendor/assets/javascripts/languages/prism-yaml.js +76 -0
  212. data/vendor/assets/javascripts/languages/prism-zig.js +97 -0
  213. data/vendor/assets/javascripts/prism-plugin/prism-autolinker.js +13 -8
  214. data/vendor/assets/javascripts/prism-plugin/prism-autoloader.js +306 -95
  215. data/vendor/assets/javascripts/prism-plugin/prism-command-line.js +96 -38
  216. data/vendor/assets/javascripts/prism-plugin/prism-copy-to-clipboard.js +10 -10
  217. data/vendor/assets/javascripts/prism-plugin/prism-custom-class.js +89 -23
  218. data/vendor/assets/javascripts/prism-plugin/prism-data-uri-highlight.js +2 -2
  219. data/vendor/assets/javascripts/prism-plugin/prism-diff-highlight.js +83 -0
  220. data/vendor/assets/javascripts/prism-plugin/prism-download-button.js +19 -0
  221. data/vendor/assets/javascripts/prism-plugin/prism-file-highlight.js +53 -41
  222. data/vendor/assets/javascripts/prism-plugin/prism-filter-highlight-all.js +125 -0
  223. data/vendor/assets/javascripts/prism-plugin/prism-inline-color.js +88 -0
  224. data/vendor/assets/javascripts/prism-plugin/prism-jsonp-highlight.js +124 -69
  225. data/vendor/assets/javascripts/prism-plugin/prism-keep-markup.js +4 -2
  226. data/vendor/assets/javascripts/prism-plugin/prism-line-highlight.js +195 -115
  227. data/vendor/assets/javascripts/prism-plugin/prism-line-numbers.js +154 -43
  228. data/vendor/assets/javascripts/prism-plugin/prism-match-braces.js +184 -0
  229. data/vendor/assets/javascripts/prism-plugin/prism-normalize-whitespace.js +29 -11
  230. data/vendor/assets/javascripts/prism-plugin/prism-previewers.js +703 -0
  231. data/vendor/assets/javascripts/prism-plugin/prism-remove-initial-line-feed.js +2 -2
  232. data/vendor/assets/javascripts/prism-plugin/prism-show-invisibles.js +83 -18
  233. data/vendor/assets/javascripts/prism-plugin/prism-show-language.js +190 -19
  234. data/vendor/assets/javascripts/prism-plugin/prism-toolbar.js +53 -8
  235. data/vendor/assets/javascripts/prism-plugin/prism-unescaped-markup.js +11 -7
  236. data/vendor/assets/javascripts/prism-plugin/prism-wpd.js +12 -12
  237. data/vendor/assets/javascripts/prism.js +210 -127
  238. data/vendor/assets/stylesheets/prism-plugin/prism-diff-highlight.css +13 -0
  239. data/vendor/assets/stylesheets/prism-plugin/prism-inline-color.css +9 -0
  240. data/vendor/assets/stylesheets/prism-plugin/prism-line-highlight.css +5 -0
  241. data/vendor/assets/stylesheets/prism-plugin/prism-line-numbers.css +4 -3
  242. data/vendor/assets/stylesheets/prism-plugin/prism-match-braces.css +29 -0
  243. data/vendor/assets/stylesheets/prism-plugin/prism-previewers.css +242 -0
  244. data/vendor/assets/stylesheets/prism-plugin/prism-show-invisibles.css +7 -6
  245. data/vendor/assets/stylesheets/prism-plugin/prism-toolbar.css +21 -15
  246. data/vendor/assets/stylesheets/prism-plugin/prism-unescaped-markup.css +4 -4
  247. data/vendor/assets/stylesheets/prism-theme/prism-a11y-dark.css +161 -0
  248. data/vendor/assets/stylesheets/{prism-atom-dark.css → prism-theme/prism-atom-dark.css} +10 -13
  249. data/vendor/assets/stylesheets/prism-theme/prism-autolinker.css +3 -0
  250. data/vendor/assets/stylesheets/{prism-base16-ateliersulphurpool.light.css → prism-theme/prism-base16-ateliersulphurpool.light.css} +57 -53
  251. data/vendor/assets/stylesheets/{prism-cb.css → prism-theme/prism-cb.css} +27 -27
  252. data/vendor/assets/stylesheets/prism-theme/prism-command-line.css +33 -0
  253. data/vendor/assets/stylesheets/{prism-coy.css → prism-theme/prism-coy.css} +14 -9
  254. data/vendor/assets/stylesheets/prism-theme/prism-darcula.css +159 -0
  255. data/vendor/assets/stylesheets/{prism-dark.css → prism-theme/prism-dark.css} +2 -1
  256. data/vendor/assets/stylesheets/prism-theme/prism-dracula.css +122 -0
  257. data/vendor/assets/stylesheets/{prism-duotone-dark.css → prism-theme/prism-duotone-dark.css} +55 -51
  258. data/vendor/assets/stylesheets/{prism-duotone-earth.css → prism-theme/prism-duotone-earth.css} +55 -51
  259. data/vendor/assets/stylesheets/{prism-duotone-forest.css → prism-theme/prism-duotone-forest.css} +55 -51
  260. data/vendor/assets/stylesheets/{prism-duotone-light.css → prism-theme/prism-duotone-light.css} +55 -51
  261. data/vendor/assets/stylesheets/{prism-duotone-sea.css → prism-theme/prism-duotone-sea.css} +55 -51
  262. data/vendor/assets/stylesheets/{prism-duotone-space.css → prism-theme/prism-duotone-space.css} +55 -51
  263. data/vendor/assets/stylesheets/{prism-funky.css → prism-theme/prism-funky.css} +16 -2
  264. data/vendor/assets/stylesheets/{prism-ghcolors.css → prism-theme/prism-ghcolors.css} +47 -44
  265. data/vendor/assets/stylesheets/prism-theme/prism-hopscotch.css +132 -0
  266. data/vendor/assets/stylesheets/prism-theme/prism-line-highlight.css +49 -0
  267. data/vendor/assets/stylesheets/prism-theme/prism-line-numbers.css +41 -0
  268. data/vendor/assets/stylesheets/prism-theme/prism-material-dark.css +205 -0
  269. data/vendor/assets/stylesheets/prism-theme/prism-material-light.css +207 -0
  270. data/vendor/assets/stylesheets/prism-theme/prism-material-oceanic.css +210 -0
  271. data/vendor/assets/stylesheets/prism-theme/prism-nord.css +124 -0
  272. data/vendor/assets/stylesheets/{prism-okaidia.css → prism-theme/prism-okaidia.css} +4 -2
  273. data/vendor/assets/stylesheets/prism-theme/prism-pojoaque.css +151 -0
  274. data/vendor/assets/stylesheets/prism-theme/prism-previewers.css +242 -0
  275. data/vendor/assets/stylesheets/prism-theme/prism-shades-of-purple.css +200 -0
  276. data/vendor/assets/stylesheets/prism-theme/prism-show-invisibles.css +34 -0
  277. data/vendor/assets/stylesheets/{prism-show-language.css → prism-theme/prism-show-language.css} +0 -0
  278. data/vendor/assets/stylesheets/{prism-solarizedlight.css → prism-theme/prism-solarizedlight.css} +5 -3
  279. data/vendor/assets/stylesheets/prism-theme/prism-synthwave84.css +140 -0
  280. data/vendor/assets/stylesheets/{prism-tomorrow.css → prism-theme/prism-tomorrow.css} +1 -0
  281. data/vendor/assets/stylesheets/{prism-toolbar.css → prism-theme/prism-toolbar.css} +15 -15
  282. data/vendor/assets/stylesheets/{prism-twilight.css → prism-theme/prism-twilight.css} +2 -1
  283. data/vendor/assets/stylesheets/prism-theme/prism-unescaped-markup.css +10 -0
  284. data/vendor/assets/stylesheets/{prism-vs.css → prism-theme/prism-vs.css} +62 -55
  285. data/vendor/assets/stylesheets/prism-theme/prism-vsc-dark-plus.css +216 -0
  286. data/vendor/assets/stylesheets/prism-theme/prism-wpd.css +11 -0
  287. data/vendor/assets/stylesheets/prism-theme/prism-xonokai.css +189 -0
  288. data/vendor/assets/stylesheets/prism.css +5 -3
  289. metadata +262 -148
  290. data/vendor/assets/javascripts/prism/prism-apacheconf.js +0 -47
  291. data/vendor/assets/javascripts/prism/prism-autohotkey.js +0 -27
  292. data/vendor/assets/javascripts/prism/prism-bash.js +0 -80
  293. data/vendor/assets/javascripts/prism/prism-bro.js +0 -50
  294. data/vendor/assets/javascripts/prism/prism-c.js +0 -33
  295. data/vendor/assets/javascripts/prism/prism-clike.js +0 -29
  296. data/vendor/assets/javascripts/prism/prism-core.js +0 -511
  297. data/vendor/assets/javascripts/prism/prism-cpp.js +0 -12
  298. data/vendor/assets/javascripts/prism/prism-csharp.js +0 -32
  299. data/vendor/assets/javascripts/prism/prism-css-extras.js +0 -16
  300. data/vendor/assets/javascripts/prism/prism-css.js +0 -51
  301. data/vendor/assets/javascripts/prism/prism-diff.js +0 -20
  302. data/vendor/assets/javascripts/prism/prism-docker.js +0 -9
  303. data/vendor/assets/javascripts/prism/prism-fsharp.js +0 -33
  304. data/vendor/assets/javascripts/prism/prism-gherkin.js +0 -78
  305. data/vendor/assets/javascripts/prism/prism-go.js +0 -9
  306. data/vendor/assets/javascripts/prism/prism-graphql.js +0 -24
  307. data/vendor/assets/javascripts/prism/prism-handlebars.js +0 -83
  308. data/vendor/assets/javascripts/prism/prism-haskell.js +0 -35
  309. data/vendor/assets/javascripts/prism/prism-http.js +0 -50
  310. data/vendor/assets/javascripts/prism/prism-java.js +0 -16
  311. data/vendor/assets/javascripts/prism/prism-javascript.js +0 -48
  312. data/vendor/assets/javascripts/prism/prism-json.js +0 -11
  313. data/vendor/assets/javascripts/prism/prism-jsx.js +0 -27
  314. data/vendor/assets/javascripts/prism/prism-julia.js +0 -12
  315. data/vendor/assets/javascripts/prism/prism-keyman.js +0 -14
  316. data/vendor/assets/javascripts/prism/prism-markdown.js +0 -120
  317. data/vendor/assets/javascripts/prism/prism-markup.js +0 -46
  318. data/vendor/assets/javascripts/prism/prism-nasm.js +0 -24
  319. data/vendor/assets/javascripts/prism/prism-nginx.js +0 -11
  320. data/vendor/assets/javascripts/prism/prism-nsis.js +0 -26
  321. data/vendor/assets/javascripts/prism/prism-objectivec.js +0 -5
  322. data/vendor/assets/javascripts/prism/prism-ocaml.js +0 -21
  323. data/vendor/assets/javascripts/prism/prism-parser.js +0 -66
  324. data/vendor/assets/javascripts/prism/prism-perl.js +0 -140
  325. data/vendor/assets/javascripts/prism/prism-php.js +0 -111
  326. data/vendor/assets/javascripts/prism/prism-powershell.js +0 -52
  327. data/vendor/assets/javascripts/prism/prism-protobuf.js +0 -8
  328. data/vendor/assets/javascripts/prism/prism-python.js +0 -27
  329. data/vendor/assets/javascripts/prism/prism-rust.js +0 -53
  330. data/vendor/assets/javascripts/prism/prism-sas.js +0 -31
  331. data/vendor/assets/javascripts/prism/prism-scheme.js +0 -26
  332. data/vendor/assets/javascripts/prism/prism-smarty.js +0 -127
  333. data/vendor/assets/javascripts/prism/prism-sql.js +0 -17
  334. data/vendor/assets/javascripts/prism/prism-swift.js +0 -25
  335. data/vendor/assets/javascripts/prism/prism-tcl.js +0 -43
  336. data/vendor/assets/javascripts/prism/prism-typescript.js +0 -5
  337. data/vendor/assets/javascripts/prism/prism-verilog.js +0 -17
  338. data/vendor/assets/javascripts/prism/prism-yaml.js +0 -44
  339. data/vendor/assets/stylesheets/prism-hopscotch.css +0 -124
  340. data/vendor/assets/stylesheets/prism-pojoaque.css +0 -134
  341. data/vendor/assets/stylesheets/prism-xonokai.css +0 -164
@@ -8,21 +8,21 @@
8
8
 
9
9
  Prism.languages.less = Prism.languages.extend('css', {
10
10
  'comment': [
11
- /\/\*[\w\W]*?\*\//,
11
+ /\/\*[\s\S]*?\*\//,
12
12
  {
13
13
  pattern: /(^|[^\\])\/\/.*/,
14
14
  lookbehind: true
15
15
  }
16
16
  ],
17
17
  'atrule': {
18
- pattern: /@[\w-]+?(?:\([^{}]+\)|[^(){};])*?(?=\s*\{)/i,
18
+ pattern: /@[\w-]+?(?:\((?:[^(){}]|\([^(){}]*\))*\)|[^(){};])*?(?=\s*\{)/,
19
19
  inside: {
20
20
  'punctuation': /[:()]/
21
21
  }
22
22
  },
23
23
  // selectors and mixins are considered the same
24
24
  'selector': {
25
- pattern: /(?:@\{[\w-]+\}|[^{};\s@])(?:@\{[\w-]+\}|\([^{}]*\)|[^{};@])*?(?=\s*\{)/,
25
+ pattern: /(?:@\{[\w-]+\}|[^{};\s@])(?:@\{[\w-]+\}|\((?:[^(){}]|\([^(){}]*\))*\)|[^(){};@])*?(?=\s*\{)/,
26
26
  inside: {
27
27
  // mixin parameters
28
28
  'variable': /@+[\w-]+/
@@ -30,15 +30,9 @@ Prism.languages.less = Prism.languages.extend('css', {
30
30
  },
31
31
 
32
32
  'property': /(?:@\{[\w-]+\}|[\w-])+(?:\+_?)?(?=\s*:)/i,
33
- 'punctuation': /[{}();:,]/,
34
33
  'operator': /[+\-*\/]/
35
34
  });
36
35
 
37
- // Invert function and punctuation positions
38
- Prism.languages.insertBefore('less', 'punctuation', {
39
- 'function': Prism.languages.less.function
40
- });
41
-
42
36
  Prism.languages.insertBefore('less', 'property', {
43
37
  'variable': [
44
38
  // Variable declaration (the colon must be consumed!)
@@ -0,0 +1,69 @@
1
+ (function (Prism) {
2
+
3
+ var schemeExpression = /\((?:[^();"#\\]|\\[\s\S]|;.*|"(?:[^"\\]|\\.)*"|#(?:\{(?:(?!#\})[\s\S])*#\}|[^{])|<expr>)*\)/.source;
4
+ // allow for up to pow(2, recursivenessLog2) many levels of recursive brace expressions
5
+ // For some reason, this can't be 4
6
+ var recursivenessLog2 = 5;
7
+ for (var i = 0; i < recursivenessLog2; i++) {
8
+ schemeExpression = schemeExpression.replace(/<expr>/g, schemeExpression);
9
+ }
10
+ schemeExpression = schemeExpression.replace(/<expr>/g, /[^\s\S]/.source);
11
+
12
+
13
+ var lilypond = Prism.languages.lilypond = {
14
+ 'comment': /%(?:(?!\{).*|\{[\s\S]*?%\})/,
15
+ 'embedded-scheme': {
16
+ pattern: RegExp(/(^|[=\s])#(?:"(?:[^"\\]|\\.)*"|[^\s()"]*(?:[^\s()]|<expr>))/.source.replace(/<expr>/g, schemeExpression), 'm'),
17
+ lookbehind: true,
18
+ greedy: true,
19
+ inside: {
20
+ 'scheme': {
21
+ pattern: /^(#)[\s\S]+$/,
22
+ lookbehind: true,
23
+ alias: 'language-scheme',
24
+ inside: {
25
+ 'embedded-lilypond': {
26
+ pattern: /#\{[\s\S]*?#\}/,
27
+ greedy: true,
28
+ inside: {
29
+ 'punctuation': /^#\{|#\}$/,
30
+ 'lilypond': {
31
+ pattern: /[\s\S]+/,
32
+ alias: 'language-lilypond',
33
+ inside: null // see below
34
+ }
35
+ }
36
+ },
37
+ rest: Prism.languages.scheme
38
+ }
39
+ },
40
+ 'punctuation': /#/
41
+ }
42
+ },
43
+ 'string': {
44
+ pattern: /"(?:[^"\\]|\\.)*"/,
45
+ greedy: true
46
+ },
47
+ 'class-name': {
48
+ pattern: /(\\new\s+)[\w-]+/,
49
+ lookbehind: true
50
+ },
51
+ 'keyword': {
52
+ pattern: /\\[a-z][-\w]*/i,
53
+ inside: {
54
+ 'punctuation': /^\\/
55
+ }
56
+ },
57
+ 'operator': /[=|]|<<|>>/,
58
+ 'punctuation': {
59
+ pattern: /(^|[a-z\d])(?:'+|,+|[_^]?-[_^]?(?:[-+^!>._]|(?=\d))|[_^]\.?|[.!])|[{}()[\]<>^~]|\\[()[\]<>\\!]|--|__/,
60
+ lookbehind: true
61
+ },
62
+ 'number': /\b\d+(?:\/\d+)?\b/
63
+ };
64
+
65
+ lilypond['embedded-scheme'].inside['scheme'].inside['embedded-lilypond'].inside['lilypond'].inside = lilypond;
66
+
67
+ Prism.languages.ly = lilypond;
68
+
69
+ }(Prism));
@@ -0,0 +1,12 @@
1
+ Prism.languages.liquid = {
2
+ 'keyword': /\b(?:comment|endcomment|if|elsif|else|endif|unless|endunless|for|endfor|case|endcase|when|in|break|assign|continue|limit|offset|range|reversed|raw|endraw|capture|endcapture|tablerow|endtablerow)\b/,
3
+ 'number': /\b0b[01]+\b|\b0x[\da-f]*\.?[\da-fp-]+\b|(?:\b\d+\.?\d*|\B\.\d+)(?:e[+-]?\d+)?[df]?/i,
4
+ 'operator': {
5
+ pattern: /(^|[^.])(?:\+[+=]?|-[-=]?|!=?|<<?=?|>>?>?=?|==?|&[&=]?|\|[|=]?|\*=?|\/=?|%=?|\^=?|[?:~])/m,
6
+ lookbehind: true
7
+ },
8
+ 'function': {
9
+ pattern: /(^|[\s;|&])(?:append|prepend|capitalize|cycle|cols|increment|decrement|abs|at_least|at_most|ceil|compact|concat|date|default|divided_by|downcase|escape|escape_once|first|floor|join|last|lstrip|map|minus|modulo|newline_to_br|plus|remove|remove_first|replace|replace_first|reverse|round|rstrip|size|slice|sort|sort_natural|split|strip|strip_html|strip_newlines|times|truncate|truncatewords|uniq|upcase|url_decode|url_encode|include|paginate)(?=$|[\s;|&])/,
10
+ lookbehind: true
11
+ }
12
+ };
@@ -0,0 +1,197 @@
1
+ (function (Prism) {
2
+ // Functions to construct regular expressions
3
+ // simple form
4
+ // e.g. (interactive ... or (interactive)
5
+ function simple_form(name) {
6
+ return RegExp('(\\()' + name + '(?=[\\s\\)])');
7
+ }
8
+ // booleans and numbers
9
+ function primitive(pattern) {
10
+ return RegExp('([\\s([])' + pattern + '(?=[\\s)])');
11
+ }
12
+
13
+ // Patterns in regular expressions
14
+
15
+ // Symbol name. See https://www.gnu.org/software/emacs/manual/html_node/elisp/Symbol-Type.html
16
+ // & and : are excluded as they are usually used for special purposes
17
+ var symbol = '[-+*/_~!@$%^=<>{}\\w]+';
18
+ // symbol starting with & used in function arguments
19
+ var marker = '&' + symbol;
20
+ // Open parenthesis for look-behind
21
+ var par = '(\\()';
22
+ var endpar = '(?=\\))';
23
+ // End the pattern with look-ahead space
24
+ var space = '(?=\\s)';
25
+
26
+ var language = {
27
+ // Three or four semicolons are considered a heading.
28
+ // See https://www.gnu.org/software/emacs/manual/html_node/elisp/Comment-Tips.html
29
+ heading: {
30
+ pattern: /;;;.*/,
31
+ alias: ['comment', 'title']
32
+ },
33
+ comment: /;.*/,
34
+ string: {
35
+ pattern: /"(?:[^"\\]|\\.)*"/,
36
+ greedy: true,
37
+ inside: {
38
+ argument: /[-A-Z]+(?=[.,\s])/,
39
+ symbol: RegExp('`' + symbol + "'")
40
+ }
41
+ },
42
+ 'quoted-symbol': {
43
+ pattern: RegExp("#?'" + symbol),
44
+ alias: ['variable', 'symbol']
45
+ },
46
+ 'lisp-property': {
47
+ pattern: RegExp(':' + symbol),
48
+ alias: 'property'
49
+ },
50
+ splice: {
51
+ pattern: RegExp(',@?' + symbol),
52
+ alias: ['symbol', 'variable']
53
+ },
54
+ keyword: [
55
+ {
56
+ pattern: RegExp(
57
+ par +
58
+ '(?:(?:lexical-)?let\\*?|(?:cl-)?letf|if|when|while|unless|cons|cl-loop|and|or|not|cond|setq|error|message|null|require|provide|use-package)' +
59
+ space
60
+ ),
61
+ lookbehind: true
62
+ },
63
+ {
64
+ pattern: RegExp(
65
+ par + '(?:for|do|collect|return|finally|append|concat|in|by)' + space
66
+ ),
67
+ lookbehind: true
68
+ },
69
+ ],
70
+ declare: {
71
+ pattern: simple_form('declare'),
72
+ lookbehind: true,
73
+ alias: 'keyword'
74
+ },
75
+ interactive: {
76
+ pattern: simple_form('interactive'),
77
+ lookbehind: true,
78
+ alias: 'keyword'
79
+ },
80
+ boolean: {
81
+ pattern: primitive('(?:t|nil)'),
82
+ lookbehind: true
83
+ },
84
+ number: {
85
+ pattern: primitive('[-+]?\\d+(?:\\.\\d*)?'),
86
+ lookbehind: true
87
+ },
88
+ defvar: {
89
+ pattern: RegExp(par + 'def(?:var|const|custom|group)\\s+' + symbol),
90
+ lookbehind: true,
91
+ inside: {
92
+ keyword: /^def[a-z]+/,
93
+ variable: RegExp(symbol)
94
+ }
95
+ },
96
+ defun: {
97
+ pattern: RegExp(
98
+ par +
99
+ '(?:cl-)?(?:defun\\*?|defmacro)\\s+' +
100
+ symbol +
101
+ '\\s+\\([\\s\\S]*?\\)'
102
+ ),
103
+ lookbehind: true,
104
+ inside: {
105
+ keyword: /^(?:cl-)?def\S+/,
106
+ // See below, this property needs to be defined later so that it can
107
+ // reference the language object.
108
+ arguments: null,
109
+ function: {
110
+ pattern: RegExp('(^\\s)' + symbol),
111
+ lookbehind: true
112
+ },
113
+ punctuation: /[()]/
114
+ }
115
+ },
116
+ lambda: {
117
+ pattern: RegExp(par + 'lambda\\s+\\((?:&?' + symbol + '\\s*)*\\)'),
118
+ lookbehind: true,
119
+ inside: {
120
+ keyword: /^lambda/,
121
+ // See below, this property needs to be defined later so that it can
122
+ // reference the language object.
123
+ arguments: null,
124
+ punctuation: /[()]/
125
+ }
126
+ },
127
+ car: {
128
+ pattern: RegExp(par + symbol),
129
+ lookbehind: true
130
+ },
131
+ punctuation: [
132
+ // open paren, brackets, and close paren
133
+ /(?:['`,]?\(|[)\[\]])/,
134
+ // cons
135
+ {
136
+ pattern: /(\s)\.(?=\s)/,
137
+ lookbehind: true
138
+ },
139
+ ]
140
+ };
141
+
142
+ var arg = {
143
+ 'lisp-marker': RegExp(marker),
144
+ rest: {
145
+ argument: {
146
+ pattern: RegExp(symbol),
147
+ alias: 'variable'
148
+ },
149
+ varform: {
150
+ pattern: RegExp(par + symbol + '\\s+\\S[\\s\\S]*' + endpar),
151
+ lookbehind: true,
152
+ inside: {
153
+ string: language.string,
154
+ boolean: language.boolean,
155
+ number: language.number,
156
+ symbol: language.symbol,
157
+ punctuation: /[()]/
158
+ }
159
+ }
160
+ }
161
+ };
162
+
163
+ var forms = '\\S+(?:\\s+\\S+)*';
164
+
165
+ var arglist = {
166
+ pattern: RegExp(par + '[\\s\\S]*' + endpar),
167
+ lookbehind: true,
168
+ inside: {
169
+ 'rest-vars': {
170
+ pattern: RegExp('&(?:rest|body)\\s+' + forms),
171
+ inside: arg
172
+ },
173
+ 'other-marker-vars': {
174
+ pattern: RegExp('&(?:optional|aux)\\s+' + forms),
175
+ inside: arg
176
+ },
177
+ keys: {
178
+ pattern: RegExp('&key\\s+' + forms + '(?:\\s+&allow-other-keys)?'),
179
+ inside: arg
180
+ },
181
+ argument: {
182
+ pattern: RegExp(symbol),
183
+ alias: 'variable'
184
+ },
185
+ punctuation: /[()]/
186
+ }
187
+ };
188
+
189
+ language['lambda'].inside.arguments = arglist;
190
+ language['defun'].inside.arguments = Prism.util.clone(arglist);
191
+ language['defun'].inside.arguments.inside.sublist = arglist;
192
+
193
+ Prism.languages.lisp = language;
194
+ Prism.languages.elisp = language;
195
+ Prism.languages.emacs = language;
196
+ Prism.languages['emacs-lisp'] = language;
197
+ }(Prism));
@@ -1,10 +1,23 @@
1
1
  Prism.languages.livescript = {
2
+ 'comment': [
3
+ {
4
+ pattern: /(^|[^\\])\/\*[\s\S]*?\*\//,
5
+ lookbehind: true
6
+ },
7
+ {
8
+ pattern: /(^|[^\\])#.*/,
9
+ lookbehind: true
10
+ }
11
+ ],
2
12
  'interpolated-string': {
3
- pattern: /("""|")(?:\\[\s\S]|(?!\1)[^\\])*\1/,
13
+ /* Look-behind and look-ahead prevents wrong behavior of the greedy pattern
14
+ * forcing it to match """-quoted string when it would otherwise match "-quoted first. */
15
+ pattern: /(^|[^"])("""|")(?:\\[\s\S]|(?!\2)[^\\])*\2(?!")/,
16
+ lookbehind: true,
4
17
  greedy: true,
5
18
  inside: {
6
19
  'variable': {
7
- pattern: /(^|[^\\])#[a-z_](?:-?[a-z]|\d)*/m,
20
+ pattern: /(^|[^\\])#[a-z_](?:-?[a-z]|[\d_])*/m,
8
21
  lookbehind: true
9
22
  },
10
23
  'interpolation': {
@@ -21,18 +34,6 @@ Prism.languages.livescript = {
21
34
  'string': /[\s\S]+/
22
35
  }
23
36
  },
24
- 'comment': [
25
- {
26
- pattern: /(^|[^\\])\/\*[\w\W]*?\*\//,
27
- lookbehind: true,
28
- greedy: true
29
- },
30
- {
31
- pattern: /(^|[^\\])#.*/,
32
- lookbehind: true,
33
- greedy: true
34
- }
35
- ],
36
37
  'string': [
37
38
  {
38
39
  pattern: /('''|')(?:\\[\s\S]|(?!\1)[^\\])*\1/,
@@ -46,7 +47,7 @@ Prism.languages.livescript = {
46
47
  ],
47
48
  'regex': [
48
49
  {
49
- pattern: /\/\/(\[.+?]|\\.|(?!\/\/)[^\\])+\/\/[gimyu]{0,5}/,
50
+ pattern: /\/\/(?:\[.+?]|\\.|(?!\/\/)[^\\])+\/\/[gimyu]{0,5}/,
50
51
  greedy: true,
51
52
  inside: {
52
53
  'comment': {
@@ -56,7 +57,7 @@ Prism.languages.livescript = {
56
57
  }
57
58
  },
58
59
  {
59
- pattern: /\/(\[.+?]|\\.|[^/\\\r\n])+\/[gimyu]{0,5}/,
60
+ pattern: /\/(?:\[.+?]|\\.|[^/\\\r\n])+\/[gimyu]{0,5}/,
60
61
  greedy: true
61
62
  }
62
63
  ],
@@ -80,7 +81,7 @@ Prism.languages.livescript = {
80
81
  alias: 'variable'
81
82
  },
82
83
  'number': /\b(?:\d+~[\da-z]+|\d[\d_]*(?:\.\d[\d_]*)?(?:[a-z]\w*)?)/i,
83
- 'identifier': /[a-z_](?:-?[a-z]|\d)*/i,
84
+ 'identifier': /[a-z_](?:-?[a-z]|[\d_])*/i,
84
85
  'operator': [
85
86
  // Spaced .
86
87
  {
@@ -115,4 +116,4 @@ Prism.languages.livescript = {
115
116
  'punctuation': /[(){}\[\]|.,:;`]/
116
117
  };
117
118
 
118
- Prism.languages.livescript['interpolated-string'].inside['interpolation'].inside.rest = Prism.languages.livescript;
119
+ Prism.languages.livescript['interpolated-string'].inside['interpolation'].inside.rest = Prism.languages.livescript;
@@ -12,9 +12,10 @@ Prism.languages.lolcode = {
12
12
  /:\[[^\]]+\]/,
13
13
  /:[)>o":]/
14
14
  ]
15
- }
15
+ },
16
+ greedy: true
16
17
  },
17
- 'number': /(-|\b)\d*\.?\d+/,
18
+ 'number': /(?:\B-)?(?:\b\d+\.?\d*|\B\.\d+)/,
18
19
  'symbol': {
19
20
  pattern: /(^|\s)(?:A )?(?:YARN|NUMBR|NUMBAR|TROOF|BUKKIT|NOOB)(?=\s|,|$)/,
20
21
  lookbehind: true,
@@ -1,9 +1,12 @@
1
1
  Prism.languages.makefile = {
2
2
  'comment': {
3
- pattern: /(^|[^\\])#(?:\\(?:\r\n|[\s\S])|.)*/,
3
+ pattern: /(^|[^\\])#(?:\\(?:\r\n|[\s\S])|[^\\\r\n])*/,
4
4
  lookbehind: true
5
5
  },
6
- 'string': /(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,
6
+ 'string': {
7
+ pattern: /(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,
8
+ greedy: true
9
+ },
7
10
 
8
11
  // Built-in target names
9
12
  'builtin': /\.[A-Z][^:#=\s]+(?=\s*:(?!=))/,
@@ -0,0 +1,344 @@
1
+ (function (Prism) {
2
+
3
+ // Allow only one line break
4
+ var inner = /(?:\\.|[^\\\n\r]|(?:\n|\r\n?)(?!\n|\r\n?))/.source;
5
+
6
+ /**
7
+ * This function is intended for the creation of the bold or italic pattern.
8
+ *
9
+ * This also adds a lookbehind group to the given pattern to ensure that the pattern is not backslash-escaped.
10
+ *
11
+ * _Note:_ Keep in mind that this adds a capturing group.
12
+ *
13
+ * @param {string} pattern
14
+ * @param {boolean} starAlternative Whether to also add an alternative where all `_`s are replaced with `*`s.
15
+ * @returns {RegExp}
16
+ */
17
+ function createInline(pattern, starAlternative) {
18
+ pattern = pattern.replace(/<inner>/g, inner);
19
+ if (starAlternative) {
20
+ pattern = pattern + '|' + pattern.replace(/_/g, '\\*');
21
+ }
22
+ return RegExp(/((?:^|[^\\])(?:\\{2})*)/.source + '(?:' + pattern + ')');
23
+ }
24
+
25
+
26
+ var tableCell = /(?:\\.|``.+?``|`[^`\r\n]+`|[^\\|\r\n`])+/.source;
27
+ var tableRow = /\|?__(?:\|__)+\|?(?:(?:\n|\r\n?)|$)/.source.replace(/__/g, tableCell);
28
+ var tableLine = /\|?[ \t]*:?-{3,}:?[ \t]*(?:\|[ \t]*:?-{3,}:?[ \t]*)+\|?(?:\n|\r\n?)/.source;
29
+
30
+
31
+ Prism.languages.markdown = Prism.languages.extend('markup', {});
32
+ Prism.languages.insertBefore('markdown', 'prolog', {
33
+ 'blockquote': {
34
+ // > ...
35
+ pattern: /^>(?:[\t ]*>)*/m,
36
+ alias: 'punctuation'
37
+ },
38
+ 'table': {
39
+ pattern: RegExp('^' + tableRow + tableLine + '(?:' + tableRow + ')*', 'm'),
40
+ inside: {
41
+ 'table-data-rows': {
42
+ pattern: RegExp('^(' + tableRow + tableLine + ')(?:' + tableRow + ')*$'),
43
+ lookbehind: true,
44
+ inside: {
45
+ 'table-data': {
46
+ pattern: RegExp(tableCell),
47
+ inside: Prism.languages.markdown
48
+ },
49
+ 'punctuation': /\|/
50
+ }
51
+ },
52
+ 'table-line': {
53
+ pattern: RegExp('^(' + tableRow + ')' + tableLine + '$'),
54
+ lookbehind: true,
55
+ inside: {
56
+ 'punctuation': /\||:?-{3,}:?/
57
+ }
58
+ },
59
+ 'table-header-row': {
60
+ pattern: RegExp('^' + tableRow + '$'),
61
+ inside: {
62
+ 'table-header': {
63
+ pattern: RegExp(tableCell),
64
+ alias: 'important',
65
+ inside: Prism.languages.markdown
66
+ },
67
+ 'punctuation': /\|/
68
+ }
69
+ }
70
+ }
71
+ },
72
+ 'code': [
73
+ {
74
+ // Prefixed by 4 spaces or 1 tab and preceded by an empty line
75
+ pattern: /((?:^|\n)[ \t]*\n|(?:^|\r\n?)[ \t]*\r\n?)(?: {4}|\t).+(?:(?:\n|\r\n?)(?: {4}|\t).+)*/,
76
+ lookbehind: true,
77
+ alias: 'keyword'
78
+ },
79
+ {
80
+ // `code`
81
+ // ``code``
82
+ pattern: /``.+?``|`[^`\r\n]+`/,
83
+ alias: 'keyword'
84
+ },
85
+ {
86
+ // ```optional language
87
+ // code block
88
+ // ```
89
+ pattern: /^```[\s\S]*?^```$/m,
90
+ greedy: true,
91
+ inside: {
92
+ 'code-block': {
93
+ pattern: /^(```.*(?:\n|\r\n?))[\s\S]+?(?=(?:\n|\r\n?)^```$)/m,
94
+ lookbehind: true
95
+ },
96
+ 'code-language': {
97
+ pattern: /^(```).+/,
98
+ lookbehind: true
99
+ },
100
+ 'punctuation': /```/
101
+ }
102
+ }
103
+ ],
104
+ 'title': [
105
+ {
106
+ // title 1
107
+ // =======
108
+
109
+ // title 2
110
+ // -------
111
+ pattern: /\S.*(?:\n|\r\n?)(?:==+|--+)(?=[ \t]*$)/m,
112
+ alias: 'important',
113
+ inside: {
114
+ punctuation: /==+$|--+$/
115
+ }
116
+ },
117
+ {
118
+ // # title 1
119
+ // ###### title 6
120
+ pattern: /(^\s*)#+.+/m,
121
+ lookbehind: true,
122
+ alias: 'important',
123
+ inside: {
124
+ punctuation: /^#+|#+$/
125
+ }
126
+ }
127
+ ],
128
+ 'hr': {
129
+ // ***
130
+ // ---
131
+ // * * *
132
+ // -----------
133
+ pattern: /(^\s*)([*-])(?:[\t ]*\2){2,}(?=\s*$)/m,
134
+ lookbehind: true,
135
+ alias: 'punctuation'
136
+ },
137
+ 'list': {
138
+ // * item
139
+ // + item
140
+ // - item
141
+ // 1. item
142
+ pattern: /(^\s*)(?:[*+-]|\d+\.)(?=[\t ].)/m,
143
+ lookbehind: true,
144
+ alias: 'punctuation'
145
+ },
146
+ 'url-reference': {
147
+ // [id]: http://example.com "Optional title"
148
+ // [id]: http://example.com 'Optional title'
149
+ // [id]: http://example.com (Optional title)
150
+ // [id]: <http://example.com> "Optional title"
151
+ pattern: /!?\[[^\]]+\]:[\t ]+(?:\S+|<(?:\\.|[^>\\])+>)(?:[\t ]+(?:"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\((?:\\.|[^)\\])*\)))?/,
152
+ inside: {
153
+ 'variable': {
154
+ pattern: /^(!?\[)[^\]]+/,
155
+ lookbehind: true
156
+ },
157
+ 'string': /(?:"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\((?:\\.|[^)\\])*\))$/,
158
+ 'punctuation': /^[\[\]!:]|[<>]/
159
+ },
160
+ alias: 'url'
161
+ },
162
+ 'bold': {
163
+ // **strong**
164
+ // __strong__
165
+
166
+ // allow one nested instance of italic text using the same delimiter
167
+ pattern: createInline(/__(?:(?!_)<inner>|_(?:(?!_)<inner>)+_)+__/.source, true),
168
+ lookbehind: true,
169
+ greedy: true,
170
+ inside: {
171
+ 'content': {
172
+ pattern: /(^..)[\s\S]+(?=..$)/,
173
+ lookbehind: true,
174
+ inside: {} // see below
175
+ },
176
+ 'punctuation': /\*\*|__/
177
+ }
178
+ },
179
+ 'italic': {
180
+ // *em*
181
+ // _em_
182
+
183
+ // allow one nested instance of bold text using the same delimiter
184
+ pattern: createInline(/_(?:(?!_)<inner>|__(?:(?!_)<inner>)+__)+_/.source, true),
185
+ lookbehind: true,
186
+ greedy: true,
187
+ inside: {
188
+ 'content': {
189
+ pattern: /(^.)[\s\S]+(?=.$)/,
190
+ lookbehind: true,
191
+ inside: {} // see below
192
+ },
193
+ 'punctuation': /[*_]/
194
+ }
195
+ },
196
+ 'strike': {
197
+ // ~~strike through~~
198
+ // ~strike~
199
+ pattern: createInline(/(~~?)(?:(?!~)<inner>)+?\2/.source, false),
200
+ lookbehind: true,
201
+ greedy: true,
202
+ inside: {
203
+ 'content': {
204
+ pattern: /(^~~?)[\s\S]+(?=\1$)/,
205
+ lookbehind: true,
206
+ inside: {} // see below
207
+ },
208
+ 'punctuation': /~~?/
209
+ }
210
+ },
211
+ 'url': {
212
+ // [example](http://example.com "Optional title")
213
+ // [example][id]
214
+ // [example] [id]
215
+ pattern: createInline(/!?\[(?:(?!\])<inner>)+\](?:\([^\s)]+(?:[\t ]+"(?:\\.|[^"\\])*")?\)| ?\[(?:(?!\])<inner>)+\])/.source, false),
216
+ lookbehind: true,
217
+ greedy: true,
218
+ inside: {
219
+ 'variable': {
220
+ pattern: /(\[)[^\]]+(?=\]$)/,
221
+ lookbehind: true
222
+ },
223
+ 'content': {
224
+ pattern: /(^!?\[)[^\]]+(?=\])/,
225
+ lookbehind: true,
226
+ inside: {} // see below
227
+ },
228
+ 'string': {
229
+ pattern: /"(?:\\.|[^"\\])*"(?=\)$)/
230
+ }
231
+ }
232
+ }
233
+ });
234
+
235
+ ['url', 'bold', 'italic', 'strike'].forEach(function (token) {
236
+ ['url', 'bold', 'italic', 'strike'].forEach(function (inside) {
237
+ if (token !== inside) {
238
+ Prism.languages.markdown[token].inside.content.inside[inside] = Prism.languages.markdown[inside];
239
+ }
240
+ });
241
+ });
242
+
243
+ Prism.hooks.add('after-tokenize', function (env) {
244
+ if (env.language !== 'markdown' && env.language !== 'md') {
245
+ return;
246
+ }
247
+
248
+ function walkTokens(tokens) {
249
+ if (!tokens || typeof tokens === 'string') {
250
+ return;
251
+ }
252
+
253
+ for (var i = 0, l = tokens.length; i < l; i++) {
254
+ var token = tokens[i];
255
+
256
+ if (token.type !== 'code') {
257
+ walkTokens(token.content);
258
+ continue;
259
+ }
260
+
261
+ /*
262
+ * Add the correct `language-xxxx` class to this code block. Keep in mind that the `code-language` token
263
+ * is optional. But the grammar is defined so that there is only one case we have to handle:
264
+ *
265
+ * token.content = [
266
+ * <span class="punctuation">```</span>,
267
+ * <span class="code-language">xxxx</span>,
268
+ * '\n', // exactly one new lines (\r or \n or \r\n)
269
+ * <span class="code-block">...</span>,
270
+ * '\n', // exactly one new lines again
271
+ * <span class="punctuation">```</span>
272
+ * ];
273
+ */
274
+
275
+ var codeLang = token.content[1];
276
+ var codeBlock = token.content[3];
277
+
278
+ if (codeLang && codeBlock &&
279
+ codeLang.type === 'code-language' && codeBlock.type === 'code-block' &&
280
+ typeof codeLang.content === 'string') {
281
+
282
+ // this might be a language that Prism does not support
283
+
284
+ // do some replacements to support C++, C#, and F#
285
+ var lang = codeLang.content.replace(/\b#/g, 'sharp').replace(/\b\+\+/g, 'pp')
286
+ // only use the first word
287
+ lang = (/[a-z][\w-]*/i.exec(lang) || [''])[0].toLowerCase();
288
+ var alias = 'language-' + lang;
289
+
290
+ // add alias
291
+ if (!codeBlock.alias) {
292
+ codeBlock.alias = [alias];
293
+ } else if (typeof codeBlock.alias === 'string') {
294
+ codeBlock.alias = [codeBlock.alias, alias];
295
+ } else {
296
+ codeBlock.alias.push(alias);
297
+ }
298
+ }
299
+ }
300
+ }
301
+
302
+ walkTokens(env.tokens);
303
+ });
304
+
305
+ Prism.hooks.add('wrap', function (env) {
306
+ if (env.type !== 'code-block') {
307
+ return;
308
+ }
309
+
310
+ var codeLang = '';
311
+ for (var i = 0, l = env.classes.length; i < l; i++) {
312
+ var cls = env.classes[i];
313
+ var match = /language-(.+)/.exec(cls);
314
+ if (match) {
315
+ codeLang = match[1];
316
+ break;
317
+ }
318
+ }
319
+
320
+ var grammar = Prism.languages[codeLang];
321
+
322
+ if (!grammar) {
323
+ if (codeLang && codeLang !== 'none' && Prism.plugins.autoloader) {
324
+ var id = 'md-' + new Date().valueOf() + '-' + Math.floor(Math.random() * 1e16);
325
+ env.attributes['id'] = id;
326
+
327
+ Prism.plugins.autoloader.loadLanguages(codeLang, function () {
328
+ var ele = document.getElementById(id);
329
+ if (ele) {
330
+ ele.innerHTML = Prism.highlight(ele.textContent, Prism.languages[codeLang], codeLang);
331
+ }
332
+ });
333
+ }
334
+ } else {
335
+ // reverse Prism.util.encode
336
+ var code = env.content.replace(/&lt;/g, '<').replace(/&amp;/g, '&');
337
+
338
+ env.content = Prism.highlight(code, grammar, codeLang);
339
+ }
340
+ });
341
+
342
+ Prism.languages.md = Prism.languages.markdown;
343
+
344
+ }(Prism));