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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +9 -0
- data/README.md +22 -1
- data/lib/prism-rails/version.rb +1 -1
- data/vendor/assets/javascripts/languages/prism-abap.js +17 -17
- data/vendor/assets/javascripts/languages/prism-abnf.js +3 -3
- data/vendor/assets/javascripts/languages/prism-actionscript.js +6 -2
- data/vendor/assets/javascripts/languages/prism-ada.js +9 -6
- 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 +1 -1
- data/vendor/assets/javascripts/languages/prism-apacheconf.js +3 -3
- data/vendor/assets/javascripts/languages/prism-apex.js +65 -0
- data/vendor/assets/javascripts/languages/prism-apl.js +3 -3
- data/vendor/assets/javascripts/languages/prism-applescript.js +5 -8
- data/vendor/assets/javascripts/languages/prism-aql.js +14 -6
- data/vendor/assets/javascripts/languages/prism-arduino.js +5 -3
- data/vendor/assets/javascripts/languages/prism-arff.js +1 -1
- data/vendor/assets/javascripts/languages/prism-armasm.js +49 -0
- data/vendor/assets/javascripts/languages/prism-arturo.js +105 -0
- data/vendor/assets/javascripts/languages/prism-asciidoc.js +13 -13
- data/vendor/assets/javascripts/languages/prism-asm6502.js +15 -14
- data/vendor/assets/javascripts/languages/prism-asmatmel.js +43 -0
- data/vendor/assets/javascripts/languages/prism-aspnet.js +6 -6
- data/vendor/assets/javascripts/languages/prism-autohotkey.js +31 -14
- data/vendor/assets/javascripts/languages/prism-autoit.js +16 -16
- 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 +60 -22
- data/vendor/assets/javascripts/languages/prism-basic.js +4 -4
- data/vendor/assets/javascripts/languages/prism-batch.js +10 -10
- data/vendor/assets/javascripts/languages/prism-bbcode.js +3 -1
- 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/languages/prism-bison.js +2 -2
- data/vendor/assets/javascripts/languages/prism-bqn.js +63 -0
- data/vendor/assets/javascripts/languages/prism-brainfuck.js +1 -1
- data/vendor/assets/javascripts/languages/prism-brightscript.js +2 -2
- data/vendor/assets/javascripts/languages/prism-bro.js +9 -20
- data/vendor/assets/javascripts/languages/prism-bsl.js +75 -0
- data/vendor/assets/javascripts/languages/prism-c.js +53 -14
- 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 +5 -5
- 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 +7 -6
- data/vendor/assets/javascripts/languages/prism-clojure.js +20 -5
- data/vendor/assets/javascripts/languages/prism-cmake.js +7 -7
- data/vendor/assets/javascripts/languages/prism-cobol.js +53 -0
- data/vendor/assets/javascripts/languages/prism-coffeescript.js +79 -75
- data/vendor/assets/javascripts/languages/prism-concurnas.js +33 -20
- 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 +1087 -451
- data/vendor/assets/javascripts/languages/prism-cpp.js +99 -21
- data/vendor/assets/javascripts/languages/prism-crystal.js +36 -30
- data/vendor/assets/javascripts/languages/prism-csharp.js +343 -58
- data/vendor/assets/javascripts/languages/prism-cshtml.js +199 -0
- data/vendor/assets/javascripts/languages/prism-csp.js +67 -16
- data/vendor/assets/javascripts/languages/prism-css-extras.js +27 -16
- data/vendor/assets/javascripts/languages/prism-css.js +28 -26
- 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 +15 -10
- data/vendor/assets/javascripts/languages/prism-dart.js +76 -21
- 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 +15 -5
- data/vendor/assets/javascripts/languages/prism-django.js +8 -8
- data/vendor/assets/javascripts/languages/prism-dns-zone-file.js +3 -3
- data/vendor/assets/javascripts/languages/prism-docker.js +98 -11
- data/vendor/assets/javascripts/languages/prism-dot.js +76 -0
- data/vendor/assets/javascripts/languages/prism-ebnf.js +2 -2
- data/vendor/assets/javascripts/languages/prism-editorconfig.js +26 -0
- data/vendor/assets/javascripts/languages/prism-eiffel.js +5 -8
- data/vendor/assets/javascripts/languages/prism-ejs.js +4 -2
- data/vendor/assets/javascripts/languages/prism-elixir.js +21 -12
- data/vendor/assets/javascripts/languages/prism-elm.js +16 -15
- data/vendor/assets/javascripts/languages/prism-erb.js +12 -7
- data/vendor/assets/javascripts/languages/prism-erlang.js +6 -6
- data/vendor/assets/javascripts/languages/prism-excel-formula.js +66 -0
- data/vendor/assets/javascripts/languages/prism-factor.js +8 -8
- data/vendor/assets/javascripts/languages/prism-false.js +32 -0
- data/vendor/assets/javascripts/languages/prism-firestore-security-rules.js +2 -2
- data/vendor/assets/javascripts/languages/prism-flow.js +5 -5
- data/vendor/assets/javascripts/languages/prism-fortran.js +6 -6
- data/vendor/assets/javascripts/languages/prism-fsharp.js +20 -12
- data/vendor/assets/javascripts/languages/prism-ftl.js +12 -11
- data/vendor/assets/javascripts/languages/prism-gap.js +54 -0
- data/vendor/assets/javascripts/languages/prism-gcode.js +4 -3
- data/vendor/assets/javascripts/languages/prism-gdscript.js +2 -2
- data/vendor/assets/javascripts/languages/prism-gedcom.js +6 -6
- data/vendor/assets/javascripts/languages/prism-gettext.js +43 -0
- data/vendor/assets/javascripts/languages/prism-gherkin.js +7 -7
- data/vendor/assets/javascripts/languages/prism-git.js +3 -3
- data/vendor/assets/javascripts/languages/prism-glsl.js +2 -15
- data/vendor/assets/javascripts/languages/prism-gml.js +5 -5
- 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 +21 -5
- data/vendor/assets/javascripts/languages/prism-gradle.js +63 -0
- data/vendor/assets/javascripts/languages/prism-graphql.js +187 -7
- data/vendor/assets/javascripts/languages/prism-groovy.js +56 -58
- data/vendor/assets/javascripts/languages/prism-haml.js +23 -16
- data/vendor/assets/javascripts/languages/prism-handlebars.js +10 -7
- data/vendor/assets/javascripts/languages/prism-haskell.js +42 -14
- data/vendor/assets/javascripts/languages/prism-haxe.js +54 -21
- data/vendor/assets/javascripts/languages/prism-hcl.js +12 -14
- 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 +4 -10
- data/vendor/assets/javascripts/languages/prism-hsts.js +4 -10
- data/vendor/assets/javascripts/languages/prism-http.js +91 -17
- data/vendor/assets/javascripts/languages/prism-ichigojam.js +5 -5
- data/vendor/assets/javascripts/languages/prism-icon.js +2 -2
- 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/languages/prism-inform7.js +10 -10
- data/vendor/assets/javascripts/languages/prism-ini.js +39 -8
- data/vendor/assets/javascripts/languages/prism-io.js +10 -19
- data/vendor/assets/javascripts/languages/prism-j.js +7 -4
- data/vendor/assets/javascripts/languages/prism-java.js +80 -19
- data/vendor/assets/javascripts/languages/prism-javadoc.js +59 -31
- data/vendor/assets/javascripts/languages/prism-javadoclike.js +2 -2
- data/vendor/assets/javascripts/languages/prism-javascript.js +98 -17
- data/vendor/assets/javascripts/languages/prism-javastacktrace.js +63 -14
- data/vendor/assets/javascripts/languages/prism-jexl.js +14 -0
- data/vendor/assets/javascripts/languages/prism-jolie.js +23 -37
- data/vendor/assets/javascripts/languages/prism-jq.js +8 -6
- data/vendor/assets/javascripts/languages/prism-js-extras.js +34 -3
- data/vendor/assets/javascripts/languages/prism-js-templates.js +5 -2
- data/vendor/assets/javascripts/languages/prism-jsdoc.js +15 -10
- data/vendor/assets/javascripts/languages/prism-json.js +13 -5
- data/vendor/assets/javascripts/languages/prism-json5.js +3 -3
- data/vendor/assets/javascripts/languages/prism-jsonp.js +1 -1
- data/vendor/assets/javascripts/languages/prism-jsstacktrace.js +49 -0
- data/vendor/assets/javascripts/languages/prism-jsx.js +123 -104
- data/vendor/assets/javascripts/languages/prism-julia.js +31 -9
- data/vendor/assets/javascripts/languages/prism-keepalived.js +51 -0
- data/vendor/assets/javascripts/languages/prism-keyman.js +43 -13
- data/vendor/assets/javascripts/languages/prism-kotlin.js +56 -30
- 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 +6 -6
- data/vendor/assets/javascripts/languages/prism-latte.js +11 -17
- data/vendor/assets/javascripts/languages/prism-less.js +5 -5
- data/vendor/assets/javascripts/languages/prism-lilypond.js +3 -3
- data/vendor/assets/javascripts/languages/prism-linker-script.js +30 -0
- data/vendor/assets/javascripts/languages/prism-liquid.js +62 -8
- data/vendor/assets/javascripts/languages/prism-lisp.js +41 -41
- data/vendor/assets/javascripts/languages/prism-livescript.js +3 -3
- 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 +9 -9
- data/vendor/assets/javascripts/languages/prism-lua.js +3 -3
- data/vendor/assets/javascripts/languages/prism-magma.js +35 -0
- data/vendor/assets/javascripts/languages/prism-makefile.js +17 -17
- data/vendor/assets/javascripts/languages/prism-markdown.js +103 -32
- data/vendor/assets/javascripts/languages/prism-markup-templating.js +2 -1
- data/vendor/assets/javascripts/languages/prism-markup.js +95 -12
- data/vendor/assets/javascripts/languages/prism-mata.js +50 -0
- data/vendor/assets/javascripts/languages/prism-matlab.js +4 -4
- data/vendor/assets/javascripts/languages/prism-maxscript.js +91 -0
- data/vendor/assets/javascripts/languages/prism-mel.js +24 -21
- data/vendor/assets/javascripts/languages/prism-mermaid.js +113 -0
- data/vendor/assets/javascripts/languages/prism-metafont.js +84 -0
- data/vendor/assets/javascripts/languages/prism-mizar.js +3 -3
- data/vendor/assets/javascripts/languages/prism-mongodb.js +97 -0
- data/vendor/assets/javascripts/languages/prism-monkey.js +16 -18
- data/vendor/assets/javascripts/languages/prism-moonscript.js +1 -1
- data/vendor/assets/javascripts/languages/prism-n1ql.js +14 -8
- data/vendor/assets/javascripts/languages/prism-n4js.js +2 -2
- data/vendor/assets/javascripts/languages/prism-nand2tetris-hdl.js +3 -3
- data/vendor/assets/javascripts/languages/prism-naniscript.js +170 -0
- data/vendor/assets/javascripts/languages/prism-nasm.js +4 -4
- data/vendor/assets/javascripts/languages/prism-neon.js +5 -6
- data/vendor/assets/javascripts/languages/prism-nevod.js +125 -0
- data/vendor/assets/javascripts/languages/prism-nginx.js +54 -11
- data/vendor/assets/javascripts/languages/prism-nim.js +23 -12
- data/vendor/assets/javascripts/languages/prism-nix.js +10 -13
- data/vendor/assets/javascripts/languages/prism-nsis.js +10 -9
- data/vendor/assets/javascripts/languages/prism-objectivec.js +7 -2
- data/vendor/assets/javascripts/languages/prism-ocaml.js +32 -15
- data/vendor/assets/javascripts/languages/prism-odin.js +99 -0
- data/vendor/assets/javascripts/languages/prism-opencl.js +19 -12
- data/vendor/assets/javascripts/languages/prism-openqasm.js +23 -0
- data/vendor/assets/javascripts/languages/prism-oz.js +11 -8
- data/vendor/assets/javascripts/languages/prism-parigp.js +4 -4
- data/vendor/assets/javascripts/languages/prism-parser.js +3 -3
- data/vendor/assets/javascripts/languages/prism-pascal.js +24 -8
- data/vendor/assets/javascripts/languages/prism-pascaligo.js +7 -7
- data/vendor/assets/javascripts/languages/prism-pcaxis.js +2 -2
- data/vendor/assets/javascripts/languages/prism-peoplecode.js +42 -0
- data/vendor/assets/javascripts/languages/prism-perl.js +153 -188
- data/vendor/assets/javascripts/languages/prism-php-extras.js +8 -5
- data/vendor/assets/javascripts/languages/prism-php.js +275 -63
- data/vendor/assets/javascripts/languages/prism-phpdoc.js +1 -1
- data/vendor/assets/javascripts/languages/prism-plant-uml.js +103 -0
- data/vendor/assets/javascripts/languages/prism-plsql.js +16 -25
- data/vendor/assets/javascripts/languages/prism-powerquery.js +55 -0
- data/vendor/assets/javascripts/languages/prism-powershell.js +16 -18
- data/vendor/assets/javascripts/languages/prism-processing.js +6 -9
- data/vendor/assets/javascripts/languages/prism-prolog.js +7 -8
- data/vendor/assets/javascripts/languages/prism-promql.js +99 -0
- data/vendor/assets/javascripts/languages/prism-properties.js +9 -5
- data/vendor/assets/javascripts/languages/prism-protobuf.js +16 -9
- data/vendor/assets/javascripts/languages/prism-psl.js +35 -0
- data/vendor/assets/javascripts/languages/prism-pug.js +28 -21
- data/vendor/assets/javascripts/languages/prism-puppet.js +6 -6
- data/vendor/assets/javascripts/languages/prism-pure.js +9 -6
- 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 +12 -11
- data/vendor/assets/javascripts/languages/prism-q.js +4 -4
- data/vendor/assets/javascripts/languages/prism-qml.js +9 -6
- data/vendor/assets/javascripts/languages/prism-qore.js +5 -5
- data/vendor/assets/javascripts/languages/prism-qsharp.js +132 -0
- data/vendor/assets/javascripts/languages/prism-r.js +5 -5
- data/vendor/assets/javascripts/languages/prism-racket.js +18 -0
- data/vendor/assets/javascripts/languages/prism-reason.js +5 -8
- data/vendor/assets/javascripts/languages/prism-regex.js +54 -47
- data/vendor/assets/javascripts/languages/prism-rego.js +30 -0
- data/vendor/assets/javascripts/languages/prism-renpy.js +12 -12
- data/vendor/assets/javascripts/languages/prism-rescript.js +60 -0
- data/vendor/assets/javascripts/languages/prism-rest.js +16 -16
- data/vendor/assets/javascripts/languages/prism-rip.js +22 -16
- data/vendor/assets/javascripts/languages/prism-roboconf.js +3 -3
- data/vendor/assets/javascripts/languages/prism-robotframework.js +5 -5
- data/vendor/assets/javascripts/languages/prism-ruby.js +127 -88
- data/vendor/assets/javascripts/languages/prism-rust.js +120 -60
- data/vendor/assets/javascripts/languages/prism-sas.js +62 -38
- data/vendor/assets/javascripts/languages/prism-sass.js +15 -10
- data/vendor/assets/javascripts/languages/prism-scala.js +36 -3
- data/vendor/assets/javascripts/languages/prism-scheme.js +120 -33
- data/vendor/assets/javascripts/languages/prism-scss.js +11 -7
- data/vendor/assets/javascripts/languages/prism-shell-session.js +42 -26
- data/vendor/assets/javascripts/languages/prism-smali.js +87 -0
- data/vendor/assets/javascripts/languages/prism-smalltalk.js +12 -5
- data/vendor/assets/javascripts/languages/prism-smarty.js +91 -47
- data/vendor/assets/javascripts/languages/prism-sml.js +68 -0
- data/vendor/assets/javascripts/languages/prism-solidity.js +3 -1
- data/vendor/assets/javascripts/languages/prism-solution-file.js +2 -2
- data/vendor/assets/javascripts/languages/prism-soy.js +9 -9
- data/vendor/assets/javascripts/languages/prism-sparql.js +8 -8
- data/vendor/assets/javascripts/languages/prism-splunk-spl.js +3 -3
- data/vendor/assets/javascripts/languages/prism-sqf.js +7 -7
- data/vendor/assets/javascripts/languages/prism-sql.js +12 -4
- 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 +48 -16
- data/vendor/assets/javascripts/languages/prism-supercollider.js +36 -0
- data/vendor/assets/javascripts/languages/prism-swift.js +143 -20
- data/vendor/assets/javascripts/languages/prism-systemd.js +74 -0
- data/vendor/assets/javascripts/languages/prism-t4-templating.js +2 -2
- data/vendor/assets/javascripts/languages/prism-t4-vb.js +1 -1
- data/vendor/assets/javascripts/languages/prism-tap.js +13 -11
- data/vendor/assets/javascripts/languages/prism-tcl.js +8 -8
- data/vendor/assets/javascripts/languages/prism-textile.js +55 -29
- data/vendor/assets/javascripts/languages/prism-toml.js +14 -8
- data/vendor/assets/javascripts/languages/prism-tremor.js +72 -0
- data/vendor/assets/javascripts/languages/prism-tsx.js +15 -2
- data/vendor/assets/javascripts/languages/prism-tt2.js +7 -7
- data/vendor/assets/javascripts/languages/prism-turtle.js +4 -4
- data/vendor/assets/javascripts/languages/prism-twig.js +38 -40
- data/vendor/assets/javascripts/languages/prism-typescript.js +59 -6
- 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 +20 -10
- data/vendor/assets/javascripts/languages/prism-vbnet.js +11 -4
- data/vendor/assets/javascripts/languages/prism-velocity.js +6 -6
- data/vendor/assets/javascripts/languages/prism-verilog.js +14 -8
- data/vendor/assets/javascripts/languages/prism-vhdl.js +7 -4
- data/vendor/assets/javascripts/languages/prism-vim.js +4 -4
- data/vendor/assets/javascripts/languages/prism-visual-basic.js +9 -14
- data/vendor/assets/javascripts/languages/prism-warpscript.js +21 -0
- data/vendor/assets/javascripts/languages/prism-wasm.js +3 -3
- 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/languages/prism-wiki.js +4 -4
- 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 +8 -8
- data/vendor/assets/javascripts/languages/prism-xml-doc.js +40 -0
- data/vendor/assets/javascripts/languages/prism-xojo.js +9 -8
- data/vendor/assets/javascripts/languages/prism-xquery.js +7 -7
- data/vendor/assets/javascripts/languages/prism-yaml.js +19 -12
- data/vendor/assets/javascripts/languages/prism-yang.js +20 -0
- data/vendor/assets/javascripts/languages/prism-zig.js +19 -15
- data/vendor/assets/javascripts/prism-plugin/prism-autolinker.js +60 -65
- data/vendor/assets/javascripts/prism-plugin/prism-autoloader.js +199 -67
- data/vendor/assets/javascripts/prism-plugin/prism-command-line.js +212 -112
- data/vendor/assets/javascripts/prism-plugin/prism-copy-to-clipboard.js +128 -43
- data/vendor/assets/javascripts/prism-plugin/prism-custom-class.js +23 -8
- data/vendor/assets/javascripts/prism-plugin/prism-data-uri-highlight.js +2 -6
- data/vendor/assets/javascripts/prism-plugin/prism-diff-highlight.js +19 -12
- data/vendor/assets/javascripts/prism-plugin/prism-download-button.js +3 -2
- data/vendor/assets/javascripts/prism-plugin/prism-file-highlight.js +169 -63
- data/vendor/assets/javascripts/prism-plugin/prism-filter-highlight-all.js +5 -3
- data/vendor/assets/javascripts/prism-plugin/prism-highlight-keywords.js +10 -13
- data/vendor/assets/javascripts/prism-plugin/prism-inline-color.js +29 -12
- data/vendor/assets/javascripts/prism-plugin/prism-jsonp-highlight.js +179 -82
- data/vendor/assets/javascripts/prism-plugin/prism-keep-markup.js +53 -26
- data/vendor/assets/javascripts/prism-plugin/prism-line-highlight.js +217 -84
- data/vendor/assets/javascripts/prism-plugin/prism-line-numbers.js +152 -68
- data/vendor/assets/javascripts/prism-plugin/prism-match-braces.js +53 -47
- data/vendor/assets/javascripts/prism-plugin/prism-normalize-whitespace.js +203 -164
- data/vendor/assets/javascripts/prism-plugin/prism-previewers.js +61 -52
- data/vendor/assets/javascripts/prism-plugin/prism-remove-initial-line-feed.js +16 -16
- data/vendor/assets/javascripts/prism-plugin/prism-show-invisibles.js +4 -5
- data/vendor/assets/javascripts/prism-plugin/prism-show-language.js +147 -21
- data/vendor/assets/javascripts/prism-plugin/prism-toolbar.js +9 -8
- data/vendor/assets/javascripts/prism-plugin/prism-treeview.js +70 -0
- data/vendor/assets/javascripts/prism-plugin/prism-unescaped-markup.js +41 -23
- data/vendor/assets/javascripts/prism-plugin/prism-wpd.js +133 -148
- data/vendor/assets/javascripts/prism.js +96 -4
- 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.min.css +1 -0
- data/vendor/assets/stylesheets/prism-plugin/prism-inline-color.css +26 -2
- data/vendor/assets/stylesheets/prism-plugin/prism-inline-color.min.css +1 -0
- data/vendor/assets/stylesheets/prism-plugin/prism-line-highlight.css +21 -0
- data/vendor/assets/stylesheets/prism-plugin/prism-line-highlight.min.css +1 -0
- data/vendor/assets/stylesheets/prism-plugin/prism-line-numbers.css +0 -1
- data/vendor/assets/stylesheets/prism-plugin/prism-line-numbers.min.css +1 -0
- data/vendor/assets/stylesheets/prism-plugin/prism-match-braces.min.css +1 -0
- data/vendor/assets/stylesheets/prism-plugin/prism-previewers.css +1 -0
- data/vendor/assets/stylesheets/prism-plugin/prism-previewers.min.css +1 -0
- data/vendor/assets/stylesheets/prism-plugin/prism-show-invisibles.min.css +1 -0
- data/vendor/assets/stylesheets/prism-plugin/prism-toolbar.css +13 -12
- 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.min.css +1 -0
- data/vendor/assets/stylesheets/prism-plugin/prism-wpd.min.css +1 -0
- data/vendor/assets/stylesheets/prism-theme/prism-base16-ateliersulphurpool.light.css +3 -3
- data/vendor/assets/stylesheets/prism-theme/prism-cb.css +5 -35
- 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-coy-without-shadows.css +140 -0
- data/vendor/assets/stylesheets/prism-theme/prism-coy.css +5 -12
- data/vendor/assets/stylesheets/prism-theme/prism-coy.min.css +1 -0
- data/vendor/assets/stylesheets/prism-theme/prism-dark.min.css +1 -0
- data/vendor/assets/stylesheets/prism-theme/prism-duotone-dark.css +3 -3
- data/vendor/assets/stylesheets/prism-theme/prism-duotone-earth.css +3 -3
- data/vendor/assets/stylesheets/prism-theme/prism-duotone-forest.css +3 -3
- data/vendor/assets/stylesheets/prism-theme/prism-duotone-light.css +3 -3
- data/vendor/assets/stylesheets/prism-theme/prism-duotone-sea.css +3 -3
- data/vendor/assets/stylesheets/prism-theme/prism-duotone-space.css +3 -3
- data/vendor/assets/stylesheets/prism-theme/prism-funky.min.css +1 -0
- 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-laserwave.css +133 -0
- data/vendor/assets/stylesheets/prism-theme/prism-lucario.css +122 -0
- data/vendor/assets/stylesheets/prism-theme/prism-night-owl.css +158 -0
- data/vendor/assets/stylesheets/prism-theme/prism-okaidia.css +1 -1
- 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-shades-of-purple.css +3 -7
- data/vendor/assets/stylesheets/prism-theme/prism-solarized-dark-atom.css +143 -0
- data/vendor/assets/stylesheets/prism-theme/prism-solarizedlight.min.css +1 -0
- data/vendor/assets/stylesheets/prism-theme/prism-tomorrow.min.css +1 -0
- data/vendor/assets/stylesheets/prism-theme/prism-twilight.css +3 -33
- data/vendor/assets/stylesheets/prism-theme/prism-twilight.min.css +1 -0
- data/vendor/assets/stylesheets/prism-theme/prism-vs.css +7 -3
- data/vendor/assets/stylesheets/prism-theme/prism-vsc-dark-plus.css +108 -49
- data/vendor/assets/stylesheets/prism-theme/prism-xonokai.css +3 -30
- data/vendor/assets/stylesheets/prism-theme/prism-z-touch.css +160 -0
- data/vendor/assets/stylesheets/prism.css +1 -0
- metadata +133 -6
@@ -1,139 +1,239 @@
|
|
1
|
-
(function() {
|
1
|
+
(function () {
|
2
2
|
|
3
|
-
if (typeof
|
4
|
-
|
5
|
-
}
|
3
|
+
if (typeof Prism === 'undefined' || typeof document === 'undefined') {
|
4
|
+
return;
|
5
|
+
}
|
6
6
|
|
7
|
-
var
|
7
|
+
var CLASS_PATTERN = /(?:^|\s)command-line(?:\s|$)/;
|
8
|
+
var PROMPT_CLASS = 'command-line-prompt';
|
8
9
|
|
9
|
-
|
10
|
-
var
|
11
|
-
|
10
|
+
/** @type {(str: string, prefix: string) => boolean} */
|
11
|
+
var startsWith = ''.startsWith
|
12
|
+
? function (s, p) { return s.startsWith(p); }
|
13
|
+
: function (s, p) { return s.indexOf(p) === 0; };
|
12
14
|
|
13
|
-
|
14
|
-
|
15
|
-
|
15
|
+
// Support for IE11 that has no endsWith()
|
16
|
+
/** @type {(str: string, suffix: string) => boolean} */
|
17
|
+
var endsWith = ''.endsWith
|
18
|
+
? function (str, suffix) {
|
19
|
+
return str.endsWith(suffix);
|
20
|
+
}
|
21
|
+
: function (str, suffix) {
|
22
|
+
var len = str.length;
|
23
|
+
return str.substring(len - suffix.length, len) === suffix;
|
24
|
+
};
|
25
|
+
|
26
|
+
/**
|
27
|
+
* Returns whether the given hook environment has a command line info object.
|
28
|
+
*
|
29
|
+
* @param {any} env
|
30
|
+
* @returns {boolean}
|
31
|
+
*/
|
32
|
+
function hasCommandLineInfo(env) {
|
33
|
+
var vars = env.vars = env.vars || {};
|
34
|
+
return 'command-line' in vars;
|
16
35
|
}
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
36
|
+
/**
|
37
|
+
* Returns the command line info object from the given hook environment.
|
38
|
+
*
|
39
|
+
* @param {any} env
|
40
|
+
* @returns {CommandLineInfo}
|
41
|
+
*
|
42
|
+
* @typedef CommandLineInfo
|
43
|
+
* @property {boolean} [complete]
|
44
|
+
* @property {number} [numberOfLines]
|
45
|
+
* @property {string[]} [outputLines]
|
46
|
+
*/
|
47
|
+
function getCommandLineInfo(env) {
|
48
|
+
var vars = env.vars = env.vars || {};
|
49
|
+
return vars['command-line'] = vars['command-line'] || {};
|
24
50
|
}
|
25
51
|
|
26
|
-
if (env.element.querySelector('.command-line-prompt')) { // Abort if prompt already exists.
|
27
|
-
commandLine.complete = true;
|
28
|
-
return;
|
29
|
-
}
|
30
52
|
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
53
|
+
Prism.hooks.add('before-highlight', function (env) {
|
54
|
+
var commandLine = getCommandLineInfo(env);
|
55
|
+
|
56
|
+
if (commandLine.complete || !env.code) {
|
57
|
+
commandLine.complete = true;
|
58
|
+
return;
|
59
|
+
}
|
60
|
+
|
61
|
+
// Works only for <code> wrapped inside <pre> (not inline).
|
62
|
+
var pre = env.element.parentElement;
|
63
|
+
if (!pre || !/pre/i.test(pre.nodeName) || // Abort only if neither the <pre> nor the <code> have the class
|
64
|
+
(!CLASS_PATTERN.test(pre.className) && !CLASS_PATTERN.test(env.element.className))) {
|
65
|
+
commandLine.complete = true;
|
66
|
+
return;
|
67
|
+
}
|
68
|
+
|
69
|
+
// The element might be highlighted multiple times, so we just remove the previous prompt
|
70
|
+
var existingPrompt = env.element.querySelector('.' + PROMPT_CLASS);
|
71
|
+
if (existingPrompt) {
|
72
|
+
existingPrompt.remove();
|
73
|
+
}
|
74
|
+
|
75
|
+
var codeLines = env.code.split('\n');
|
76
|
+
|
77
|
+
commandLine.numberOfLines = codeLines.length;
|
78
|
+
/** @type {string[]} */
|
79
|
+
var outputLines = commandLine.outputLines = [];
|
80
|
+
|
81
|
+
var outputSections = pre.getAttribute('data-output');
|
82
|
+
var outputFilter = pre.getAttribute('data-filter-output');
|
83
|
+
if (outputSections !== null) { // The user specified the output lines. -- cwells
|
84
|
+
outputSections.split(',').forEach(function (section) {
|
85
|
+
var range = section.split('-');
|
86
|
+
var outputStart = parseInt(range[0], 10);
|
87
|
+
var outputEnd = range.length === 2 ? parseInt(range[1], 10) : outputStart;
|
88
|
+
|
89
|
+
if (!isNaN(outputStart) && !isNaN(outputEnd)) {
|
90
|
+
if (outputStart < 1) {
|
91
|
+
outputStart = 1;
|
92
|
+
}
|
93
|
+
if (outputEnd > codeLines.length) {
|
94
|
+
outputEnd = codeLines.length;
|
95
|
+
}
|
96
|
+
// Convert start and end to 0-based to simplify the arrays. -- cwells
|
97
|
+
outputStart--;
|
98
|
+
outputEnd--;
|
99
|
+
// Save the output line in an array and clear it in the code so it's not highlighted. -- cwells
|
100
|
+
for (var j = outputStart; j <= outputEnd; j++) {
|
101
|
+
outputLines[j] = codeLines[j];
|
102
|
+
codeLines[j] = '';
|
103
|
+
}
|
50
104
|
}
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
codeLines[j] = '';
|
105
|
+
});
|
106
|
+
} else if (outputFilter) { // Treat lines beginning with this string as output. -- cwells
|
107
|
+
for (var i = 0; i < codeLines.length; i++) {
|
108
|
+
if (startsWith(codeLines[i], outputFilter)) { // This line is output. -- cwells
|
109
|
+
outputLines[i] = codeLines[i].slice(outputFilter.length);
|
110
|
+
codeLines[i] = '';
|
58
111
|
}
|
59
112
|
}
|
60
113
|
}
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
114
|
+
|
115
|
+
var continuationLineIndicies = commandLine.continuationLineIndicies = new Set();
|
116
|
+
var lineContinuationStr = pre.getAttribute('data-continuation-str');
|
117
|
+
var continuationFilter = pre.getAttribute('data-filter-continuation');
|
118
|
+
|
119
|
+
// Identify code lines where the command has continued onto subsequent
|
120
|
+
// lines and thus need a different prompt. Need to do this after the output
|
121
|
+
// lines have been removed to ensure we don't pick up a continuation string
|
122
|
+
// in an output line.
|
123
|
+
for (var j = 0; j < codeLines.length; j++) {
|
124
|
+
var line = codeLines[j];
|
125
|
+
if (!line) {
|
126
|
+
continue;
|
127
|
+
}
|
128
|
+
|
129
|
+
// Record the next line as a continuation if this one ends in a continuation str.
|
130
|
+
if (lineContinuationStr && endsWith(line, lineContinuationStr)) {
|
131
|
+
continuationLineIndicies.add(j + 1);
|
132
|
+
}
|
133
|
+
// Record this line as a continuation if marked with a continuation prefix
|
134
|
+
// (that we will remove).
|
135
|
+
if (j > 0 && continuationFilter && startsWith(line, continuationFilter)) {
|
136
|
+
codeLines[j] = line.slice(continuationFilter.length);
|
137
|
+
continuationLineIndicies.add(j);
|
66
138
|
}
|
67
139
|
}
|
68
|
-
}
|
69
140
|
|
70
|
-
|
71
|
-
});
|
141
|
+
env.code = codeLines.join('\n');
|
142
|
+
});
|
72
143
|
|
73
|
-
Prism.hooks.add('before-insert', function (env) {
|
74
|
-
|
75
|
-
var commandLine = vars['command-line'] = vars['command-line'] || {};
|
76
|
-
if (commandLine.complete) {
|
77
|
-
return;
|
78
|
-
}
|
144
|
+
Prism.hooks.add('before-insert', function (env) {
|
145
|
+
var commandLine = getCommandLineInfo(env);
|
79
146
|
|
80
|
-
|
81
|
-
|
82
|
-
for (var i = 0, l = (commandLine.outputLines || []).length; i < l; i++) {
|
83
|
-
if (commandLine.outputLines.hasOwnProperty(i)) {
|
84
|
-
codeLines[i] = commandLine.outputLines[i];
|
147
|
+
if (commandLine.complete) {
|
148
|
+
return;
|
85
149
|
}
|
86
|
-
}
|
87
|
-
env.highlightedCode = codeLines.join('\n');
|
88
|
-
});
|
89
150
|
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
151
|
+
// Reinsert the output lines into the highlighted code. -- cwells
|
152
|
+
var codeLines = env.highlightedCode.split('\n');
|
153
|
+
var outputLines = commandLine.outputLines || [];
|
154
|
+
for (var i = 0, l = codeLines.length; i < l; i++) {
|
155
|
+
// Add spans to allow distinction of input/output text for styling
|
156
|
+
if (outputLines.hasOwnProperty(i)) {
|
157
|
+
// outputLines were removed from codeLines so missed out on escaping
|
158
|
+
// of markup so do it here.
|
159
|
+
codeLines[i] = '<span class="token output">'
|
160
|
+
+ Prism.util.encode(outputLines[i]) + '</span>';
|
161
|
+
} else {
|
162
|
+
codeLines[i] = '<span class="token command">'
|
163
|
+
+ codeLines[i] + '</span>';
|
164
|
+
}
|
165
|
+
}
|
166
|
+
env.highlightedCode = codeLines.join('\n');
|
167
|
+
});
|
96
168
|
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
pre.className += ' command-line';
|
103
|
-
}
|
169
|
+
Prism.hooks.add('complete', function (env) {
|
170
|
+
if (!hasCommandLineInfo(env)) {
|
171
|
+
// the previous hooks never ran
|
172
|
+
return;
|
173
|
+
}
|
104
174
|
|
105
|
-
|
106
|
-
return (pre.getAttribute(key) || defaultValue).replace(/"/g, '"');
|
107
|
-
};
|
108
|
-
|
109
|
-
// Create the "rows" that will become the command-line prompts. -- cwells
|
110
|
-
var promptLines = new Array((commandLine.numberOfLines || 0) + 1);
|
111
|
-
var promptText = getAttribute('data-prompt', '');
|
112
|
-
if (promptText !== '') {
|
113
|
-
promptLines = promptLines.join('<span data-prompt="' + promptText + '"></span>');
|
114
|
-
} else {
|
115
|
-
var user = getAttribute('data-user', 'user');
|
116
|
-
var host = getAttribute('data-host', 'localhost');
|
117
|
-
promptLines = promptLines.join('<span data-user="' + user + '" data-host="' + host + '"></span>');
|
118
|
-
}
|
175
|
+
var commandLine = getCommandLineInfo(env);
|
119
176
|
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
prompt.innerHTML = promptLines;
|
177
|
+
if (commandLine.complete) {
|
178
|
+
return;
|
179
|
+
}
|
124
180
|
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
node.removeAttribute('data-prompt');
|
181
|
+
var pre = env.element.parentElement;
|
182
|
+
if (CLASS_PATTERN.test(env.element.className)) { // Remove the class "command-line" from the <code>
|
183
|
+
env.element.className = env.element.className.replace(CLASS_PATTERN, ' ');
|
184
|
+
}
|
185
|
+
if (!CLASS_PATTERN.test(pre.className)) { // Add the class "command-line" to the <pre>
|
186
|
+
pre.className += ' command-line';
|
132
187
|
}
|
133
|
-
}
|
134
188
|
|
135
|
-
|
136
|
-
|
137
|
-
}
|
189
|
+
function getAttribute(key, defaultValue) {
|
190
|
+
return (pre.getAttribute(key) || defaultValue).replace(/"/g, '"');
|
191
|
+
}
|
192
|
+
|
193
|
+
// Create the "rows" that will become the command-line prompts. -- cwells
|
194
|
+
var promptLines = '';
|
195
|
+
var rowCount = commandLine.numberOfLines || 0;
|
196
|
+
var promptText = getAttribute('data-prompt', '');
|
197
|
+
var promptLine;
|
198
|
+
if (promptText !== '') {
|
199
|
+
promptLine = '<span data-prompt="' + promptText + '"></span>';
|
200
|
+
} else {
|
201
|
+
var user = getAttribute('data-user', 'user');
|
202
|
+
var host = getAttribute('data-host', 'localhost');
|
203
|
+
promptLine = '<span data-user="' + user + '" data-host="' + host + '"></span>';
|
204
|
+
}
|
205
|
+
|
206
|
+
var continuationLineIndicies = commandLine.continuationLineIndicies || new Set();
|
207
|
+
var continuationPromptText = getAttribute('data-continuation-prompt', '>');
|
208
|
+
var continuationPromptLine = '<span data-continuation-prompt="' + continuationPromptText + '"></span>';
|
209
|
+
|
210
|
+
// Assemble all the appropriate prompt/continuation lines
|
211
|
+
for (var j = 0; j < rowCount; j++) {
|
212
|
+
if (continuationLineIndicies.has(j)) {
|
213
|
+
promptLines += continuationPromptLine;
|
214
|
+
} else {
|
215
|
+
promptLines += promptLine;
|
216
|
+
}
|
217
|
+
}
|
218
|
+
|
219
|
+
// Create the wrapper element. -- cwells
|
220
|
+
var prompt = document.createElement('span');
|
221
|
+
prompt.className = PROMPT_CLASS;
|
222
|
+
prompt.innerHTML = promptLines;
|
223
|
+
|
224
|
+
// Remove the prompt from the output lines. -- cwells
|
225
|
+
var outputLines = commandLine.outputLines || [];
|
226
|
+
for (var i = 0, l = outputLines.length; i < l; i++) {
|
227
|
+
if (outputLines.hasOwnProperty(i)) {
|
228
|
+
var node = prompt.children[i];
|
229
|
+
node.removeAttribute('data-user');
|
230
|
+
node.removeAttribute('data-host');
|
231
|
+
node.removeAttribute('data-prompt');
|
232
|
+
}
|
233
|
+
}
|
234
|
+
|
235
|
+
env.element.insertBefore(prompt, env.element.firstChild);
|
236
|
+
commandLine.complete = true;
|
237
|
+
});
|
138
238
|
|
139
239
|
}());
|
@@ -1,5 +1,6 @@
|
|
1
|
-
(function(){
|
2
|
-
|
1
|
+
(function () {
|
2
|
+
|
3
|
+
if (typeof Prism === 'undefined' || typeof document === 'undefined') {
|
3
4
|
return;
|
4
5
|
}
|
5
6
|
|
@@ -9,67 +10,151 @@
|
|
9
10
|
return;
|
10
11
|
}
|
11
12
|
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
/**
|
14
|
+
* When the given elements is clicked by the user, the given text will be copied to clipboard.
|
15
|
+
*
|
16
|
+
* @param {HTMLElement} element
|
17
|
+
* @param {CopyInfo} copyInfo
|
18
|
+
*
|
19
|
+
* @typedef CopyInfo
|
20
|
+
* @property {() => string} getText
|
21
|
+
* @property {() => void} success
|
22
|
+
* @property {(reason: unknown) => void} error
|
23
|
+
*/
|
24
|
+
function registerClipboard(element, copyInfo) {
|
25
|
+
element.addEventListener('click', function () {
|
26
|
+
copyTextToClipboard(copyInfo);
|
27
|
+
});
|
16
28
|
}
|
17
29
|
|
18
|
-
|
30
|
+
// https://stackoverflow.com/a/30810322/7595472
|
31
|
+
|
32
|
+
/** @param {CopyInfo} copyInfo */
|
33
|
+
function fallbackCopyTextToClipboard(copyInfo) {
|
34
|
+
var textArea = document.createElement('textarea');
|
35
|
+
textArea.value = copyInfo.getText();
|
19
36
|
|
20
|
-
|
21
|
-
|
22
|
-
|
37
|
+
// Avoid scrolling to bottom
|
38
|
+
textArea.style.top = '0';
|
39
|
+
textArea.style.left = '0';
|
40
|
+
textArea.style.position = 'fixed';
|
23
41
|
|
24
|
-
|
25
|
-
|
42
|
+
document.body.appendChild(textArea);
|
43
|
+
textArea.focus();
|
44
|
+
textArea.select();
|
26
45
|
|
27
|
-
|
28
|
-
|
29
|
-
|
46
|
+
try {
|
47
|
+
var successful = document.execCommand('copy');
|
48
|
+
setTimeout(function () {
|
49
|
+
if (successful) {
|
50
|
+
copyInfo.success();
|
51
|
+
} else {
|
52
|
+
copyInfo.error();
|
30
53
|
}
|
31
|
-
}
|
54
|
+
}, 1);
|
55
|
+
} catch (err) {
|
56
|
+
setTimeout(function () {
|
57
|
+
copyInfo.error(err);
|
58
|
+
}, 1);
|
59
|
+
}
|
60
|
+
|
61
|
+
document.body.removeChild(textArea);
|
62
|
+
}
|
63
|
+
/** @param {CopyInfo} copyInfo */
|
64
|
+
function copyTextToClipboard(copyInfo) {
|
65
|
+
if (navigator.clipboard) {
|
66
|
+
navigator.clipboard.writeText(copyInfo.getText()).then(copyInfo.success, function () {
|
67
|
+
// try the fallback in case `writeText` didn't work
|
68
|
+
fallbackCopyTextToClipboard(copyInfo);
|
69
|
+
});
|
70
|
+
} else {
|
71
|
+
fallbackCopyTextToClipboard(copyInfo);
|
72
|
+
}
|
73
|
+
}
|
74
|
+
|
75
|
+
/**
|
76
|
+
* Selects the text content of the given element.
|
77
|
+
*
|
78
|
+
* @param {Element} element
|
79
|
+
*/
|
80
|
+
function selectElementText(element) {
|
81
|
+
// https://stackoverflow.com/a/20079910/7595472
|
82
|
+
window.getSelection().selectAllChildren(element);
|
83
|
+
}
|
84
|
+
|
85
|
+
/**
|
86
|
+
* Traverses up the DOM tree to find data attributes that override the default plugin settings.
|
87
|
+
*
|
88
|
+
* @param {Element} startElement An element to start from.
|
89
|
+
* @returns {Settings} The plugin settings.
|
90
|
+
* @typedef {Record<"copy" | "copy-error" | "copy-success" | "copy-timeout", string | number>} Settings
|
91
|
+
*/
|
92
|
+
function getSettings(startElement) {
|
93
|
+
/** @type {Settings} */
|
94
|
+
var settings = {
|
95
|
+
'copy': 'Copy',
|
96
|
+
'copy-error': 'Press Ctrl+C to copy',
|
97
|
+
'copy-success': 'Copied!',
|
98
|
+
'copy-timeout': 5000
|
32
99
|
};
|
33
100
|
|
34
|
-
|
35
|
-
|
101
|
+
var prefix = 'data-prismjs-';
|
102
|
+
for (var key in settings) {
|
103
|
+
var attr = prefix + key;
|
104
|
+
var element = startElement;
|
105
|
+
while (element && !element.hasAttribute(attr)) {
|
106
|
+
element = element.parentElement;
|
107
|
+
}
|
108
|
+
if (element) {
|
109
|
+
settings[key] = element.getAttribute(attr);
|
110
|
+
}
|
111
|
+
}
|
112
|
+
return settings;
|
36
113
|
}
|
37
114
|
|
38
115
|
Prism.plugins.toolbar.registerButton('copy-to-clipboard', function (env) {
|
39
|
-
var
|
40
|
-
linkCopy.textContent = 'Copy';
|
116
|
+
var element = env.element;
|
41
117
|
|
42
|
-
|
43
|
-
callbacks.push(registerClipboard);
|
44
|
-
} else {
|
45
|
-
registerClipboard();
|
46
|
-
}
|
118
|
+
var settings = getSettings(element);
|
47
119
|
|
48
|
-
|
120
|
+
var linkCopy = document.createElement('button');
|
121
|
+
linkCopy.className = 'copy-to-clipboard-button';
|
122
|
+
linkCopy.setAttribute('type', 'button');
|
123
|
+
var linkSpan = document.createElement('span');
|
124
|
+
linkCopy.appendChild(linkSpan);
|
49
125
|
|
50
|
-
|
51
|
-
var clip = new ClipboardJS(linkCopy, {
|
52
|
-
'text': function () {
|
53
|
-
return env.code;
|
54
|
-
}
|
55
|
-
});
|
126
|
+
setState('copy');
|
56
127
|
|
57
|
-
|
58
|
-
|
128
|
+
registerClipboard(linkCopy, {
|
129
|
+
getText: function () {
|
130
|
+
return element.textContent;
|
131
|
+
},
|
132
|
+
success: function () {
|
133
|
+
setState('copy-success');
|
59
134
|
|
60
135
|
resetText();
|
61
|
-
}
|
62
|
-
|
63
|
-
|
136
|
+
},
|
137
|
+
error: function () {
|
138
|
+
setState('copy-error');
|
139
|
+
|
140
|
+
setTimeout(function () {
|
141
|
+
selectElementText(element);
|
142
|
+
}, 1);
|
64
143
|
|
65
144
|
resetText();
|
66
|
-
}
|
67
|
-
}
|
145
|
+
}
|
146
|
+
});
|
147
|
+
|
148
|
+
return linkCopy;
|
68
149
|
|
69
150
|
function resetText() {
|
70
|
-
setTimeout(function () {
|
71
|
-
|
72
|
-
|
151
|
+
setTimeout(function () { setState('copy'); }, settings['copy-timeout']);
|
152
|
+
}
|
153
|
+
|
154
|
+
/** @param {"copy" | "copy-error" | "copy-success"} state */
|
155
|
+
function setState(state) {
|
156
|
+
linkSpan.textContent = settings[state];
|
157
|
+
linkCopy.setAttribute('data-copy-state', state);
|
73
158
|
}
|
74
159
|
});
|
75
|
-
}
|
160
|
+
}());
|
@@ -1,9 +1,6 @@
|
|
1
1
|
(function () {
|
2
2
|
|
3
|
-
if (
|
4
|
-
(typeof self === 'undefined' || !self.Prism) &&
|
5
|
-
(typeof global === 'undefined' || !global.Prism)
|
6
|
-
) {
|
3
|
+
if (typeof Prism === 'undefined') {
|
7
4
|
return;
|
8
5
|
}
|
9
6
|
|
@@ -33,6 +30,15 @@
|
|
33
30
|
var prefixString = '';
|
34
31
|
|
35
32
|
|
33
|
+
/**
|
34
|
+
* @param {string} className
|
35
|
+
* @param {string} language
|
36
|
+
*/
|
37
|
+
function apply(className, language) {
|
38
|
+
return prefixString + (mapper ? mapper(className, language) : className);
|
39
|
+
}
|
40
|
+
|
41
|
+
|
36
42
|
Prism.plugins.customClass = {
|
37
43
|
/**
|
38
44
|
* Sets the function which can be used to add custom aliases to any token.
|
@@ -65,8 +71,17 @@
|
|
65
71
|
*/
|
66
72
|
prefix: function prefix(string) {
|
67
73
|
prefixString = string || '';
|
68
|
-
}
|
69
|
-
|
74
|
+
},
|
75
|
+
/**
|
76
|
+
* Applies the current mapping and prefix to the given class name.
|
77
|
+
*
|
78
|
+
* @param {string} className A single class name.
|
79
|
+
* @param {string} language The language of the code that contains this class name.
|
80
|
+
*
|
81
|
+
* If the language is unknown, pass `"none"`.
|
82
|
+
*/
|
83
|
+
apply: apply
|
84
|
+
};
|
70
85
|
|
71
86
|
Prism.hooks.add('wrap', function (env) {
|
72
87
|
if (adder) {
|
@@ -88,8 +103,8 @@
|
|
88
103
|
}
|
89
104
|
|
90
105
|
env.classes = env.classes.map(function (c) {
|
91
|
-
return
|
106
|
+
return apply(c, env.language);
|
92
107
|
});
|
93
108
|
});
|
94
109
|
|
95
|
-
}
|
110
|
+
}());
|
@@ -1,9 +1,6 @@
|
|
1
1
|
(function () {
|
2
2
|
|
3
|
-
if (
|
4
|
-
typeof self !== 'undefined' && !self.Prism ||
|
5
|
-
typeof global !== 'undefined' && !global.Prism
|
6
|
-
) {
|
3
|
+
if (typeof Prism === 'undefined') {
|
7
4
|
return;
|
8
5
|
}
|
9
6
|
|
@@ -60,8 +57,7 @@
|
|
60
57
|
Prism.languages.insertBefore('inside', def.inside['url-link'] ? 'url-link' : 'punctuation', {
|
61
58
|
'data-uri': dataURI
|
62
59
|
}, def);
|
63
|
-
}
|
64
|
-
else {
|
60
|
+
} else {
|
65
61
|
if (def.inside['url-link']) {
|
66
62
|
Prism.languages.insertBefore('inside', 'url-link', {
|
67
63
|
'data-uri': dataURI
|