prism-rails 1.6.0.3 → 1.29.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -5
- data/CHANGELOG.md +12 -0
- data/README.md +109 -44
- data/lib/prism-rails/version.rb +1 -1
- data/vendor/assets/javascripts/languages/index.js +82 -0
- data/vendor/assets/javascripts/languages/prism-abap.js +48 -0
- data/vendor/assets/javascripts/languages/prism-abnf.js +54 -0
- data/vendor/assets/javascripts/languages/prism-actionscript.js +19 -0
- data/vendor/assets/javascripts/languages/prism-ada.js +22 -0
- data/vendor/assets/javascripts/languages/prism-agda.js +24 -0
- data/vendor/assets/javascripts/languages/prism-al.js +25 -0
- data/vendor/assets/javascripts/languages/prism-antlr4.js +65 -0
- data/vendor/assets/javascripts/languages/prism-apacheconf.js +47 -0
- data/vendor/assets/javascripts/languages/prism-apex.js +65 -0
- data/vendor/assets/javascripts/{prism → languages}/prism-apl.js +7 -4
- data/vendor/assets/javascripts/languages/prism-applescript.js +17 -0
- data/vendor/assets/javascripts/languages/prism-aql.js +49 -0
- data/vendor/assets/javascripts/languages/prism-arduino.js +7 -0
- data/vendor/assets/javascripts/languages/prism-arff.js +10 -0
- data/vendor/assets/javascripts/languages/prism-armasm.js +49 -0
- data/vendor/assets/javascripts/languages/prism-arturo.js +105 -0
- data/vendor/assets/javascripts/{prism → languages}/prism-asciidoc.js +36 -73
- data/vendor/assets/javascripts/languages/prism-asm6502.js +29 -0
- data/vendor/assets/javascripts/languages/prism-asmatmel.js +43 -0
- data/vendor/assets/javascripts/languages/prism-aspnet.js +48 -0
- data/vendor/assets/javascripts/languages/prism-autohotkey.js +44 -0
- data/vendor/assets/javascripts/languages/prism-autoit.js +34 -0
- data/vendor/assets/javascripts/languages/prism-avisynth.js +188 -0
- data/vendor/assets/javascripts/languages/prism-avro-idl.js +50 -0
- data/vendor/assets/javascripts/languages/prism-awk.js +32 -0
- data/vendor/assets/javascripts/languages/prism-bash.js +235 -0
- data/vendor/assets/javascripts/{prism → languages}/prism-basic.js +7 -4
- data/vendor/assets/javascripts/{prism → languages}/prism-batch.js +10 -10
- data/vendor/assets/javascripts/languages/prism-bbcode.js +29 -0
- data/vendor/assets/javascripts/languages/prism-bbj.js +19 -0
- data/vendor/assets/javascripts/languages/prism-bicep.js +77 -0
- data/vendor/assets/javascripts/languages/prism-birb.js +23 -0
- data/vendor/assets/javascripts/{prism → languages}/prism-bison.js +2 -2
- data/vendor/assets/javascripts/languages/prism-bnf.js +21 -0
- data/vendor/assets/javascripts/languages/prism-bqn.js +63 -0
- data/vendor/assets/javascripts/{prism → languages}/prism-brainfuck.js +1 -1
- data/vendor/assets/javascripts/languages/prism-brightscript.js +44 -0
- data/vendor/assets/javascripts/languages/prism-bro.js +37 -0
- data/vendor/assets/javascripts/languages/prism-bsl.js +75 -0
- data/vendor/assets/javascripts/languages/prism-c.js +80 -0
- data/vendor/assets/javascripts/languages/prism-cfscript.js +44 -0
- data/vendor/assets/javascripts/languages/prism-chaiscript.js +60 -0
- data/vendor/assets/javascripts/languages/prism-cil.js +27 -0
- data/vendor/assets/javascripts/languages/prism-cilkc.js +8 -0
- data/vendor/assets/javascripts/languages/prism-cilkcpp.js +9 -0
- data/vendor/assets/javascripts/languages/prism-clike.js +31 -0
- data/vendor/assets/javascripts/languages/prism-clojure.js +31 -0
- data/vendor/assets/javascripts/languages/prism-cmake.js +29 -0
- data/vendor/assets/javascripts/languages/prism-cobol.js +53 -0
- data/vendor/assets/javascripts/languages/prism-coffeescript.js +96 -0
- data/vendor/assets/javascripts/languages/prism-concurnas.js +61 -0
- data/vendor/assets/javascripts/languages/prism-cooklang.js +146 -0
- data/vendor/assets/javascripts/languages/prism-coq.js +54 -0
- data/vendor/assets/javascripts/languages/prism-core.js +1263 -0
- data/vendor/assets/javascripts/languages/prism-cpp.js +99 -0
- data/vendor/assets/javascripts/languages/prism-crystal.js +57 -0
- data/vendor/assets/javascripts/languages/prism-csharp.js +366 -0
- data/vendor/assets/javascripts/languages/prism-cshtml.js +199 -0
- data/vendor/assets/javascripts/languages/prism-csp.js +76 -0
- data/vendor/assets/javascripts/languages/prism-css-extras.js +120 -0
- data/vendor/assets/javascripts/languages/prism-css.js +64 -0
- data/vendor/assets/javascripts/languages/prism-csv.js +6 -0
- data/vendor/assets/javascripts/languages/prism-cue.js +84 -0
- data/vendor/assets/javascripts/languages/prism-cypher.js +36 -0
- data/vendor/assets/javascripts/languages/prism-d.js +84 -0
- data/vendor/assets/javascripts/languages/prism-dart.js +79 -0
- data/vendor/assets/javascripts/languages/prism-dataweave.js +41 -0
- data/vendor/assets/javascripts/languages/prism-dax.js +27 -0
- data/vendor/assets/javascripts/languages/prism-dhall.js +69 -0
- data/vendor/assets/javascripts/languages/prism-diff.js +64 -0
- data/vendor/assets/javascripts/languages/prism-django.js +60 -0
- data/vendor/assets/javascripts/languages/prism-dns-zone-file.js +33 -0
- data/vendor/assets/javascripts/languages/prism-docker.js +98 -0
- data/vendor/assets/javascripts/languages/prism-dot.js +76 -0
- data/vendor/assets/javascripts/languages/prism-ebnf.js +22 -0
- data/vendor/assets/javascripts/languages/prism-editorconfig.js +26 -0
- data/vendor/assets/javascripts/{prism → languages}/prism-eiffel.js +19 -9
- data/vendor/assets/javascripts/languages/prism-ejs.js +26 -0
- data/vendor/assets/javascripts/languages/prism-elixir.js +98 -0
- data/vendor/assets/javascripts/languages/prism-elm.js +45 -0
- data/vendor/assets/javascripts/languages/prism-erb.js +25 -0
- data/vendor/assets/javascripts/{prism → languages}/prism-erlang.js +12 -9
- data/vendor/assets/javascripts/languages/prism-etlua.js +23 -0
- data/vendor/assets/javascripts/languages/prism-excel-formula.js +66 -0
- data/vendor/assets/javascripts/languages/prism-factor.js +403 -0
- data/vendor/assets/javascripts/languages/prism-false.js +32 -0
- data/vendor/assets/javascripts/languages/prism-firestore-security-rules.js +35 -0
- data/vendor/assets/javascripts/languages/prism-flow.js +35 -0
- data/vendor/assets/javascripts/{prism → languages}/prism-fortran.js +11 -8
- data/vendor/assets/javascripts/languages/prism-fsharp.js +75 -0
- data/vendor/assets/javascripts/languages/prism-ftl.js +98 -0
- data/vendor/assets/javascripts/languages/prism-gap.js +54 -0
- data/vendor/assets/javascripts/languages/prism-gcode.js +16 -0
- data/vendor/assets/javascripts/languages/prism-gdscript.js +27 -0
- data/vendor/assets/javascripts/languages/prism-gedcom.js +28 -0
- data/vendor/assets/javascripts/languages/prism-gettext.js +43 -0
- data/vendor/assets/javascripts/languages/prism-gherkin.js +85 -0
- data/vendor/assets/javascripts/{prism → languages}/prism-git.js +3 -3
- data/vendor/assets/javascripts/languages/prism-glsl.js +3 -0
- data/vendor/assets/javascripts/languages/prism-gml.js +7 -0
- data/vendor/assets/javascripts/languages/prism-gn.js +51 -0
- data/vendor/assets/javascripts/languages/prism-go-module.js +24 -0
- data/vendor/assets/javascripts/languages/prism-go.js +28 -0
- data/vendor/assets/javascripts/languages/prism-gradle.js +63 -0
- data/vendor/assets/javascripts/languages/prism-graphql.js +211 -0
- data/vendor/assets/javascripts/languages/prism-groovy.js +65 -0
- data/vendor/assets/javascripts/{prism → languages}/prism-haml.js +32 -37
- data/vendor/assets/javascripts/languages/prism-handlebars.js +40 -0
- data/vendor/assets/javascripts/languages/prism-haskell.js +66 -0
- data/vendor/assets/javascripts/languages/prism-haxe.js +78 -0
- data/vendor/assets/javascripts/languages/prism-hcl.js +63 -0
- data/vendor/assets/javascripts/languages/prism-hlsl.js +20 -0
- data/vendor/assets/javascripts/languages/prism-hoon.js +14 -0
- data/vendor/assets/javascripts/languages/prism-hpkp.js +14 -0
- data/vendor/assets/javascripts/languages/prism-hsts.js +14 -0
- data/vendor/assets/javascripts/languages/prism-http.js +151 -0
- data/vendor/assets/javascripts/languages/prism-ichigojam.js +15 -0
- data/vendor/assets/javascripts/{prism → languages}/prism-icon.js +6 -3
- data/vendor/assets/javascripts/languages/prism-icu-message-format.js +148 -0
- data/vendor/assets/javascripts/languages/prism-idris.js +19 -0
- data/vendor/assets/javascripts/languages/prism-iecst.js +32 -0
- data/vendor/assets/javascripts/languages/prism-ignore.js +23 -0
- data/vendor/assets/javascripts/{prism → languages}/prism-inform7.js +14 -11
- data/vendor/assets/javascripts/languages/prism-ini.js +42 -0
- data/vendor/assets/javascripts/languages/prism-io.js +22 -0
- data/vendor/assets/javascripts/{prism → languages}/prism-j.js +12 -6
- data/vendor/assets/javascripts/languages/prism-java.js +124 -0
- data/vendor/assets/javascripts/languages/prism-javadoc.js +82 -0
- data/vendor/assets/javascripts/languages/prism-javadoclike.js +87 -0
- data/vendor/assets/javascripts/languages/prism-javascript.js +172 -0
- data/vendor/assets/javascripts/languages/prism-javastacktrace.js +142 -0
- data/vendor/assets/javascripts/languages/prism-jexl.js +14 -0
- data/vendor/assets/javascripts/languages/prism-jolie.js +41 -0
- data/vendor/assets/javascripts/languages/prism-jq.js +69 -0
- data/vendor/assets/javascripts/languages/prism-js-extras.js +135 -0
- data/vendor/assets/javascripts/languages/prism-js-templates.js +349 -0
- data/vendor/assets/javascripts/languages/prism-jsdoc.js +78 -0
- data/vendor/assets/javascripts/languages/prism-json.js +27 -0
- data/vendor/assets/javascripts/languages/prism-json5.js +23 -0
- data/vendor/assets/javascripts/languages/prism-jsonp.js +7 -0
- data/vendor/assets/javascripts/languages/prism-jsstacktrace.js +49 -0
- data/vendor/assets/javascripts/languages/prism-jsx.js +145 -0
- data/vendor/assets/javascripts/languages/prism-julia.js +35 -0
- data/vendor/assets/javascripts/languages/prism-keepalived.js +51 -0
- data/vendor/assets/javascripts/languages/prism-keyman.js +44 -0
- data/vendor/assets/javascripts/languages/prism-kotlin.js +88 -0
- data/vendor/assets/javascripts/languages/prism-kumir.js +106 -0
- data/vendor/assets/javascripts/languages/prism-kusto.js +44 -0
- data/vendor/assets/javascripts/languages/prism-latex.js +64 -0
- data/vendor/assets/javascripts/languages/prism-latte.js +63 -0
- data/vendor/assets/javascripts/{prism → languages}/prism-less.js +6 -12
- data/vendor/assets/javascripts/languages/prism-lilypond.js +69 -0
- data/vendor/assets/javascripts/languages/prism-linker-script.js +30 -0
- data/vendor/assets/javascripts/languages/prism-liquid.js +66 -0
- data/vendor/assets/javascripts/languages/prism-lisp.js +197 -0
- data/vendor/assets/javascripts/{prism → languages}/prism-livescript.js +20 -19
- data/vendor/assets/javascripts/languages/prism-llvm.js +19 -0
- data/vendor/assets/javascripts/languages/prism-log.js +120 -0
- data/vendor/assets/javascripts/languages/prism-lolcode.js +55 -0
- data/vendor/assets/javascripts/{prism → languages}/prism-lua.js +3 -3
- data/vendor/assets/javascripts/languages/prism-magma.js +35 -0
- data/vendor/assets/javascripts/languages/prism-makefile.js +34 -0
- data/vendor/assets/javascripts/languages/prism-markdown.js +415 -0
- data/vendor/assets/javascripts/languages/prism-markup-templating.js +124 -0
- data/vendor/assets/javascripts/languages/prism-markup.js +186 -0
- data/vendor/assets/javascripts/languages/prism-mata.js +50 -0
- data/vendor/assets/javascripts/languages/prism-matlab.js +16 -0
- data/vendor/assets/javascripts/languages/prism-maxscript.js +91 -0
- data/vendor/assets/javascripts/languages/prism-mel.js +46 -0
- data/vendor/assets/javascripts/languages/prism-mermaid.js +113 -0
- data/vendor/assets/javascripts/languages/prism-metafont.js +84 -0
- data/vendor/assets/javascripts/{prism → languages}/prism-mizar.js +3 -3
- data/vendor/assets/javascripts/languages/prism-mongodb.js +97 -0
- data/vendor/assets/javascripts/languages/prism-monkey.js +29 -0
- data/vendor/assets/javascripts/languages/prism-moonscript.js +57 -0
- data/vendor/assets/javascripts/languages/prism-n1ql.js +24 -0
- data/vendor/assets/javascripts/languages/prism-n4js.js +14 -0
- data/vendor/assets/javascripts/languages/prism-nand2tetris-hdl.js +9 -0
- data/vendor/assets/javascripts/languages/prism-naniscript.js +170 -0
- data/vendor/assets/javascripts/languages/prism-nasm.js +24 -0
- data/vendor/assets/javascripts/languages/prism-neon.js +40 -0
- data/vendor/assets/javascripts/languages/prism-nevod.js +125 -0
- data/vendor/assets/javascripts/languages/prism-nginx.js +54 -0
- data/vendor/assets/javascripts/{prism → languages}/prism-nim.js +26 -12
- data/vendor/assets/javascripts/{prism → languages}/prism-nix.js +11 -13
- data/vendor/assets/javascripts/languages/prism-nsis.js +30 -0
- data/vendor/assets/javascripts/languages/prism-objectivec.js +12 -0
- data/vendor/assets/javascripts/languages/prism-ocaml.js +58 -0
- data/vendor/assets/javascripts/languages/prism-odin.js +99 -0
- data/vendor/assets/javascripts/languages/prism-opencl.js +61 -0
- data/vendor/assets/javascripts/languages/prism-openqasm.js +23 -0
- data/vendor/assets/javascripts/languages/prism-oz.js +28 -0
- data/vendor/assets/javascripts/{prism → languages}/prism-parigp.js +8 -5
- data/vendor/assets/javascripts/languages/prism-parser.js +73 -0
- data/vendor/assets/javascripts/{prism → languages}/prism-pascal.js +31 -10
- data/vendor/assets/javascripts/languages/prism-pascaligo.js +62 -0
- data/vendor/assets/javascripts/languages/prism-pcaxis.js +53 -0
- data/vendor/assets/javascripts/languages/prism-peoplecode.js +42 -0
- data/vendor/assets/javascripts/languages/prism-perl.js +156 -0
- data/vendor/assets/javascripts/languages/prism-php-extras.js +14 -0
- data/vendor/assets/javascripts/languages/prism-php.js +342 -0
- data/vendor/assets/javascripts/languages/prism-phpdoc.js +27 -0
- data/vendor/assets/javascripts/languages/prism-plant-uml.js +103 -0
- data/vendor/assets/javascripts/languages/prism-plsql.js +17 -0
- data/vendor/assets/javascripts/languages/prism-powerquery.js +55 -0
- data/vendor/assets/javascripts/languages/prism-powershell.js +58 -0
- data/vendor/assets/javascripts/languages/prism-processing.js +15 -0
- data/vendor/assets/javascripts/{prism → languages}/prism-prolog.js +10 -8
- data/vendor/assets/javascripts/languages/prism-promql.js +99 -0
- data/vendor/assets/javascripts/languages/prism-properties.js +13 -0
- data/vendor/assets/javascripts/languages/prism-protobuf.js +43 -0
- data/vendor/assets/javascripts/languages/prism-psl.js +35 -0
- data/vendor/assets/javascripts/languages/prism-pug.js +188 -0
- data/vendor/assets/javascripts/{prism → languages}/prism-puppet.js +13 -8
- data/vendor/assets/javascripts/{prism → languages}/prism-pure.js +27 -22
- data/vendor/assets/javascripts/languages/prism-purebasic.js +70 -0
- data/vendor/assets/javascripts/languages/prism-purescript.js +31 -0
- data/vendor/assets/javascripts/languages/prism-python.js +65 -0
- data/vendor/assets/javascripts/{prism → languages}/prism-q.js +16 -9
- data/vendor/assets/javascripts/languages/prism-qml.js +61 -0
- data/vendor/assets/javascripts/{prism → languages}/prism-qore.js +12 -9
- data/vendor/assets/javascripts/languages/prism-qsharp.js +132 -0
- data/vendor/assets/javascripts/languages/prism-r.js +22 -0
- data/vendor/assets/javascripts/languages/prism-racket.js +18 -0
- data/vendor/assets/javascripts/{prism → languages}/prism-reason.js +8 -15
- data/vendor/assets/javascripts/languages/prism-regex.js +104 -0
- data/vendor/assets/javascripts/languages/prism-rego.js +30 -0
- data/vendor/assets/javascripts/languages/prism-renpy.js +29 -0
- data/vendor/assets/javascripts/languages/prism-rescript.js +60 -0
- data/vendor/assets/javascripts/{prism → languages}/prism-rest.js +18 -18
- data/vendor/assets/javascripts/languages/prism-rip.js +38 -0
- data/vendor/assets/javascripts/{prism → languages}/prism-roboconf.js +3 -3
- data/vendor/assets/javascripts/languages/prism-robotframework.js +104 -0
- data/vendor/assets/javascripts/languages/prism-ruby.js +189 -0
- data/vendor/assets/javascripts/languages/prism-rust.js +128 -0
- data/vendor/assets/javascripts/languages/prism-sas.js +326 -0
- data/vendor/assets/javascripts/{prism → languages}/prism-sass.js +16 -12
- data/vendor/assets/javascripts/languages/prism-scala.js +50 -0
- data/vendor/assets/javascripts/languages/prism-scheme.js +120 -0
- data/vendor/assets/javascripts/{prism → languages}/prism-scss.js +27 -21
- data/vendor/assets/javascripts/languages/prism-shell-session.js +70 -0
- data/vendor/assets/javascripts/languages/prism-smali.js +87 -0
- data/vendor/assets/javascripts/{prism → languages}/prism-smalltalk.js +17 -10
- data/vendor/assets/javascripts/languages/prism-smarty.js +131 -0
- data/vendor/assets/javascripts/languages/prism-sml.js +68 -0
- data/vendor/assets/javascripts/languages/prism-solidity.js +22 -0
- data/vendor/assets/javascripts/languages/prism-solution-file.js +51 -0
- data/vendor/assets/javascripts/languages/prism-soy.js +96 -0
- data/vendor/assets/javascripts/languages/prism-sparql.js +18 -0
- data/vendor/assets/javascripts/languages/prism-splunk-spl.js +24 -0
- data/vendor/assets/javascripts/languages/prism-sqf.js +34 -0
- data/vendor/assets/javascripts/languages/prism-sql.js +32 -0
- data/vendor/assets/javascripts/languages/prism-squirrel.js +47 -0
- data/vendor/assets/javascripts/languages/prism-stan.js +65 -0
- data/vendor/assets/javascripts/languages/prism-stata.js +76 -0
- data/vendor/assets/javascripts/languages/prism-stylus.js +143 -0
- data/vendor/assets/javascripts/languages/prism-supercollider.js +36 -0
- data/vendor/assets/javascripts/languages/prism-swift.js +148 -0
- data/vendor/assets/javascripts/languages/prism-systemd.js +74 -0
- data/vendor/assets/javascripts/languages/prism-t4-cs.js +1 -0
- data/vendor/assets/javascripts/languages/prism-t4-templating.js +49 -0
- data/vendor/assets/javascripts/languages/prism-t4-vb.js +1 -0
- data/vendor/assets/javascripts/languages/prism-tap.js +22 -0
- data/vendor/assets/javascripts/languages/prism-tcl.js +46 -0
- data/vendor/assets/javascripts/languages/prism-textile.js +286 -0
- data/vendor/assets/javascripts/languages/prism-toml.js +49 -0
- data/vendor/assets/javascripts/languages/prism-tremor.js +72 -0
- data/vendor/assets/javascripts/languages/prism-tsx.js +15 -0
- data/vendor/assets/javascripts/languages/prism-tt2.js +53 -0
- data/vendor/assets/javascripts/languages/prism-turtle.js +54 -0
- data/vendor/assets/javascripts/languages/prism-twig.js +44 -0
- data/vendor/assets/javascripts/languages/prism-typescript.js +60 -0
- data/vendor/assets/javascripts/languages/prism-typoscript.js +80 -0
- data/vendor/assets/javascripts/languages/prism-unrealscript.js +42 -0
- data/vendor/assets/javascripts/languages/prism-uorazor.js +48 -0
- data/vendor/assets/javascripts/languages/prism-uri.js +96 -0
- data/vendor/assets/javascripts/languages/prism-v.js +81 -0
- data/vendor/assets/javascripts/languages/prism-vala.js +84 -0
- data/vendor/assets/javascripts/languages/prism-vbnet.js +22 -0
- data/vendor/assets/javascripts/languages/prism-velocity.js +72 -0
- data/vendor/assets/javascripts/languages/prism-verilog.js +26 -0
- data/vendor/assets/javascripts/languages/prism-vhdl.js +26 -0
- data/vendor/assets/javascripts/languages/prism-vim.js +10 -0
- data/vendor/assets/javascripts/languages/prism-visual-basic.js +29 -0
- data/vendor/assets/javascripts/languages/prism-warpscript.js +21 -0
- data/vendor/assets/javascripts/languages/prism-wasm.js +31 -0
- data/vendor/assets/javascripts/languages/prism-web-idl.js +101 -0
- data/vendor/assets/javascripts/languages/prism-wgsl.js +69 -0
- data/vendor/assets/javascripts/{prism → languages}/prism-wiki.js +9 -8
- data/vendor/assets/javascripts/languages/prism-wolfram.js +29 -0
- data/vendor/assets/javascripts/languages/prism-wren.js +100 -0
- data/vendor/assets/javascripts/languages/prism-xeora.js +114 -0
- data/vendor/assets/javascripts/languages/prism-xml-doc.js +40 -0
- data/vendor/assets/javascripts/languages/prism-xojo.js +21 -0
- data/vendor/assets/javascripts/languages/prism-xquery.js +162 -0
- data/vendor/assets/javascripts/languages/prism-yaml.js +83 -0
- data/vendor/assets/javascripts/languages/prism-yang.js +20 -0
- data/vendor/assets/javascripts/languages/prism-zig.js +101 -0
- data/vendor/assets/javascripts/prism-plugin/prism-autolinker.js +63 -63
- data/vendor/assets/javascripts/prism-plugin/prism-autoloader.js +465 -122
- data/vendor/assets/javascripts/prism-plugin/prism-command-line.js +221 -63
- data/vendor/assets/javascripts/prism-plugin/prism-copy-to-clipboard.js +128 -43
- data/vendor/assets/javascripts/prism-plugin/prism-custom-class.js +105 -24
- data/vendor/assets/javascripts/prism-plugin/prism-data-uri-highlight.js +4 -8
- data/vendor/assets/javascripts/prism-plugin/prism-diff-highlight.js +90 -0
- data/vendor/assets/javascripts/prism-plugin/prism-download-button.js +20 -0
- data/vendor/assets/javascripts/prism-plugin/prism-file-highlight.js +179 -61
- data/vendor/assets/javascripts/prism-plugin/prism-filter-highlight-all.js +127 -0
- data/vendor/assets/javascripts/prism-plugin/prism-highlight-keywords.js +10 -13
- data/vendor/assets/javascripts/prism-plugin/prism-inline-color.js +105 -0
- data/vendor/assets/javascripts/prism-plugin/prism-jsonp-highlight.js +264 -112
- data/vendor/assets/javascripts/prism-plugin/prism-keep-markup.js +53 -24
- data/vendor/assets/javascripts/prism-plugin/prism-line-highlight.js +328 -115
- data/vendor/assets/javascripts/prism-plugin/prism-line-numbers.js +237 -42
- data/vendor/assets/javascripts/prism-plugin/prism-match-braces.js +190 -0
- data/vendor/assets/javascripts/prism-plugin/prism-normalize-whitespace.js +206 -149
- data/vendor/assets/javascripts/prism-plugin/prism-previewers.js +712 -0
- data/vendor/assets/javascripts/prism-plugin/prism-remove-initial-line-feed.js +17 -17
- data/vendor/assets/javascripts/prism-plugin/prism-show-invisibles.js +83 -19
- data/vendor/assets/javascripts/prism-plugin/prism-show-language.js +317 -20
- data/vendor/assets/javascripts/prism-plugin/prism-toolbar.js +61 -15
- data/vendor/assets/javascripts/prism-plugin/prism-treeview.js +70 -0
- data/vendor/assets/javascripts/prism-plugin/prism-unescaped-markup.js +39 -17
- data/vendor/assets/javascripts/prism-plugin/prism-wpd.js +132 -147
- data/vendor/assets/javascripts/prism.js +302 -127
- data/vendor/assets/stylesheets/prism-plugin/prism-autolinker.min.css +1 -0
- data/vendor/assets/stylesheets/prism-plugin/prism-command-line.css +11 -1
- data/vendor/assets/stylesheets/prism-plugin/prism-command-line.min.css +1 -0
- data/vendor/assets/stylesheets/prism-plugin/prism-diff-highlight.css +13 -0
- data/vendor/assets/stylesheets/prism-plugin/prism-diff-highlight.min.css +1 -0
- data/vendor/assets/stylesheets/prism-plugin/prism-inline-color.css +33 -0
- data/vendor/assets/stylesheets/prism-plugin/prism-inline-color.min.css +1 -0
- data/vendor/assets/stylesheets/prism-plugin/prism-line-highlight.css +26 -0
- data/vendor/assets/stylesheets/prism-plugin/prism-line-highlight.min.css +1 -0
- data/vendor/assets/stylesheets/prism-plugin/prism-line-numbers.css +4 -4
- data/vendor/assets/stylesheets/prism-plugin/prism-line-numbers.min.css +1 -0
- data/vendor/assets/stylesheets/prism-plugin/prism-match-braces.css +29 -0
- data/vendor/assets/stylesheets/prism-plugin/prism-match-braces.min.css +1 -0
- data/vendor/assets/stylesheets/prism-plugin/prism-previewers.css +243 -0
- data/vendor/assets/stylesheets/prism-plugin/prism-previewers.min.css +1 -0
- data/vendor/assets/stylesheets/prism-plugin/prism-show-invisibles.css +7 -6
- data/vendor/assets/stylesheets/prism-plugin/prism-show-invisibles.min.css +1 -0
- data/vendor/assets/stylesheets/prism-plugin/prism-toolbar.css +22 -15
- data/vendor/assets/stylesheets/prism-plugin/prism-toolbar.min.css +1 -0
- data/vendor/assets/stylesheets/prism-plugin/prism-treeview.css +168 -0
- data/vendor/assets/stylesheets/prism-plugin/prism-treeview.min.css +1 -0
- data/vendor/assets/stylesheets/prism-plugin/prism-unescaped-markup.css +4 -4
- data/vendor/assets/stylesheets/prism-plugin/prism-unescaped-markup.min.css +1 -0
- data/vendor/assets/stylesheets/prism-plugin/prism-wpd.min.css +1 -0
- data/vendor/assets/stylesheets/prism-theme/prism-a11y-dark.css +161 -0
- data/vendor/assets/stylesheets/{prism-atom-dark.css → prism-theme/prism-atom-dark.css} +10 -13
- data/vendor/assets/stylesheets/prism-theme/prism-autolinker.css +3 -0
- data/vendor/assets/stylesheets/{prism-base16-ateliersulphurpool.light.css → prism-theme/prism-base16-ateliersulphurpool.light.css} +60 -56
- data/vendor/assets/stylesheets/{prism-cb.css → prism-theme/prism-cb.css} +20 -50
- data/vendor/assets/stylesheets/prism-theme/prism-coldark-cold.css +317 -0
- data/vendor/assets/stylesheets/prism-theme/prism-coldark-dark.css +317 -0
- data/vendor/assets/stylesheets/prism-theme/prism-command-line.css +33 -0
- data/vendor/assets/stylesheets/prism-theme/prism-coy-without-shadows.css +140 -0
- data/vendor/assets/stylesheets/{prism-coy.css → prism-theme/prism-coy.css} +17 -19
- data/vendor/assets/stylesheets/prism-theme/prism-coy.min.css +1 -0
- data/vendor/assets/stylesheets/prism-theme/prism-darcula.css +159 -0
- data/vendor/assets/stylesheets/{prism-dark.css → prism-theme/prism-dark.css} +2 -1
- data/vendor/assets/stylesheets/prism-theme/prism-dark.min.css +1 -0
- data/vendor/assets/stylesheets/prism-theme/prism-dracula.css +122 -0
- data/vendor/assets/stylesheets/{prism-duotone-dark.css → prism-theme/prism-duotone-dark.css} +58 -54
- data/vendor/assets/stylesheets/{prism-duotone-earth.css → prism-theme/prism-duotone-earth.css} +58 -54
- data/vendor/assets/stylesheets/{prism-duotone-forest.css → prism-theme/prism-duotone-forest.css} +58 -54
- data/vendor/assets/stylesheets/{prism-duotone-light.css → prism-theme/prism-duotone-light.css} +58 -54
- data/vendor/assets/stylesheets/{prism-duotone-sea.css → prism-theme/prism-duotone-sea.css} +58 -54
- data/vendor/assets/stylesheets/{prism-duotone-space.css → prism-theme/prism-duotone-space.css} +58 -54
- data/vendor/assets/stylesheets/{prism-funky.css → prism-theme/prism-funky.css} +16 -2
- data/vendor/assets/stylesheets/prism-theme/prism-funky.min.css +1 -0
- data/vendor/assets/stylesheets/{prism-ghcolors.css → prism-theme/prism-ghcolors.css} +47 -44
- data/vendor/assets/stylesheets/prism-theme/prism-gruvbox-dark.css +143 -0
- data/vendor/assets/stylesheets/prism-theme/prism-gruvbox-light.css +143 -0
- data/vendor/assets/stylesheets/prism-theme/prism-holi-theme.css +119 -0
- data/vendor/assets/stylesheets/prism-theme/prism-hopscotch.css +132 -0
- data/vendor/assets/stylesheets/prism-theme/prism-laserwave.css +133 -0
- data/vendor/assets/stylesheets/prism-theme/prism-line-highlight.css +49 -0
- data/vendor/assets/stylesheets/prism-theme/prism-line-numbers.css +41 -0
- data/vendor/assets/stylesheets/prism-theme/prism-lucario.css +122 -0
- data/vendor/assets/stylesheets/prism-theme/prism-material-dark.css +205 -0
- data/vendor/assets/stylesheets/prism-theme/prism-material-light.css +207 -0
- data/vendor/assets/stylesheets/prism-theme/prism-material-oceanic.css +210 -0
- data/vendor/assets/stylesheets/prism-theme/prism-night-owl.css +158 -0
- data/vendor/assets/stylesheets/prism-theme/prism-nord.css +124 -0
- data/vendor/assets/stylesheets/{prism-okaidia.css → prism-theme/prism-okaidia.css} +5 -3
- data/vendor/assets/stylesheets/prism-theme/prism-okaidia.min.css +1 -0
- data/vendor/assets/stylesheets/prism-theme/prism-one-dark.css +440 -0
- data/vendor/assets/stylesheets/prism-theme/prism-one-light.css +428 -0
- data/vendor/assets/stylesheets/prism-theme/prism-pojoaque.css +151 -0
- data/vendor/assets/stylesheets/prism-theme/prism-previewers.css +242 -0
- data/vendor/assets/stylesheets/prism-theme/prism-shades-of-purple.css +196 -0
- data/vendor/assets/stylesheets/prism-theme/prism-show-invisibles.css +34 -0
- data/vendor/assets/stylesheets/prism-theme/prism-solarized-dark-atom.css +143 -0
- data/vendor/assets/stylesheets/{prism-solarizedlight.css → prism-theme/prism-solarizedlight.css} +5 -3
- data/vendor/assets/stylesheets/prism-theme/prism-solarizedlight.min.css +1 -0
- data/vendor/assets/stylesheets/prism-theme/prism-synthwave84.css +140 -0
- data/vendor/assets/stylesheets/{prism-tomorrow.css → prism-theme/prism-tomorrow.css} +1 -0
- data/vendor/assets/stylesheets/prism-theme/prism-tomorrow.min.css +1 -0
- data/vendor/assets/stylesheets/{prism-toolbar.css → prism-theme/prism-toolbar.css} +15 -15
- data/vendor/assets/stylesheets/{prism-twilight.css → prism-theme/prism-twilight.css} +5 -34
- data/vendor/assets/stylesheets/prism-theme/prism-twilight.min.css +1 -0
- data/vendor/assets/stylesheets/prism-theme/prism-unescaped-markup.css +10 -0
- data/vendor/assets/stylesheets/prism-theme/prism-vs.css +168 -0
- data/vendor/assets/stylesheets/prism-theme/prism-vsc-dark-plus.css +275 -0
- data/vendor/assets/stylesheets/prism-theme/prism-wpd.css +11 -0
- data/vendor/assets/stylesheets/prism-theme/prism-xonokai.css +162 -0
- data/vendor/assets/stylesheets/prism-theme/prism-z-touch.css +160 -0
- data/vendor/assets/stylesheets/prism.css +6 -3
- metadata +392 -151
- data/vendor/assets/javascripts/prism/prism-abap.js +0 -48
- data/vendor/assets/javascripts/prism/prism-actionscript.js +0 -17
- data/vendor/assets/javascripts/prism/prism-ada.js +0 -19
- data/vendor/assets/javascripts/prism/prism-apacheconf.js +0 -47
- data/vendor/assets/javascripts/prism/prism-applescript.js +0 -20
- data/vendor/assets/javascripts/prism/prism-aspnet.js +0 -36
- data/vendor/assets/javascripts/prism/prism-autohotkey.js +0 -27
- data/vendor/assets/javascripts/prism/prism-autoit.js +0 -33
- data/vendor/assets/javascripts/prism/prism-bash.js +0 -80
- data/vendor/assets/javascripts/prism/prism-bro.js +0 -50
- data/vendor/assets/javascripts/prism/prism-c.js +0 -33
- data/vendor/assets/javascripts/prism/prism-clike.js +0 -29
- data/vendor/assets/javascripts/prism/prism-coffeescript.js +0 -91
- data/vendor/assets/javascripts/prism/prism-core.js +0 -511
- data/vendor/assets/javascripts/prism/prism-cpp.js +0 -12
- data/vendor/assets/javascripts/prism/prism-crystal.js +0 -53
- data/vendor/assets/javascripts/prism/prism-csharp.js +0 -32
- data/vendor/assets/javascripts/prism/prism-css-extras.js +0 -16
- data/vendor/assets/javascripts/prism/prism-css.js +0 -51
- data/vendor/assets/javascripts/prism/prism-d.js +0 -64
- data/vendor/assets/javascripts/prism/prism-dart.js +0 -18
- data/vendor/assets/javascripts/prism/prism-diff.js +0 -20
- data/vendor/assets/javascripts/prism/prism-docker.js +0 -9
- data/vendor/assets/javascripts/prism/prism-elixir.js +0 -90
- data/vendor/assets/javascripts/prism/prism-fsharp.js +0 -33
- data/vendor/assets/javascripts/prism/prism-gherkin.js +0 -78
- data/vendor/assets/javascripts/prism/prism-glsl.js +0 -16
- data/vendor/assets/javascripts/prism/prism-go.js +0 -9
- data/vendor/assets/javascripts/prism/prism-graphql.js +0 -24
- data/vendor/assets/javascripts/prism/prism-groovy.js +0 -65
- data/vendor/assets/javascripts/prism/prism-handlebars.js +0 -83
- data/vendor/assets/javascripts/prism/prism-haskell.js +0 -35
- data/vendor/assets/javascripts/prism/prism-haxe.js +0 -43
- data/vendor/assets/javascripts/prism/prism-http.js +0 -50
- data/vendor/assets/javascripts/prism/prism-ini.js +0 -11
- data/vendor/assets/javascripts/prism/prism-java.js +0 -16
- data/vendor/assets/javascripts/prism/prism-javascript.js +0 -48
- data/vendor/assets/javascripts/prism/prism-jolie.js +0 -56
- data/vendor/assets/javascripts/prism/prism-json.js +0 -11
- data/vendor/assets/javascripts/prism/prism-jsx.js +0 -27
- data/vendor/assets/javascripts/prism/prism-julia.js +0 -12
- data/vendor/assets/javascripts/prism/prism-keyman.js +0 -14
- data/vendor/assets/javascripts/prism/prism-kotlin.js +0 -62
- data/vendor/assets/javascripts/prism/prism-latex.js +0 -61
- data/vendor/assets/javascripts/prism/prism-lolcode.js +0 -54
- data/vendor/assets/javascripts/prism/prism-makefile.js +0 -31
- data/vendor/assets/javascripts/prism/prism-markdown.js +0 -120
- data/vendor/assets/javascripts/prism/prism-markup.js +0 -46
- data/vendor/assets/javascripts/prism/prism-matlab.js +0 -14
- data/vendor/assets/javascripts/prism/prism-mel.js +0 -39
- data/vendor/assets/javascripts/prism/prism-monkey.js +0 -25
- data/vendor/assets/javascripts/prism/prism-nasm.js +0 -24
- data/vendor/assets/javascripts/prism/prism-nginx.js +0 -11
- data/vendor/assets/javascripts/prism/prism-nsis.js +0 -26
- data/vendor/assets/javascripts/prism/prism-objectivec.js +0 -5
- data/vendor/assets/javascripts/prism/prism-ocaml.js +0 -21
- data/vendor/assets/javascripts/prism/prism-oz.js +0 -21
- data/vendor/assets/javascripts/prism/prism-parser.js +0 -66
- data/vendor/assets/javascripts/prism/prism-perl.js +0 -140
- data/vendor/assets/javascripts/prism/prism-php-extras.js +0 -11
- data/vendor/assets/javascripts/prism/prism-php.js +0 -111
- data/vendor/assets/javascripts/prism/prism-powershell.js +0 -52
- data/vendor/assets/javascripts/prism/prism-processing.js +0 -18
- data/vendor/assets/javascripts/prism/prism-properties.js +0 -9
- data/vendor/assets/javascripts/prism/prism-protobuf.js +0 -8
- data/vendor/assets/javascripts/prism/prism-python.js +0 -27
- data/vendor/assets/javascripts/prism/prism-r.js +0 -19
- data/vendor/assets/javascripts/prism/prism-rip.js +0 -28
- data/vendor/assets/javascripts/prism/prism-ruby.js +0 -116
- data/vendor/assets/javascripts/prism/prism-rust.js +0 -53
- data/vendor/assets/javascripts/prism/prism-sas.js +0 -31
- data/vendor/assets/javascripts/prism/prism-scala.js +0 -18
- data/vendor/assets/javascripts/prism/prism-scheme.js +0 -26
- data/vendor/assets/javascripts/prism/prism-smarty.js +0 -127
- data/vendor/assets/javascripts/prism/prism-sql.js +0 -17
- data/vendor/assets/javascripts/prism/prism-stylus.js +0 -102
- data/vendor/assets/javascripts/prism/prism-swift.js +0 -25
- data/vendor/assets/javascripts/prism/prism-tcl.js +0 -43
- data/vendor/assets/javascripts/prism/prism-textile.js +0 -257
- data/vendor/assets/javascripts/prism/prism-twig.js +0 -46
- data/vendor/assets/javascripts/prism/prism-typescript.js +0 -5
- data/vendor/assets/javascripts/prism/prism-verilog.js +0 -17
- data/vendor/assets/javascripts/prism/prism-vhdl.js +0 -23
- data/vendor/assets/javascripts/prism/prism-vim.js +0 -10
- data/vendor/assets/javascripts/prism/prism-xojo.js +0 -20
- data/vendor/assets/javascripts/prism/prism-yaml.js +0 -44
- data/vendor/assets/stylesheets/prism-hopscotch.css +0 -124
- data/vendor/assets/stylesheets/prism-pojoaque.css +0 -134
- data/vendor/assets/stylesheets/prism-vs.css +0 -157
- data/vendor/assets/stylesheets/prism-xonokai.css +0 -164
- /data/vendor/assets/javascripts/{prism → languages}/prism-jade.js +0 -0
- /data/vendor/assets/stylesheets/{prism-show-language.css → prism-theme/prism-show-language.css} +0 -0
@@ -1,133 +1,346 @@
|
|
1
|
-
(function(){
|
2
|
-
|
3
|
-
if (typeof
|
4
|
-
|
5
|
-
}
|
6
|
-
|
7
|
-
function $$(expr, con) {
|
8
|
-
return Array.prototype.slice.call((con || document).querySelectorAll(expr));
|
9
|
-
}
|
10
|
-
|
11
|
-
function hasClass(element, className) {
|
12
|
-
className = " " + className + " ";
|
13
|
-
return (" " + element.className + " ").replace(/[\n\t]/g, " ").indexOf(className) > -1
|
14
|
-
}
|
15
|
-
|
16
|
-
// Some browsers round the line-height, others don't.
|
17
|
-
// We need to test for it to position the elements properly.
|
18
|
-
var isLineHeightRounded = (function() {
|
19
|
-
var res;
|
20
|
-
return function() {
|
21
|
-
if(typeof res === 'undefined') {
|
22
|
-
var d = document.createElement('div');
|
23
|
-
d.style.fontSize = '13px';
|
24
|
-
d.style.lineHeight = '1.5';
|
25
|
-
d.style.padding = 0;
|
26
|
-
d.style.border = 0;
|
27
|
-
d.innerHTML = ' <br /> ';
|
28
|
-
document.body.appendChild(d);
|
29
|
-
// Browsers that round the line-height should have offsetHeight === 38
|
30
|
-
// The others should have 39.
|
31
|
-
res = d.offsetHeight === 38;
|
32
|
-
document.body.removeChild(d);
|
33
|
-
}
|
34
|
-
return res;
|
1
|
+
(function () {
|
2
|
+
|
3
|
+
if (typeof Prism === 'undefined' || typeof document === 'undefined' || !document.querySelector) {
|
4
|
+
return;
|
35
5
|
}
|
36
|
-
}());
|
37
6
|
|
38
|
-
|
39
|
-
var
|
40
|
-
|
41
|
-
|
42
|
-
var parseMethod = isLineHeightRounded() ? parseInt : parseFloat;
|
43
|
-
var lineHeight = parseMethod(getComputedStyle(pre).lineHeight);
|
44
|
-
|
45
|
-
for (var i=0, range; range = ranges[i++];) {
|
46
|
-
range = range.split('-');
|
47
|
-
|
48
|
-
var start = +range[0],
|
49
|
-
end = +range[1] || start;
|
50
|
-
|
51
|
-
var line = document.createElement('div');
|
52
|
-
|
53
|
-
line.textContent = Array(end - start + 2).join(' \n');
|
54
|
-
line.setAttribute('aria-hidden', 'true');
|
55
|
-
line.className = (classes || '') + ' line-highlight';
|
56
|
-
|
57
|
-
//if the line-numbers plugin is enabled, then there is no reason for this plugin to display the line numbers
|
58
|
-
if(!hasClass(pre, 'line-numbers')) {
|
59
|
-
line.setAttribute('data-start', start);
|
60
|
-
|
61
|
-
if(end > start) {
|
62
|
-
line.setAttribute('data-end', end);
|
63
|
-
}
|
64
|
-
}
|
7
|
+
var LINE_NUMBERS_CLASS = 'line-numbers';
|
8
|
+
var LINKABLE_LINE_NUMBERS_CLASS = 'linkable-line-numbers';
|
9
|
+
var NEW_LINE_EXP = /\n(?!$)/g;
|
65
10
|
|
66
|
-
|
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));
|
18
|
+
}
|
67
19
|
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
20
|
+
/**
|
21
|
+
* Returns whether the given element has the given class.
|
22
|
+
*
|
23
|
+
* @param {Element} element
|
24
|
+
* @param {string} className
|
25
|
+
* @returns {boolean}
|
26
|
+
*/
|
27
|
+
function hasClass(element, className) {
|
28
|
+
return element.classList.contains(className);
|
75
29
|
}
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
var range = (hash.match(/\.([\d,-]+)$/) || [,''])[1];
|
87
|
-
|
88
|
-
if (!range || document.getElementById(hash)) {
|
89
|
-
return;
|
30
|
+
|
31
|
+
/**
|
32
|
+
* Calls the given function.
|
33
|
+
*
|
34
|
+
* @param {() => any} func
|
35
|
+
* @returns {void}
|
36
|
+
*/
|
37
|
+
function callFunction(func) {
|
38
|
+
func();
|
90
39
|
}
|
91
|
-
|
92
|
-
var id = hash.slice(0, hash.lastIndexOf('.')),
|
93
|
-
pre = document.getElementById(id);
|
94
40
|
|
95
|
-
|
96
|
-
|
41
|
+
// Some browsers round the line-height, others don't.
|
42
|
+
// We need to test for it to position the elements properly.
|
43
|
+
var isLineHeightRounded = (function () {
|
44
|
+
var res;
|
45
|
+
return function () {
|
46
|
+
if (typeof res === 'undefined') {
|
47
|
+
var d = document.createElement('div');
|
48
|
+
d.style.fontSize = '13px';
|
49
|
+
d.style.lineHeight = '1.5';
|
50
|
+
d.style.padding = '0';
|
51
|
+
d.style.border = '0';
|
52
|
+
d.innerHTML = ' <br /> ';
|
53
|
+
document.body.appendChild(d);
|
54
|
+
// Browsers that round the line-height should have offsetHeight === 38
|
55
|
+
// The others should have 39.
|
56
|
+
res = d.offsetHeight === 38;
|
57
|
+
document.body.removeChild(d);
|
58
|
+
}
|
59
|
+
return res;
|
60
|
+
};
|
61
|
+
}());
|
62
|
+
|
63
|
+
/**
|
64
|
+
* Returns the top offset of the content box of the given parent and the content box of one of its children.
|
65
|
+
*
|
66
|
+
* @param {HTMLElement} parent
|
67
|
+
* @param {HTMLElement} child
|
68
|
+
*/
|
69
|
+
function getContentBoxTopOffset(parent, child) {
|
70
|
+
var parentStyle = getComputedStyle(parent);
|
71
|
+
var childStyle = getComputedStyle(child);
|
72
|
+
|
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
|
+
}
|
81
|
+
|
82
|
+
return child.offsetTop
|
83
|
+
+ pxToNumber(childStyle.borderTopWidth)
|
84
|
+
+ pxToNumber(childStyle.paddingTop)
|
85
|
+
- pxToNumber(parentStyle.paddingTop);
|
97
86
|
}
|
98
|
-
|
99
|
-
|
100
|
-
|
87
|
+
|
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
|
+
}
|
100
|
+
|
101
|
+
if (pre.hasAttribute('data-line')) {
|
102
|
+
return true;
|
103
|
+
}
|
104
|
+
|
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
|
+
}
|
110
|
+
|
111
|
+
return false;
|
101
112
|
}
|
102
113
|
|
103
|
-
|
114
|
+
var scrollIntoView = true;
|
104
115
|
|
105
|
-
|
106
|
-
|
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') || '');
|
107
130
|
|
108
|
-
var
|
131
|
+
var ranges = lines.replace(/\s+/g, '').split(',').filter(Boolean);
|
132
|
+
var offset = +pre.getAttribute('data-line-offset') || 0;
|
109
133
|
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
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;
|
163
|
+
}
|
164
|
+
|
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 {
|
193
|
+
mutateActions.push(function () {
|
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');
|
203
|
+
});
|
204
|
+
}
|
205
|
+
|
206
|
+
mutateActions.push(function () {
|
207
|
+
line.style.width = pre.scrollWidth + 'px';
|
208
|
+
});
|
209
|
+
|
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
|
+
});
|
216
|
+
|
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.
|
224
|
+
|
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
|
+
};
|
247
|
+
});
|
248
|
+
}
|
249
|
+
|
250
|
+
return function () {
|
251
|
+
mutateActions.forEach(callFunction);
|
252
|
+
};
|
253
|
+
}
|
254
|
+
};
|
255
|
+
|
256
|
+
|
257
|
+
function applyHash() {
|
258
|
+
var hash = location.hash.slice(1);
|
259
|
+
|
260
|
+
// Remove pre-existing temporary lines
|
261
|
+
$$('.temporary.line-highlight').forEach(function (line) {
|
262
|
+
line.parentNode.removeChild(line);
|
263
|
+
});
|
264
|
+
|
265
|
+
var range = (hash.match(/\.([\d,-]+)$/) || [, ''])[1];
|
266
|
+
|
267
|
+
if (!range || document.getElementById(hash)) {
|
268
|
+
return;
|
269
|
+
}
|
270
|
+
|
271
|
+
var id = hash.slice(0, hash.lastIndexOf('.'));
|
272
|
+
var pre = document.getElementById(id);
|
273
|
+
|
274
|
+
if (!pre) {
|
275
|
+
return;
|
276
|
+
}
|
277
|
+
|
278
|
+
if (!pre.hasAttribute('data-line')) {
|
279
|
+
pre.setAttribute('data-line', '');
|
280
|
+
}
|
281
|
+
|
282
|
+
var mutateDom = Prism.plugins.lineHighlight.highlightLines(pre, range, 'temporary ');
|
283
|
+
mutateDom();
|
284
|
+
|
285
|
+
if (scrollIntoView) {
|
286
|
+
document.querySelector('.temporary.line-highlight').scrollIntoView();
|
287
|
+
}
|
116
288
|
}
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
289
|
+
|
290
|
+
var fakeTimer = 0; // Hack to limit the number of times applyHash() runs
|
291
|
+
|
292
|
+
Prism.hooks.add('before-sanity-check', function (env) {
|
293
|
+
var pre = env.element.parentElement;
|
294
|
+
if (!isActiveFor(pre)) {
|
295
|
+
return;
|
296
|
+
}
|
297
|
+
|
298
|
+
/*
|
299
|
+
* Cleanup for other plugins (e.g. autoloader).
|
300
|
+
*
|
301
|
+
* Sometimes <code> blocks are highlighted multiple times. It is necessary
|
302
|
+
* to cleanup any left-over tags, because the whitespace inside of the <div>
|
303
|
+
* tags change the content of the <code> tag.
|
304
|
+
*/
|
305
|
+
var num = 0;
|
306
|
+
$$('.line-highlight', pre).forEach(function (line) {
|
307
|
+
num += line.textContent.length;
|
308
|
+
line.parentNode.removeChild(line);
|
309
|
+
});
|
310
|
+
// Remove extra whitespace
|
311
|
+
if (num && /^(?: \n)+$/.test(env.code.slice(-num))) {
|
312
|
+
env.code = env.code.slice(0, -num);
|
313
|
+
}
|
314
|
+
});
|
315
|
+
|
316
|
+
Prism.hooks.add('complete', function completeHook(env) {
|
317
|
+
var pre = env.element.parentElement;
|
318
|
+
if (!isActiveFor(pre)) {
|
319
|
+
return;
|
320
|
+
}
|
321
|
+
|
322
|
+
clearTimeout(fakeTimer);
|
323
|
+
|
324
|
+
var hasLineNumbers = Prism.plugins.lineNumbers;
|
325
|
+
var isLineNumbersLoaded = env.plugins && env.plugins.lineNumbers;
|
326
|
+
|
327
|
+
if (hasClass(pre, LINE_NUMBERS_CLASS) && hasLineNumbers && !isLineNumbersLoaded) {
|
328
|
+
Prism.hooks.add('line-numbers', completeHook);
|
329
|
+
} else {
|
330
|
+
var mutateDom = Prism.plugins.lineHighlight.highlightLines(pre);
|
331
|
+
mutateDom();
|
332
|
+
fakeTimer = setTimeout(applyHash, 1);
|
333
|
+
}
|
122
334
|
});
|
123
|
-
|
124
|
-
highlightLines(pre, lines);
|
125
|
-
|
126
|
-
fakeTimer = setTimeout(applyHash, 1);
|
127
|
-
});
|
128
335
|
|
129
|
-
if(window.addEventListener) {
|
130
336
|
window.addEventListener('hashchange', applyHash);
|
131
|
-
|
337
|
+
window.addEventListener('resize', function () {
|
338
|
+
var actions = $$('pre')
|
339
|
+
.filter(isActiveFor)
|
340
|
+
.map(function (pre) {
|
341
|
+
return Prism.plugins.lineHighlight.highlightLines(pre);
|
342
|
+
});
|
343
|
+
actions.forEach(callFunction);
|
344
|
+
});
|
132
345
|
|
133
|
-
}
|
346
|
+
}());
|