prism-rails 1.19.0 → 1.29.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (383) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +9 -0
  3. data/README.md +22 -1
  4. data/lib/prism-rails/version.rb +1 -1
  5. data/vendor/assets/javascripts/languages/prism-abap.js +17 -17
  6. data/vendor/assets/javascripts/languages/prism-abnf.js +3 -3
  7. data/vendor/assets/javascripts/languages/prism-actionscript.js +6 -2
  8. data/vendor/assets/javascripts/languages/prism-ada.js +9 -6
  9. data/vendor/assets/javascripts/languages/prism-agda.js +24 -0
  10. data/vendor/assets/javascripts/languages/prism-al.js +25 -0
  11. data/vendor/assets/javascripts/languages/prism-antlr4.js +1 -1
  12. data/vendor/assets/javascripts/languages/prism-apacheconf.js +3 -3
  13. data/vendor/assets/javascripts/languages/prism-apex.js +65 -0
  14. data/vendor/assets/javascripts/languages/prism-apl.js +3 -3
  15. data/vendor/assets/javascripts/languages/prism-applescript.js +5 -8
  16. data/vendor/assets/javascripts/languages/prism-aql.js +14 -6
  17. data/vendor/assets/javascripts/languages/prism-arduino.js +5 -3
  18. data/vendor/assets/javascripts/languages/prism-arff.js +1 -1
  19. data/vendor/assets/javascripts/languages/prism-armasm.js +49 -0
  20. data/vendor/assets/javascripts/languages/prism-arturo.js +105 -0
  21. data/vendor/assets/javascripts/languages/prism-asciidoc.js +13 -13
  22. data/vendor/assets/javascripts/languages/prism-asm6502.js +15 -14
  23. data/vendor/assets/javascripts/languages/prism-asmatmel.js +43 -0
  24. data/vendor/assets/javascripts/languages/prism-aspnet.js +6 -6
  25. data/vendor/assets/javascripts/languages/prism-autohotkey.js +31 -14
  26. data/vendor/assets/javascripts/languages/prism-autoit.js +16 -16
  27. data/vendor/assets/javascripts/languages/prism-avisynth.js +188 -0
  28. data/vendor/assets/javascripts/languages/prism-avro-idl.js +50 -0
  29. data/vendor/assets/javascripts/languages/prism-awk.js +32 -0
  30. data/vendor/assets/javascripts/languages/prism-bash.js +60 -22
  31. data/vendor/assets/javascripts/languages/prism-basic.js +4 -4
  32. data/vendor/assets/javascripts/languages/prism-batch.js +10 -10
  33. data/vendor/assets/javascripts/languages/prism-bbcode.js +3 -1
  34. data/vendor/assets/javascripts/languages/prism-bbj.js +19 -0
  35. data/vendor/assets/javascripts/languages/prism-bicep.js +77 -0
  36. data/vendor/assets/javascripts/languages/prism-birb.js +23 -0
  37. data/vendor/assets/javascripts/languages/prism-bison.js +2 -2
  38. data/vendor/assets/javascripts/languages/prism-bqn.js +63 -0
  39. data/vendor/assets/javascripts/languages/prism-brainfuck.js +1 -1
  40. data/vendor/assets/javascripts/languages/prism-brightscript.js +2 -2
  41. data/vendor/assets/javascripts/languages/prism-bro.js +9 -20
  42. data/vendor/assets/javascripts/languages/prism-bsl.js +75 -0
  43. data/vendor/assets/javascripts/languages/prism-c.js +53 -14
  44. data/vendor/assets/javascripts/languages/prism-cfscript.js +44 -0
  45. data/vendor/assets/javascripts/languages/prism-chaiscript.js +60 -0
  46. data/vendor/assets/javascripts/languages/prism-cil.js +5 -5
  47. data/vendor/assets/javascripts/languages/prism-cilkc.js +8 -0
  48. data/vendor/assets/javascripts/languages/prism-cilkcpp.js +9 -0
  49. data/vendor/assets/javascripts/languages/prism-clike.js +7 -6
  50. data/vendor/assets/javascripts/languages/prism-clojure.js +20 -5
  51. data/vendor/assets/javascripts/languages/prism-cmake.js +7 -7
  52. data/vendor/assets/javascripts/languages/prism-cobol.js +53 -0
  53. data/vendor/assets/javascripts/languages/prism-coffeescript.js +79 -75
  54. data/vendor/assets/javascripts/languages/prism-concurnas.js +33 -20
  55. data/vendor/assets/javascripts/languages/prism-cooklang.js +146 -0
  56. data/vendor/assets/javascripts/languages/prism-coq.js +54 -0
  57. data/vendor/assets/javascripts/languages/prism-core.js +1087 -451
  58. data/vendor/assets/javascripts/languages/prism-cpp.js +99 -21
  59. data/vendor/assets/javascripts/languages/prism-crystal.js +36 -30
  60. data/vendor/assets/javascripts/languages/prism-csharp.js +343 -58
  61. data/vendor/assets/javascripts/languages/prism-cshtml.js +199 -0
  62. data/vendor/assets/javascripts/languages/prism-csp.js +67 -16
  63. data/vendor/assets/javascripts/languages/prism-css-extras.js +27 -16
  64. data/vendor/assets/javascripts/languages/prism-css.js +28 -26
  65. data/vendor/assets/javascripts/languages/prism-csv.js +6 -0
  66. data/vendor/assets/javascripts/languages/prism-cue.js +84 -0
  67. data/vendor/assets/javascripts/languages/prism-cypher.js +36 -0
  68. data/vendor/assets/javascripts/languages/prism-d.js +15 -10
  69. data/vendor/assets/javascripts/languages/prism-dart.js +76 -21
  70. data/vendor/assets/javascripts/languages/prism-dataweave.js +41 -0
  71. data/vendor/assets/javascripts/languages/prism-dax.js +27 -0
  72. data/vendor/assets/javascripts/languages/prism-dhall.js +69 -0
  73. data/vendor/assets/javascripts/languages/prism-diff.js +15 -5
  74. data/vendor/assets/javascripts/languages/prism-django.js +8 -8
  75. data/vendor/assets/javascripts/languages/prism-dns-zone-file.js +3 -3
  76. data/vendor/assets/javascripts/languages/prism-docker.js +98 -11
  77. data/vendor/assets/javascripts/languages/prism-dot.js +76 -0
  78. data/vendor/assets/javascripts/languages/prism-ebnf.js +2 -2
  79. data/vendor/assets/javascripts/languages/prism-editorconfig.js +26 -0
  80. data/vendor/assets/javascripts/languages/prism-eiffel.js +5 -8
  81. data/vendor/assets/javascripts/languages/prism-ejs.js +4 -2
  82. data/vendor/assets/javascripts/languages/prism-elixir.js +21 -12
  83. data/vendor/assets/javascripts/languages/prism-elm.js +16 -15
  84. data/vendor/assets/javascripts/languages/prism-erb.js +12 -7
  85. data/vendor/assets/javascripts/languages/prism-erlang.js +6 -6
  86. data/vendor/assets/javascripts/languages/prism-excel-formula.js +66 -0
  87. data/vendor/assets/javascripts/languages/prism-factor.js +8 -8
  88. data/vendor/assets/javascripts/languages/prism-false.js +32 -0
  89. data/vendor/assets/javascripts/languages/prism-firestore-security-rules.js +2 -2
  90. data/vendor/assets/javascripts/languages/prism-flow.js +5 -5
  91. data/vendor/assets/javascripts/languages/prism-fortran.js +6 -6
  92. data/vendor/assets/javascripts/languages/prism-fsharp.js +20 -12
  93. data/vendor/assets/javascripts/languages/prism-ftl.js +12 -11
  94. data/vendor/assets/javascripts/languages/prism-gap.js +54 -0
  95. data/vendor/assets/javascripts/languages/prism-gcode.js +4 -3
  96. data/vendor/assets/javascripts/languages/prism-gdscript.js +2 -2
  97. data/vendor/assets/javascripts/languages/prism-gedcom.js +6 -6
  98. data/vendor/assets/javascripts/languages/prism-gettext.js +43 -0
  99. data/vendor/assets/javascripts/languages/prism-gherkin.js +7 -7
  100. data/vendor/assets/javascripts/languages/prism-git.js +3 -3
  101. data/vendor/assets/javascripts/languages/prism-glsl.js +2 -15
  102. data/vendor/assets/javascripts/languages/prism-gml.js +5 -5
  103. data/vendor/assets/javascripts/languages/prism-gn.js +51 -0
  104. data/vendor/assets/javascripts/languages/prism-go-module.js +24 -0
  105. data/vendor/assets/javascripts/languages/prism-go.js +21 -5
  106. data/vendor/assets/javascripts/languages/prism-gradle.js +63 -0
  107. data/vendor/assets/javascripts/languages/prism-graphql.js +187 -7
  108. data/vendor/assets/javascripts/languages/prism-groovy.js +56 -58
  109. data/vendor/assets/javascripts/languages/prism-haml.js +23 -16
  110. data/vendor/assets/javascripts/languages/prism-handlebars.js +10 -7
  111. data/vendor/assets/javascripts/languages/prism-haskell.js +42 -14
  112. data/vendor/assets/javascripts/languages/prism-haxe.js +54 -21
  113. data/vendor/assets/javascripts/languages/prism-hcl.js +12 -14
  114. data/vendor/assets/javascripts/languages/prism-hlsl.js +20 -0
  115. data/vendor/assets/javascripts/languages/prism-hoon.js +14 -0
  116. data/vendor/assets/javascripts/languages/prism-hpkp.js +4 -10
  117. data/vendor/assets/javascripts/languages/prism-hsts.js +4 -10
  118. data/vendor/assets/javascripts/languages/prism-http.js +91 -17
  119. data/vendor/assets/javascripts/languages/prism-ichigojam.js +5 -5
  120. data/vendor/assets/javascripts/languages/prism-icon.js +2 -2
  121. data/vendor/assets/javascripts/languages/prism-icu-message-format.js +148 -0
  122. data/vendor/assets/javascripts/languages/prism-idris.js +19 -0
  123. data/vendor/assets/javascripts/languages/prism-iecst.js +32 -0
  124. data/vendor/assets/javascripts/languages/prism-ignore.js +23 -0
  125. data/vendor/assets/javascripts/languages/prism-inform7.js +10 -10
  126. data/vendor/assets/javascripts/languages/prism-ini.js +39 -8
  127. data/vendor/assets/javascripts/languages/prism-io.js +10 -19
  128. data/vendor/assets/javascripts/languages/prism-j.js +7 -4
  129. data/vendor/assets/javascripts/languages/prism-java.js +80 -19
  130. data/vendor/assets/javascripts/languages/prism-javadoc.js +59 -31
  131. data/vendor/assets/javascripts/languages/prism-javadoclike.js +2 -2
  132. data/vendor/assets/javascripts/languages/prism-javascript.js +98 -17
  133. data/vendor/assets/javascripts/languages/prism-javastacktrace.js +63 -14
  134. data/vendor/assets/javascripts/languages/prism-jexl.js +14 -0
  135. data/vendor/assets/javascripts/languages/prism-jolie.js +23 -37
  136. data/vendor/assets/javascripts/languages/prism-jq.js +8 -6
  137. data/vendor/assets/javascripts/languages/prism-js-extras.js +34 -3
  138. data/vendor/assets/javascripts/languages/prism-js-templates.js +5 -2
  139. data/vendor/assets/javascripts/languages/prism-jsdoc.js +15 -10
  140. data/vendor/assets/javascripts/languages/prism-json.js +13 -5
  141. data/vendor/assets/javascripts/languages/prism-json5.js +3 -3
  142. data/vendor/assets/javascripts/languages/prism-jsonp.js +1 -1
  143. data/vendor/assets/javascripts/languages/prism-jsstacktrace.js +49 -0
  144. data/vendor/assets/javascripts/languages/prism-jsx.js +123 -104
  145. data/vendor/assets/javascripts/languages/prism-julia.js +31 -9
  146. data/vendor/assets/javascripts/languages/prism-keepalived.js +51 -0
  147. data/vendor/assets/javascripts/languages/prism-keyman.js +43 -13
  148. data/vendor/assets/javascripts/languages/prism-kotlin.js +56 -30
  149. data/vendor/assets/javascripts/languages/prism-kumir.js +106 -0
  150. data/vendor/assets/javascripts/languages/prism-kusto.js +44 -0
  151. data/vendor/assets/javascripts/languages/prism-latex.js +6 -6
  152. data/vendor/assets/javascripts/languages/prism-latte.js +11 -17
  153. data/vendor/assets/javascripts/languages/prism-less.js +5 -5
  154. data/vendor/assets/javascripts/languages/prism-lilypond.js +3 -3
  155. data/vendor/assets/javascripts/languages/prism-linker-script.js +30 -0
  156. data/vendor/assets/javascripts/languages/prism-liquid.js +62 -8
  157. data/vendor/assets/javascripts/languages/prism-lisp.js +41 -41
  158. data/vendor/assets/javascripts/languages/prism-livescript.js +3 -3
  159. data/vendor/assets/javascripts/languages/prism-llvm.js +19 -0
  160. data/vendor/assets/javascripts/languages/prism-log.js +120 -0
  161. data/vendor/assets/javascripts/languages/prism-lolcode.js +9 -9
  162. data/vendor/assets/javascripts/languages/prism-lua.js +3 -3
  163. data/vendor/assets/javascripts/languages/prism-magma.js +35 -0
  164. data/vendor/assets/javascripts/languages/prism-makefile.js +17 -17
  165. data/vendor/assets/javascripts/languages/prism-markdown.js +103 -32
  166. data/vendor/assets/javascripts/languages/prism-markup-templating.js +2 -1
  167. data/vendor/assets/javascripts/languages/prism-markup.js +95 -12
  168. data/vendor/assets/javascripts/languages/prism-mata.js +50 -0
  169. data/vendor/assets/javascripts/languages/prism-matlab.js +4 -4
  170. data/vendor/assets/javascripts/languages/prism-maxscript.js +91 -0
  171. data/vendor/assets/javascripts/languages/prism-mel.js +24 -21
  172. data/vendor/assets/javascripts/languages/prism-mermaid.js +113 -0
  173. data/vendor/assets/javascripts/languages/prism-metafont.js +84 -0
  174. data/vendor/assets/javascripts/languages/prism-mizar.js +3 -3
  175. data/vendor/assets/javascripts/languages/prism-mongodb.js +97 -0
  176. data/vendor/assets/javascripts/languages/prism-monkey.js +16 -18
  177. data/vendor/assets/javascripts/languages/prism-moonscript.js +1 -1
  178. data/vendor/assets/javascripts/languages/prism-n1ql.js +14 -8
  179. data/vendor/assets/javascripts/languages/prism-n4js.js +2 -2
  180. data/vendor/assets/javascripts/languages/prism-nand2tetris-hdl.js +3 -3
  181. data/vendor/assets/javascripts/languages/prism-naniscript.js +170 -0
  182. data/vendor/assets/javascripts/languages/prism-nasm.js +4 -4
  183. data/vendor/assets/javascripts/languages/prism-neon.js +5 -6
  184. data/vendor/assets/javascripts/languages/prism-nevod.js +125 -0
  185. data/vendor/assets/javascripts/languages/prism-nginx.js +54 -11
  186. data/vendor/assets/javascripts/languages/prism-nim.js +23 -12
  187. data/vendor/assets/javascripts/languages/prism-nix.js +10 -13
  188. data/vendor/assets/javascripts/languages/prism-nsis.js +10 -9
  189. data/vendor/assets/javascripts/languages/prism-objectivec.js +7 -2
  190. data/vendor/assets/javascripts/languages/prism-ocaml.js +32 -15
  191. data/vendor/assets/javascripts/languages/prism-odin.js +99 -0
  192. data/vendor/assets/javascripts/languages/prism-opencl.js +19 -12
  193. data/vendor/assets/javascripts/languages/prism-openqasm.js +23 -0
  194. data/vendor/assets/javascripts/languages/prism-oz.js +11 -8
  195. data/vendor/assets/javascripts/languages/prism-parigp.js +4 -4
  196. data/vendor/assets/javascripts/languages/prism-parser.js +3 -3
  197. data/vendor/assets/javascripts/languages/prism-pascal.js +24 -8
  198. data/vendor/assets/javascripts/languages/prism-pascaligo.js +7 -7
  199. data/vendor/assets/javascripts/languages/prism-pcaxis.js +2 -2
  200. data/vendor/assets/javascripts/languages/prism-peoplecode.js +42 -0
  201. data/vendor/assets/javascripts/languages/prism-perl.js +153 -188
  202. data/vendor/assets/javascripts/languages/prism-php-extras.js +8 -5
  203. data/vendor/assets/javascripts/languages/prism-php.js +275 -63
  204. data/vendor/assets/javascripts/languages/prism-phpdoc.js +1 -1
  205. data/vendor/assets/javascripts/languages/prism-plant-uml.js +103 -0
  206. data/vendor/assets/javascripts/languages/prism-plsql.js +16 -25
  207. data/vendor/assets/javascripts/languages/prism-powerquery.js +55 -0
  208. data/vendor/assets/javascripts/languages/prism-powershell.js +16 -18
  209. data/vendor/assets/javascripts/languages/prism-processing.js +6 -9
  210. data/vendor/assets/javascripts/languages/prism-prolog.js +7 -8
  211. data/vendor/assets/javascripts/languages/prism-promql.js +99 -0
  212. data/vendor/assets/javascripts/languages/prism-properties.js +9 -5
  213. data/vendor/assets/javascripts/languages/prism-protobuf.js +16 -9
  214. data/vendor/assets/javascripts/languages/prism-psl.js +35 -0
  215. data/vendor/assets/javascripts/languages/prism-pug.js +28 -21
  216. data/vendor/assets/javascripts/languages/prism-puppet.js +6 -6
  217. data/vendor/assets/javascripts/languages/prism-pure.js +9 -6
  218. data/vendor/assets/javascripts/languages/prism-purebasic.js +70 -0
  219. data/vendor/assets/javascripts/languages/prism-purescript.js +31 -0
  220. data/vendor/assets/javascripts/languages/prism-python.js +12 -11
  221. data/vendor/assets/javascripts/languages/prism-q.js +4 -4
  222. data/vendor/assets/javascripts/languages/prism-qml.js +9 -6
  223. data/vendor/assets/javascripts/languages/prism-qore.js +5 -5
  224. data/vendor/assets/javascripts/languages/prism-qsharp.js +132 -0
  225. data/vendor/assets/javascripts/languages/prism-r.js +5 -5
  226. data/vendor/assets/javascripts/languages/prism-racket.js +18 -0
  227. data/vendor/assets/javascripts/languages/prism-reason.js +5 -8
  228. data/vendor/assets/javascripts/languages/prism-regex.js +54 -47
  229. data/vendor/assets/javascripts/languages/prism-rego.js +30 -0
  230. data/vendor/assets/javascripts/languages/prism-renpy.js +12 -12
  231. data/vendor/assets/javascripts/languages/prism-rescript.js +60 -0
  232. data/vendor/assets/javascripts/languages/prism-rest.js +16 -16
  233. data/vendor/assets/javascripts/languages/prism-rip.js +22 -16
  234. data/vendor/assets/javascripts/languages/prism-roboconf.js +3 -3
  235. data/vendor/assets/javascripts/languages/prism-robotframework.js +5 -5
  236. data/vendor/assets/javascripts/languages/prism-ruby.js +127 -88
  237. data/vendor/assets/javascripts/languages/prism-rust.js +120 -60
  238. data/vendor/assets/javascripts/languages/prism-sas.js +62 -38
  239. data/vendor/assets/javascripts/languages/prism-sass.js +15 -10
  240. data/vendor/assets/javascripts/languages/prism-scala.js +36 -3
  241. data/vendor/assets/javascripts/languages/prism-scheme.js +120 -33
  242. data/vendor/assets/javascripts/languages/prism-scss.js +11 -7
  243. data/vendor/assets/javascripts/languages/prism-shell-session.js +42 -26
  244. data/vendor/assets/javascripts/languages/prism-smali.js +87 -0
  245. data/vendor/assets/javascripts/languages/prism-smalltalk.js +12 -5
  246. data/vendor/assets/javascripts/languages/prism-smarty.js +91 -47
  247. data/vendor/assets/javascripts/languages/prism-sml.js +68 -0
  248. data/vendor/assets/javascripts/languages/prism-solidity.js +3 -1
  249. data/vendor/assets/javascripts/languages/prism-solution-file.js +2 -2
  250. data/vendor/assets/javascripts/languages/prism-soy.js +9 -9
  251. data/vendor/assets/javascripts/languages/prism-sparql.js +8 -8
  252. data/vendor/assets/javascripts/languages/prism-splunk-spl.js +3 -3
  253. data/vendor/assets/javascripts/languages/prism-sqf.js +7 -7
  254. data/vendor/assets/javascripts/languages/prism-sql.js +12 -4
  255. data/vendor/assets/javascripts/languages/prism-squirrel.js +47 -0
  256. data/vendor/assets/javascripts/languages/prism-stan.js +65 -0
  257. data/vendor/assets/javascripts/languages/prism-stata.js +76 -0
  258. data/vendor/assets/javascripts/languages/prism-stylus.js +48 -16
  259. data/vendor/assets/javascripts/languages/prism-supercollider.js +36 -0
  260. data/vendor/assets/javascripts/languages/prism-swift.js +143 -20
  261. data/vendor/assets/javascripts/languages/prism-systemd.js +74 -0
  262. data/vendor/assets/javascripts/languages/prism-t4-templating.js +2 -2
  263. data/vendor/assets/javascripts/languages/prism-t4-vb.js +1 -1
  264. data/vendor/assets/javascripts/languages/prism-tap.js +13 -11
  265. data/vendor/assets/javascripts/languages/prism-tcl.js +8 -8
  266. data/vendor/assets/javascripts/languages/prism-textile.js +55 -29
  267. data/vendor/assets/javascripts/languages/prism-toml.js +14 -8
  268. data/vendor/assets/javascripts/languages/prism-tremor.js +72 -0
  269. data/vendor/assets/javascripts/languages/prism-tsx.js +15 -2
  270. data/vendor/assets/javascripts/languages/prism-tt2.js +7 -7
  271. data/vendor/assets/javascripts/languages/prism-turtle.js +4 -4
  272. data/vendor/assets/javascripts/languages/prism-twig.js +38 -40
  273. data/vendor/assets/javascripts/languages/prism-typescript.js +59 -6
  274. data/vendor/assets/javascripts/languages/prism-typoscript.js +80 -0
  275. data/vendor/assets/javascripts/languages/prism-unrealscript.js +42 -0
  276. data/vendor/assets/javascripts/languages/prism-uorazor.js +48 -0
  277. data/vendor/assets/javascripts/languages/prism-uri.js +96 -0
  278. data/vendor/assets/javascripts/languages/prism-v.js +81 -0
  279. data/vendor/assets/javascripts/languages/prism-vala.js +20 -10
  280. data/vendor/assets/javascripts/languages/prism-vbnet.js +11 -4
  281. data/vendor/assets/javascripts/languages/prism-velocity.js +6 -6
  282. data/vendor/assets/javascripts/languages/prism-verilog.js +14 -8
  283. data/vendor/assets/javascripts/languages/prism-vhdl.js +7 -4
  284. data/vendor/assets/javascripts/languages/prism-vim.js +4 -4
  285. data/vendor/assets/javascripts/languages/prism-visual-basic.js +9 -14
  286. data/vendor/assets/javascripts/languages/prism-warpscript.js +21 -0
  287. data/vendor/assets/javascripts/languages/prism-wasm.js +3 -3
  288. data/vendor/assets/javascripts/languages/prism-web-idl.js +101 -0
  289. data/vendor/assets/javascripts/languages/prism-wgsl.js +69 -0
  290. data/vendor/assets/javascripts/languages/prism-wiki.js +4 -4
  291. data/vendor/assets/javascripts/languages/prism-wolfram.js +29 -0
  292. data/vendor/assets/javascripts/languages/prism-wren.js +100 -0
  293. data/vendor/assets/javascripts/languages/prism-xeora.js +8 -8
  294. data/vendor/assets/javascripts/languages/prism-xml-doc.js +40 -0
  295. data/vendor/assets/javascripts/languages/prism-xojo.js +9 -8
  296. data/vendor/assets/javascripts/languages/prism-xquery.js +7 -7
  297. data/vendor/assets/javascripts/languages/prism-yaml.js +19 -12
  298. data/vendor/assets/javascripts/languages/prism-yang.js +20 -0
  299. data/vendor/assets/javascripts/languages/prism-zig.js +19 -15
  300. data/vendor/assets/javascripts/prism-plugin/prism-autolinker.js +60 -65
  301. data/vendor/assets/javascripts/prism-plugin/prism-autoloader.js +199 -67
  302. data/vendor/assets/javascripts/prism-plugin/prism-command-line.js +212 -112
  303. data/vendor/assets/javascripts/prism-plugin/prism-copy-to-clipboard.js +128 -43
  304. data/vendor/assets/javascripts/prism-plugin/prism-custom-class.js +23 -8
  305. data/vendor/assets/javascripts/prism-plugin/prism-data-uri-highlight.js +2 -6
  306. data/vendor/assets/javascripts/prism-plugin/prism-diff-highlight.js +19 -12
  307. data/vendor/assets/javascripts/prism-plugin/prism-download-button.js +3 -2
  308. data/vendor/assets/javascripts/prism-plugin/prism-file-highlight.js +169 -63
  309. data/vendor/assets/javascripts/prism-plugin/prism-filter-highlight-all.js +5 -3
  310. data/vendor/assets/javascripts/prism-plugin/prism-highlight-keywords.js +10 -13
  311. data/vendor/assets/javascripts/prism-plugin/prism-inline-color.js +29 -12
  312. data/vendor/assets/javascripts/prism-plugin/prism-jsonp-highlight.js +179 -82
  313. data/vendor/assets/javascripts/prism-plugin/prism-keep-markup.js +53 -26
  314. data/vendor/assets/javascripts/prism-plugin/prism-line-highlight.js +217 -84
  315. data/vendor/assets/javascripts/prism-plugin/prism-line-numbers.js +152 -68
  316. data/vendor/assets/javascripts/prism-plugin/prism-match-braces.js +53 -47
  317. data/vendor/assets/javascripts/prism-plugin/prism-normalize-whitespace.js +203 -164
  318. data/vendor/assets/javascripts/prism-plugin/prism-previewers.js +61 -52
  319. data/vendor/assets/javascripts/prism-plugin/prism-remove-initial-line-feed.js +16 -16
  320. data/vendor/assets/javascripts/prism-plugin/prism-show-invisibles.js +4 -5
  321. data/vendor/assets/javascripts/prism-plugin/prism-show-language.js +147 -21
  322. data/vendor/assets/javascripts/prism-plugin/prism-toolbar.js +9 -8
  323. data/vendor/assets/javascripts/prism-plugin/prism-treeview.js +70 -0
  324. data/vendor/assets/javascripts/prism-plugin/prism-unescaped-markup.js +41 -23
  325. data/vendor/assets/javascripts/prism-plugin/prism-wpd.js +133 -148
  326. data/vendor/assets/javascripts/prism.js +96 -4
  327. data/vendor/assets/stylesheets/prism-plugin/prism-autolinker.min.css +1 -0
  328. data/vendor/assets/stylesheets/prism-plugin/prism-command-line.css +11 -1
  329. data/vendor/assets/stylesheets/prism-plugin/prism-command-line.min.css +1 -0
  330. data/vendor/assets/stylesheets/prism-plugin/prism-diff-highlight.min.css +1 -0
  331. data/vendor/assets/stylesheets/prism-plugin/prism-inline-color.css +26 -2
  332. data/vendor/assets/stylesheets/prism-plugin/prism-inline-color.min.css +1 -0
  333. data/vendor/assets/stylesheets/prism-plugin/prism-line-highlight.css +21 -0
  334. data/vendor/assets/stylesheets/prism-plugin/prism-line-highlight.min.css +1 -0
  335. data/vendor/assets/stylesheets/prism-plugin/prism-line-numbers.css +0 -1
  336. data/vendor/assets/stylesheets/prism-plugin/prism-line-numbers.min.css +1 -0
  337. data/vendor/assets/stylesheets/prism-plugin/prism-match-braces.min.css +1 -0
  338. data/vendor/assets/stylesheets/prism-plugin/prism-previewers.css +1 -0
  339. data/vendor/assets/stylesheets/prism-plugin/prism-previewers.min.css +1 -0
  340. data/vendor/assets/stylesheets/prism-plugin/prism-show-invisibles.min.css +1 -0
  341. data/vendor/assets/stylesheets/prism-plugin/prism-toolbar.css +13 -12
  342. data/vendor/assets/stylesheets/prism-plugin/prism-toolbar.min.css +1 -0
  343. data/vendor/assets/stylesheets/prism-plugin/prism-treeview.css +168 -0
  344. data/vendor/assets/stylesheets/prism-plugin/prism-treeview.min.css +1 -0
  345. data/vendor/assets/stylesheets/prism-plugin/prism-unescaped-markup.min.css +1 -0
  346. data/vendor/assets/stylesheets/prism-plugin/prism-wpd.min.css +1 -0
  347. data/vendor/assets/stylesheets/prism-theme/prism-base16-ateliersulphurpool.light.css +3 -3
  348. data/vendor/assets/stylesheets/prism-theme/prism-cb.css +5 -35
  349. data/vendor/assets/stylesheets/prism-theme/prism-coldark-cold.css +317 -0
  350. data/vendor/assets/stylesheets/prism-theme/prism-coldark-dark.css +317 -0
  351. data/vendor/assets/stylesheets/prism-theme/prism-coy-without-shadows.css +140 -0
  352. data/vendor/assets/stylesheets/prism-theme/prism-coy.css +5 -12
  353. data/vendor/assets/stylesheets/prism-theme/prism-coy.min.css +1 -0
  354. data/vendor/assets/stylesheets/prism-theme/prism-dark.min.css +1 -0
  355. data/vendor/assets/stylesheets/prism-theme/prism-duotone-dark.css +3 -3
  356. data/vendor/assets/stylesheets/prism-theme/prism-duotone-earth.css +3 -3
  357. data/vendor/assets/stylesheets/prism-theme/prism-duotone-forest.css +3 -3
  358. data/vendor/assets/stylesheets/prism-theme/prism-duotone-light.css +3 -3
  359. data/vendor/assets/stylesheets/prism-theme/prism-duotone-sea.css +3 -3
  360. data/vendor/assets/stylesheets/prism-theme/prism-duotone-space.css +3 -3
  361. data/vendor/assets/stylesheets/prism-theme/prism-funky.min.css +1 -0
  362. data/vendor/assets/stylesheets/prism-theme/prism-gruvbox-dark.css +143 -0
  363. data/vendor/assets/stylesheets/prism-theme/prism-gruvbox-light.css +143 -0
  364. data/vendor/assets/stylesheets/prism-theme/prism-holi-theme.css +119 -0
  365. data/vendor/assets/stylesheets/prism-theme/prism-laserwave.css +133 -0
  366. data/vendor/assets/stylesheets/prism-theme/prism-lucario.css +122 -0
  367. data/vendor/assets/stylesheets/prism-theme/prism-night-owl.css +158 -0
  368. data/vendor/assets/stylesheets/prism-theme/prism-okaidia.css +1 -1
  369. data/vendor/assets/stylesheets/prism-theme/prism-okaidia.min.css +1 -0
  370. data/vendor/assets/stylesheets/prism-theme/prism-one-dark.css +440 -0
  371. data/vendor/assets/stylesheets/prism-theme/prism-one-light.css +428 -0
  372. data/vendor/assets/stylesheets/prism-theme/prism-shades-of-purple.css +3 -7
  373. data/vendor/assets/stylesheets/prism-theme/prism-solarized-dark-atom.css +143 -0
  374. data/vendor/assets/stylesheets/prism-theme/prism-solarizedlight.min.css +1 -0
  375. data/vendor/assets/stylesheets/prism-theme/prism-tomorrow.min.css +1 -0
  376. data/vendor/assets/stylesheets/prism-theme/prism-twilight.css +3 -33
  377. data/vendor/assets/stylesheets/prism-theme/prism-twilight.min.css +1 -0
  378. data/vendor/assets/stylesheets/prism-theme/prism-vs.css +7 -3
  379. data/vendor/assets/stylesheets/prism-theme/prism-vsc-dark-plus.css +108 -49
  380. data/vendor/assets/stylesheets/prism-theme/prism-xonokai.css +3 -30
  381. data/vendor/assets/stylesheets/prism-theme/prism-z-touch.css +160 -0
  382. data/vendor/assets/stylesheets/prism.css +1 -0
  383. metadata +133 -6
@@ -1,18 +1,39 @@
1
1
  (function () {
2
2
 
3
- if (typeof self === 'undefined' || !self.Prism || !self.document || !document.querySelector) {
3
+ if (typeof Prism === 'undefined' || typeof document === 'undefined' || !document.querySelector) {
4
4
  return;
5
5
  }
6
6
 
7
- function $$(expr, con) {
8
- return Array.prototype.slice.call((con || document).querySelectorAll(expr));
7
+ var LINE_NUMBERS_CLASS = 'line-numbers';
8
+ var LINKABLE_LINE_NUMBERS_CLASS = 'linkable-line-numbers';
9
+ var NEW_LINE_EXP = /\n(?!$)/g;
10
+
11
+ /**
12
+ * @param {string} selector
13
+ * @param {ParentNode} [container]
14
+ * @returns {HTMLElement[]}
15
+ */
16
+ function $$(selector, container) {
17
+ return Array.prototype.slice.call((container || document).querySelectorAll(selector));
9
18
  }
10
19
 
20
+ /**
21
+ * Returns whether the given element has the given class.
22
+ *
23
+ * @param {Element} element
24
+ * @param {string} className
25
+ * @returns {boolean}
26
+ */
11
27
  function hasClass(element, className) {
12
- className = " " + className + " ";
13
- return (" " + element.className + " ").replace(/[\n\t]/g, " ").indexOf(className) > -1
28
+ return element.classList.contains(className);
14
29
  }
15
30
 
31
+ /**
32
+ * Calls the given function.
33
+ *
34
+ * @param {() => any} func
35
+ * @returns {void}
36
+ */
16
37
  function callFunction(func) {
17
38
  func();
18
39
  }
@@ -26,8 +47,8 @@
26
47
  var d = document.createElement('div');
27
48
  d.style.fontSize = '13px';
28
49
  d.style.lineHeight = '1.5';
29
- d.style.padding = 0;
30
- d.style.border = 0;
50
+ d.style.padding = '0';
51
+ d.style.border = '0';
31
52
  d.innerHTML = '&nbsp;<br />&nbsp;';
32
53
  document.body.appendChild(d);
33
54
  // Browsers that round the line-height should have offsetHeight === 38
@@ -36,89 +57,202 @@
36
57
  document.body.removeChild(d);
37
58
  }
38
59
  return res;
39
- }
60
+ };
40
61
  }());
41
62
 
42
63
  /**
43
- * Highlights the lines of the given pre.
44
- *
45
- * This function is split into a DOM measuring and mutate phase to improve performance.
46
- * The returned function mutates the DOM when called.
64
+ * Returns the top offset of the content box of the given parent and the content box of one of its children.
47
65
  *
48
- * @param {HTMLElement} pre
49
- * @param {string} [lines]
50
- * @param {string} [classes='']
51
- * @returns {() => void}
66
+ * @param {HTMLElement} parent
67
+ * @param {HTMLElement} child
52
68
  */
53
- function highlightLines(pre, lines, classes) {
54
- lines = typeof lines === 'string' ? lines : pre.getAttribute('data-line');
69
+ function getContentBoxTopOffset(parent, child) {
70
+ var parentStyle = getComputedStyle(parent);
71
+ var childStyle = getComputedStyle(child);
55
72
 
56
- var ranges = lines.replace(/\s+/g, '').split(',');
57
- var offset = +pre.getAttribute('data-line-offset') || 0;
73
+ /**
74
+ * Returns the numeric value of the given pixel value.
75
+ *
76
+ * @param {string} px
77
+ */
78
+ function pxToNumber(px) {
79
+ return +px.substr(0, px.length - 2);
80
+ }
58
81
 
59
- var parseMethod = isLineHeightRounded() ? parseInt : parseFloat;
60
- var lineHeight = parseMethod(getComputedStyle(pre).lineHeight);
61
- var hasLineNumbers = hasClass(pre, 'line-numbers');
62
- var parentElement = hasLineNumbers ? pre : pre.querySelector('code') || pre;
63
- var mutateActions = /** @type {(() => void)[]} */ ([]);
82
+ return child.offsetTop
83
+ + pxToNumber(childStyle.borderTopWidth)
84
+ + pxToNumber(childStyle.paddingTop)
85
+ - pxToNumber(parentStyle.paddingTop);
86
+ }
64
87
 
65
- ranges.forEach(function (currentRange) {
66
- var range = currentRange.split('-');
88
+ /**
89
+ * Returns whether the Line Highlight plugin is active for the given element.
90
+ *
91
+ * If this function returns `false`, do not call `highlightLines` for the given element.
92
+ *
93
+ * @param {HTMLElement | null | undefined} pre
94
+ * @returns {boolean}
95
+ */
96
+ function isActiveFor(pre) {
97
+ if (!pre || !/pre/i.test(pre.nodeName)) {
98
+ return false;
99
+ }
67
100
 
68
- var start = +range[0];
69
- var end = +range[1] || start;
101
+ if (pre.hasAttribute('data-line')) {
102
+ return true;
103
+ }
70
104
 
71
- var line = pre.querySelector('.line-highlight[data-range="' + currentRange + '"]') || document.createElement('div');
105
+ if (pre.id && Prism.util.isActive(pre, LINKABLE_LINE_NUMBERS_CLASS)) {
106
+ // Technically, the line numbers plugin is also necessary but this plugin doesn't control the classes of
107
+ // the line numbers plugin, so we can't assume that they are present.
108
+ return true;
109
+ }
72
110
 
73
- mutateActions.push(function () {
74
- line.setAttribute('aria-hidden', 'true');
75
- line.setAttribute('data-range', currentRange);
76
- line.className = (classes || '') + ' line-highlight';
77
- });
111
+ return false;
112
+ }
78
113
 
79
- // if the line-numbers plugin is enabled, then there is no reason for this plugin to display the line numbers
80
- if (hasLineNumbers && Prism.plugins.lineNumbers) {
81
- var startNode = Prism.plugins.lineNumbers.getLine(pre, start);
82
- var endNode = Prism.plugins.lineNumbers.getLine(pre, end);
114
+ var scrollIntoView = true;
83
115
 
84
- if (startNode) {
85
- var top = startNode.offsetTop + 'px';
86
- mutateActions.push(function () {
87
- line.style.top = top;
88
- });
116
+ Prism.plugins.lineHighlight = {
117
+ /**
118
+ * Highlights the lines of the given pre.
119
+ *
120
+ * This function is split into a DOM measuring and mutate phase to improve performance.
121
+ * The returned function mutates the DOM when called.
122
+ *
123
+ * @param {HTMLElement} pre
124
+ * @param {string | null} [lines]
125
+ * @param {string} [classes='']
126
+ * @returns {() => void}
127
+ */
128
+ highlightLines: function highlightLines(pre, lines, classes) {
129
+ lines = typeof lines === 'string' ? lines : (pre.getAttribute('data-line') || '');
130
+
131
+ var ranges = lines.replace(/\s+/g, '').split(',').filter(Boolean);
132
+ var offset = +pre.getAttribute('data-line-offset') || 0;
133
+
134
+ var parseMethod = isLineHeightRounded() ? parseInt : parseFloat;
135
+ var lineHeight = parseMethod(getComputedStyle(pre).lineHeight);
136
+ var hasLineNumbers = Prism.util.isActive(pre, LINE_NUMBERS_CLASS);
137
+ var codeElement = pre.querySelector('code');
138
+ var parentElement = hasLineNumbers ? pre : codeElement || pre;
139
+ var mutateActions = /** @type {(() => void)[]} */ ([]);
140
+ var lineBreakMatch = codeElement.textContent.match(NEW_LINE_EXP);
141
+ var numberOfLines = lineBreakMatch ? lineBreakMatch.length + 1 : 1;
142
+ /**
143
+ * The top offset between the content box of the <code> element and the content box of the parent element of
144
+ * the line highlight element (either `<pre>` or `<code>`).
145
+ *
146
+ * This offset might not be zero for some themes where the <code> element has a top margin. Some plugins
147
+ * (or users) might also add element above the <code> element. Because the line highlight is aligned relative
148
+ * to the <pre> element, we have to take this into account.
149
+ *
150
+ * This offset will be 0 if the parent element of the line highlight element is the `<code>` element.
151
+ */
152
+ var codePreOffset = !codeElement || parentElement == codeElement ? 0 : getContentBoxTopOffset(pre, codeElement);
153
+
154
+ ranges.forEach(function (currentRange) {
155
+ var range = currentRange.split('-');
156
+
157
+ var start = +range[0];
158
+ var end = +range[1] || start;
159
+ end = Math.min(numberOfLines + offset, end);
160
+
161
+ if (end < start) {
162
+ return;
89
163
  }
90
164
 
91
- if (endNode) {
92
- var height = (endNode.offsetTop - startNode.offsetTop) + endNode.offsetHeight + 'px';
165
+ /** @type {HTMLElement} */
166
+ var line = pre.querySelector('.line-highlight[data-range="' + currentRange + '"]') || document.createElement('div');
167
+
168
+ mutateActions.push(function () {
169
+ line.setAttribute('aria-hidden', 'true');
170
+ line.setAttribute('data-range', currentRange);
171
+ line.className = (classes || '') + ' line-highlight';
172
+ });
173
+
174
+ // if the line-numbers plugin is enabled, then there is no reason for this plugin to display the line numbers
175
+ if (hasLineNumbers && Prism.plugins.lineNumbers) {
176
+ var startNode = Prism.plugins.lineNumbers.getLine(pre, start);
177
+ var endNode = Prism.plugins.lineNumbers.getLine(pre, end);
178
+
179
+ if (startNode) {
180
+ var top = startNode.offsetTop + codePreOffset + 'px';
181
+ mutateActions.push(function () {
182
+ line.style.top = top;
183
+ });
184
+ }
185
+
186
+ if (endNode) {
187
+ var height = (endNode.offsetTop - startNode.offsetTop) + endNode.offsetHeight + 'px';
188
+ mutateActions.push(function () {
189
+ line.style.height = height;
190
+ });
191
+ }
192
+ } else {
93
193
  mutateActions.push(function () {
94
- line.style.height = height;
194
+ line.setAttribute('data-start', String(start));
195
+
196
+ if (end > start) {
197
+ line.setAttribute('data-end', String(end));
198
+ }
199
+
200
+ line.style.top = (start - offset - 1) * lineHeight + codePreOffset + 'px';
201
+
202
+ line.textContent = new Array(end - start + 2).join(' \n');
95
203
  });
96
204
  }
97
- } else {
205
+
98
206
  mutateActions.push(function () {
99
- line.setAttribute('data-start', start);
207
+ line.style.width = pre.scrollWidth + 'px';
208
+ });
100
209
 
101
- if (end > start) {
102
- line.setAttribute('data-end', end);
103
- }
210
+ mutateActions.push(function () {
211
+ // allow this to play nicely with the line-numbers plugin
212
+ // need to attack to pre as when line-numbers is enabled, the code tag is relatively which screws up the positioning
213
+ parentElement.appendChild(line);
214
+ });
215
+ });
104
216
 
105
- line.style.top = (start - offset - 1) * lineHeight + 'px';
217
+ var id = pre.id;
218
+ if (hasLineNumbers && Prism.util.isActive(pre, LINKABLE_LINE_NUMBERS_CLASS) && id) {
219
+ // This implements linkable line numbers. Linkable line numbers use Line Highlight to create a link to a
220
+ // specific line. For this to work, the pre element has to:
221
+ // 1) have line numbers,
222
+ // 2) have the `linkable-line-numbers` class or an ascendant that has that class, and
223
+ // 3) have an id.
106
224
 
107
- line.textContent = new Array(end - start + 2).join(' \n');
225
+ if (!hasClass(pre, LINKABLE_LINE_NUMBERS_CLASS)) {
226
+ // add class to pre
227
+ mutateActions.push(function () {
228
+ pre.classList.add(LINKABLE_LINE_NUMBERS_CLASS);
229
+ });
230
+ }
231
+
232
+ var start = parseInt(pre.getAttribute('data-start') || '1');
233
+
234
+ // iterate all line number spans
235
+ $$('.line-numbers-rows > span', pre).forEach(function (lineSpan, i) {
236
+ var lineNumber = i + start;
237
+ lineSpan.onclick = function () {
238
+ var hash = id + '.' + lineNumber;
239
+
240
+ // this will prevent scrolling since the span is obviously in view
241
+ scrollIntoView = false;
242
+ location.hash = hash;
243
+ setTimeout(function () {
244
+ scrollIntoView = true;
245
+ }, 1);
246
+ };
108
247
  });
109
248
  }
110
249
 
111
- mutateActions.push(function () {
112
- // allow this to play nicely with the line-numbers plugin
113
- // need to attack to pre as when line-numbers is enabled, the code tag is relatively which screws up the positioning
114
- parentElement.appendChild(line);
115
- });
116
- });
250
+ return function () {
251
+ mutateActions.forEach(callFunction);
252
+ };
253
+ }
254
+ };
117
255
 
118
- return function () {
119
- mutateActions.forEach(callFunction);
120
- };
121
- }
122
256
 
123
257
  function applyHash() {
124
258
  var hash = location.hash.slice(1);
@@ -134,8 +268,8 @@
134
268
  return;
135
269
  }
136
270
 
137
- var id = hash.slice(0, hash.lastIndexOf('.')),
138
- pre = document.getElementById(id);
271
+ var id = hash.slice(0, hash.lastIndexOf('.'));
272
+ var pre = document.getElementById(id);
139
273
 
140
274
  if (!pre) {
141
275
  return;
@@ -145,19 +279,19 @@
145
279
  pre.setAttribute('data-line', '');
146
280
  }
147
281
 
148
- var mutateDom = highlightLines(pre, range, 'temporary ');
282
+ var mutateDom = Prism.plugins.lineHighlight.highlightLines(pre, range, 'temporary ');
149
283
  mutateDom();
150
284
 
151
- document.querySelector('.temporary.line-highlight').scrollIntoView();
285
+ if (scrollIntoView) {
286
+ document.querySelector('.temporary.line-highlight').scrollIntoView();
287
+ }
152
288
  }
153
289
 
154
290
  var fakeTimer = 0; // Hack to limit the number of times applyHash() runs
155
291
 
156
292
  Prism.hooks.add('before-sanity-check', function (env) {
157
- var pre = env.element.parentNode;
158
- var lines = pre && pre.getAttribute('data-line');
159
-
160
- if (!pre || !lines || !/pre/i.test(pre.nodeName)) {
293
+ var pre = env.element.parentElement;
294
+ if (!isActiveFor(pre)) {
161
295
  return;
162
296
  }
163
297
 
@@ -174,16 +308,14 @@
174
308
  line.parentNode.removeChild(line);
175
309
  });
176
310
  // Remove extra whitespace
177
- if (num && /^( \n)+$/.test(env.code.slice(-num))) {
311
+ if (num && /^(?: \n)+$/.test(env.code.slice(-num))) {
178
312
  env.code = env.code.slice(0, -num);
179
313
  }
180
314
  });
181
315
 
182
316
  Prism.hooks.add('complete', function completeHook(env) {
183
- var pre = env.element.parentNode;
184
- var lines = pre && pre.getAttribute('data-line');
185
-
186
- if (!pre || !lines || !/pre/i.test(pre.nodeName)) {
317
+ var pre = env.element.parentElement;
318
+ if (!isActiveFor(pre)) {
187
319
  return;
188
320
  }
189
321
 
@@ -192,10 +324,10 @@
192
324
  var hasLineNumbers = Prism.plugins.lineNumbers;
193
325
  var isLineNumbersLoaded = env.plugins && env.plugins.lineNumbers;
194
326
 
195
- if (hasClass(pre, 'line-numbers') && hasLineNumbers && !isLineNumbersLoaded) {
327
+ if (hasClass(pre, LINE_NUMBERS_CLASS) && hasLineNumbers && !isLineNumbersLoaded) {
196
328
  Prism.hooks.add('line-numbers', completeHook);
197
329
  } else {
198
- var mutateDom = highlightLines(pre, lines);
330
+ var mutateDom = Prism.plugins.lineHighlight.highlightLines(pre);
199
331
  mutateDom();
200
332
  fakeTimer = setTimeout(applyHash, 1);
201
333
  }
@@ -203,11 +335,12 @@
203
335
 
204
336
  window.addEventListener('hashchange', applyHash);
205
337
  window.addEventListener('resize', function () {
206
- var actions = [];
207
- $$('pre[data-line]').forEach(function (pre) {
208
- actions.push(highlightLines(pre));
209
- });
338
+ var actions = $$('pre')
339
+ .filter(isActiveFor)
340
+ .map(function (pre) {
341
+ return Prism.plugins.lineHighlight.highlightLines(pre);
342
+ });
210
343
  actions.forEach(callFunction);
211
344
  });
212
345
 
213
- })();
346
+ }());