prism-rails 1.6.0.3 → 1.19.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -5
- data/CHANGELOG.md +3 -0
- data/README.md +88 -44
- data/lib/prism-rails/version.rb +1 -1
- data/vendor/assets/javascripts/languages/index.js +82 -0
- data/vendor/assets/javascripts/{prism → languages}/prism-abap.js +2 -2
- data/vendor/assets/javascripts/languages/prism-abnf.js +54 -0
- data/vendor/assets/javascripts/{prism → languages}/prism-actionscript.js +3 -5
- data/vendor/assets/javascripts/{prism → languages}/prism-ada.js +2 -2
- data/vendor/assets/javascripts/languages/prism-antlr4.js +65 -0
- data/vendor/assets/javascripts/languages/prism-apacheconf.js +47 -0
- data/vendor/assets/javascripts/{prism → languages}/prism-apl.js +8 -5
- data/vendor/assets/javascripts/{prism → languages}/prism-applescript.js +3 -3
- data/vendor/assets/javascripts/languages/prism-aql.js +41 -0
- data/vendor/assets/javascripts/languages/prism-arduino.js +5 -0
- data/vendor/assets/javascripts/languages/prism-arff.js +10 -0
- data/vendor/assets/javascripts/{prism → languages}/prism-asciidoc.js +23 -60
- data/vendor/assets/javascripts/languages/prism-asm6502.js +28 -0
- data/vendor/assets/javascripts/{prism → languages}/prism-aspnet.js +22 -10
- data/vendor/assets/javascripts/languages/prism-autohotkey.js +27 -0
- data/vendor/assets/javascripts/{prism → languages}/prism-autoit.js +1 -0
- data/vendor/assets/javascripts/languages/prism-bash.js +197 -0
- data/vendor/assets/javascripts/{prism → languages}/prism-basic.js +5 -2
- data/vendor/assets/javascripts/{prism → languages}/prism-batch.js +0 -0
- data/vendor/assets/javascripts/languages/prism-bbcode.js +27 -0
- data/vendor/assets/javascripts/{prism → languages}/prism-bison.js +0 -0
- data/vendor/assets/javascripts/languages/prism-bnf.js +21 -0
- data/vendor/assets/javascripts/{prism → languages}/prism-brainfuck.js +0 -0
- data/vendor/assets/javascripts/languages/prism-brightscript.js +44 -0
- data/vendor/assets/javascripts/languages/prism-bro.js +48 -0
- data/vendor/assets/javascripts/languages/prism-c.js +41 -0
- data/vendor/assets/javascripts/languages/prism-cil.js +27 -0
- data/vendor/assets/javascripts/languages/prism-clike.js +30 -0
- data/vendor/assets/javascripts/languages/prism-clojure.js +16 -0
- data/vendor/assets/javascripts/languages/prism-cmake.js +29 -0
- data/vendor/assets/javascripts/{prism → languages}/prism-coffeescript.js +6 -5
- data/vendor/assets/javascripts/languages/prism-concurnas.js +48 -0
- data/vendor/assets/javascripts/languages/prism-core.js +627 -0
- data/vendor/assets/javascripts/languages/prism-cpp.js +21 -0
- data/vendor/assets/javascripts/{prism → languages}/prism-crystal.js +5 -7
- data/vendor/assets/javascripts/languages/prism-csharp.js +81 -0
- data/vendor/assets/javascripts/languages/prism-csp.js +25 -0
- data/vendor/assets/javascripts/languages/prism-css-extras.js +109 -0
- data/vendor/assets/javascripts/languages/prism-css.js +62 -0
- data/vendor/assets/javascripts/{prism → languages}/prism-d.js +49 -34
- data/vendor/assets/javascripts/{prism → languages}/prism-dart.js +8 -2
- data/vendor/assets/javascripts/languages/prism-diff.js +54 -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 +11 -0
- data/vendor/assets/javascripts/languages/prism-ebnf.js +22 -0
- data/vendor/assets/javascripts/{prism → languages}/prism-eiffel.js +20 -7
- data/vendor/assets/javascripts/languages/prism-ejs.js +24 -0
- data/vendor/assets/javascripts/{prism → languages}/prism-elixir.js +14 -15
- data/vendor/assets/javascripts/languages/prism-elm.js +44 -0
- data/vendor/assets/javascripts/languages/prism-erb.js +20 -0
- data/vendor/assets/javascripts/{prism → languages}/prism-erlang.js +7 -4
- data/vendor/assets/javascripts/languages/prism-etlua.js +23 -0
- data/vendor/assets/javascripts/languages/prism-factor.js +403 -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 +5 -2
- data/vendor/assets/javascripts/languages/prism-fsharp.js +67 -0
- data/vendor/assets/javascripts/languages/prism-ftl.js +97 -0
- data/vendor/assets/javascripts/languages/prism-gcode.js +15 -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-gherkin.js +85 -0
- data/vendor/assets/javascripts/{prism → languages}/prism-git.js +2 -2
- data/vendor/assets/javascripts/{prism → languages}/prism-glsl.js +3 -3
- data/vendor/assets/javascripts/languages/prism-gml.js +7 -0
- data/vendor/assets/javascripts/languages/prism-go.js +12 -0
- data/vendor/assets/javascripts/languages/prism-graphql.js +31 -0
- data/vendor/assets/javascripts/{prism → languages}/prism-groovy.js +12 -10
- data/vendor/assets/javascripts/{prism → languages}/prism-haml.js +14 -26
- data/vendor/assets/javascripts/languages/prism-handlebars.js +37 -0
- data/vendor/assets/javascripts/languages/prism-haskell.js +38 -0
- data/vendor/assets/javascripts/{prism → languages}/prism-haxe.js +4 -2
- data/vendor/assets/javascripts/languages/prism-hcl.js +65 -0
- data/vendor/assets/javascripts/languages/prism-hpkp.js +20 -0
- data/vendor/assets/javascripts/languages/prism-hsts.js +20 -0
- data/vendor/assets/javascripts/languages/prism-http.js +77 -0
- data/vendor/assets/javascripts/languages/prism-ichigojam.js +15 -0
- data/vendor/assets/javascripts/{prism → languages}/prism-icon.js +4 -1
- data/vendor/assets/javascripts/{prism → languages}/prism-inform7.js +6 -3
- data/vendor/assets/javascripts/{prism → languages}/prism-ini.js +2 -2
- data/vendor/assets/javascripts/languages/prism-io.js +31 -0
- data/vendor/assets/javascripts/{prism → languages}/prism-j.js +5 -2
- data/vendor/assets/javascripts/{prism → languages}/prism-jade.js +0 -0
- data/vendor/assets/javascripts/languages/prism-java.js +63 -0
- data/vendor/assets/javascripts/languages/prism-javadoc.js +54 -0
- data/vendor/assets/javascripts/languages/prism-javadoclike.js +87 -0
- data/vendor/assets/javascripts/languages/prism-javascript.js +91 -0
- data/vendor/assets/javascripts/languages/prism-javastacktrace.js +93 -0
- data/vendor/assets/javascripts/{prism → languages}/prism-jolie.js +9 -10
- data/vendor/assets/javascripts/languages/prism-jq.js +67 -0
- data/vendor/assets/javascripts/languages/prism-js-extras.js +104 -0
- data/vendor/assets/javascripts/languages/prism-js-templates.js +346 -0
- data/vendor/assets/javascripts/languages/prism-jsdoc.js +73 -0
- data/vendor/assets/javascripts/languages/prism-json.js +19 -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-jsx.js +126 -0
- data/vendor/assets/javascripts/languages/prism-julia.js +13 -0
- data/vendor/assets/javascripts/languages/prism-keyman.js +14 -0
- data/vendor/assets/javascripts/{prism → languages}/prism-kotlin.js +6 -6
- data/vendor/assets/javascripts/{prism → languages}/prism-latex.js +16 -13
- data/vendor/assets/javascripts/languages/prism-latte.js +69 -0
- data/vendor/assets/javascripts/{prism → languages}/prism-less.js +3 -9
- data/vendor/assets/javascripts/languages/prism-lilypond.js +69 -0
- data/vendor/assets/javascripts/languages/prism-liquid.js +12 -0
- data/vendor/assets/javascripts/languages/prism-lisp.js +197 -0
- data/vendor/assets/javascripts/{prism → languages}/prism-livescript.js +19 -18
- data/vendor/assets/javascripts/{prism → languages}/prism-lolcode.js +3 -2
- data/vendor/assets/javascripts/{prism → languages}/prism-lua.js +0 -0
- data/vendor/assets/javascripts/{prism → languages}/prism-makefile.js +5 -2
- data/vendor/assets/javascripts/languages/prism-markdown.js +344 -0
- data/vendor/assets/javascripts/languages/prism-markup-templating.js +123 -0
- data/vendor/assets/javascripts/languages/prism-markup.js +103 -0
- data/vendor/assets/javascripts/{prism → languages}/prism-matlab.js +5 -3
- data/vendor/assets/javascripts/{prism → languages}/prism-mel.js +7 -3
- data/vendor/assets/javascripts/{prism → languages}/prism-mizar.js +0 -0
- data/vendor/assets/javascripts/{prism → languages}/prism-monkey.js +9 -3
- data/vendor/assets/javascripts/languages/prism-moonscript.js +57 -0
- data/vendor/assets/javascripts/languages/prism-n1ql.js +18 -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-nasm.js +24 -0
- data/vendor/assets/javascripts/languages/prism-neon.js +41 -0
- data/vendor/assets/javascripts/languages/prism-nginx.js +11 -0
- data/vendor/assets/javascripts/{prism → languages}/prism-nim.js +4 -1
- data/vendor/assets/javascripts/{prism → languages}/prism-nix.js +2 -1
- data/vendor/assets/javascripts/languages/prism-nsis.js +29 -0
- data/vendor/assets/javascripts/languages/prism-objectivec.js +7 -0
- data/vendor/assets/javascripts/languages/prism-ocaml.js +41 -0
- data/vendor/assets/javascripts/languages/prism-opencl.js +54 -0
- data/vendor/assets/javascripts/{prism → languages}/prism-oz.js +6 -2
- data/vendor/assets/javascripts/{prism → languages}/prism-parigp.js +4 -1
- data/vendor/assets/javascripts/languages/prism-parser.js +73 -0
- data/vendor/assets/javascripts/{prism → languages}/prism-pascal.js +9 -4
- 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-perl.js +191 -0
- data/vendor/assets/javascripts/{prism → languages}/prism-php-extras.js +3 -3
- data/vendor/assets/javascripts/languages/prism-php.js +130 -0
- data/vendor/assets/javascripts/languages/prism-phpdoc.js +27 -0
- data/vendor/assets/javascripts/languages/prism-plsql.js +26 -0
- data/vendor/assets/javascripts/languages/prism-powershell.js +60 -0
- data/vendor/assets/javascripts/{prism → languages}/prism-processing.js +2 -2
- data/vendor/assets/javascripts/{prism → languages}/prism-prolog.js +4 -1
- data/vendor/assets/javascripts/{prism → languages}/prism-properties.js +2 -2
- data/vendor/assets/javascripts/languages/prism-protobuf.js +36 -0
- data/vendor/assets/javascripts/languages/prism-pug.js +181 -0
- data/vendor/assets/javascripts/{prism → languages}/prism-puppet.js +7 -2
- data/vendor/assets/javascripts/{prism → languages}/prism-pure.js +19 -17
- data/vendor/assets/javascripts/languages/prism-python.js +64 -0
- data/vendor/assets/javascripts/{prism → languages}/prism-q.js +13 -6
- data/vendor/assets/javascripts/languages/prism-qml.js +58 -0
- data/vendor/assets/javascripts/{prism → languages}/prism-qore.js +7 -4
- data/vendor/assets/javascripts/{prism → languages}/prism-r.js +5 -2
- data/vendor/assets/javascripts/{prism → languages}/prism-reason.js +4 -8
- data/vendor/assets/javascripts/languages/prism-regex.js +97 -0
- data/vendor/assets/javascripts/languages/prism-renpy.js +29 -0
- data/vendor/assets/javascripts/{prism → languages}/prism-rest.js +4 -4
- data/vendor/assets/javascripts/{prism → languages}/prism-rip.js +7 -3
- data/vendor/assets/javascripts/{prism → languages}/prism-roboconf.js +0 -0
- data/vendor/assets/javascripts/languages/prism-robotframework.js +104 -0
- data/vendor/assets/javascripts/{prism → languages}/prism-ruby.js +49 -15
- data/vendor/assets/javascripts/languages/prism-rust.js +68 -0
- data/vendor/assets/javascripts/languages/prism-sas.js +302 -0
- data/vendor/assets/javascripts/{prism → languages}/prism-sass.js +1 -2
- data/vendor/assets/javascripts/{prism → languages}/prism-scala.js +10 -11
- data/vendor/assets/javascripts/languages/prism-scheme.js +33 -0
- data/vendor/assets/javascripts/{prism → languages}/prism-scss.js +18 -16
- data/vendor/assets/javascripts/languages/prism-shell-session.js +54 -0
- data/vendor/assets/javascripts/{prism → languages}/prism-smalltalk.js +9 -9
- data/vendor/assets/javascripts/languages/prism-smarty.js +87 -0
- data/vendor/assets/javascripts/languages/prism-solidity.js +20 -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 +24 -0
- data/vendor/assets/javascripts/{prism → languages}/prism-stylus.js +16 -7
- data/vendor/assets/javascripts/languages/prism-swift.js +25 -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 +20 -0
- data/vendor/assets/javascripts/languages/prism-tcl.js +46 -0
- data/vendor/assets/javascripts/{prism → languages}/prism-textile.js +35 -32
- data/vendor/assets/javascripts/languages/prism-toml.js +43 -0
- data/vendor/assets/javascripts/languages/prism-tsx.js +2 -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/{prism → languages}/prism-twig.js +8 -8
- data/vendor/assets/javascripts/languages/prism-typescript.js +7 -0
- data/vendor/assets/javascripts/languages/prism-vala.js +74 -0
- data/vendor/assets/javascripts/languages/prism-vbnet.js +15 -0
- data/vendor/assets/javascripts/languages/prism-velocity.js +72 -0
- data/vendor/assets/javascripts/languages/prism-verilog.js +20 -0
- data/vendor/assets/javascripts/{prism → languages}/prism-vhdl.js +2 -2
- data/vendor/assets/javascripts/{prism → languages}/prism-vim.js +1 -1
- data/vendor/assets/javascripts/languages/prism-visual-basic.js +34 -0
- data/vendor/assets/javascripts/languages/prism-wasm.js +31 -0
- data/vendor/assets/javascripts/{prism → languages}/prism-wiki.js +7 -6
- data/vendor/assets/javascripts/languages/prism-xeora.js +114 -0
- data/vendor/assets/javascripts/{prism → languages}/prism-xojo.js +1 -1
- data/vendor/assets/javascripts/languages/prism-xquery.js +162 -0
- data/vendor/assets/javascripts/languages/prism-yaml.js +76 -0
- data/vendor/assets/javascripts/languages/prism-zig.js +97 -0
- data/vendor/assets/javascripts/prism-plugin/prism-autolinker.js +13 -8
- data/vendor/assets/javascripts/prism-plugin/prism-autoloader.js +306 -95
- data/vendor/assets/javascripts/prism-plugin/prism-command-line.js +96 -38
- data/vendor/assets/javascripts/prism-plugin/prism-copy-to-clipboard.js +10 -10
- data/vendor/assets/javascripts/prism-plugin/prism-custom-class.js +89 -23
- data/vendor/assets/javascripts/prism-plugin/prism-data-uri-highlight.js +2 -2
- data/vendor/assets/javascripts/prism-plugin/prism-diff-highlight.js +83 -0
- data/vendor/assets/javascripts/prism-plugin/prism-download-button.js +19 -0
- data/vendor/assets/javascripts/prism-plugin/prism-file-highlight.js +53 -41
- data/vendor/assets/javascripts/prism-plugin/prism-filter-highlight-all.js +125 -0
- data/vendor/assets/javascripts/prism-plugin/prism-inline-color.js +88 -0
- data/vendor/assets/javascripts/prism-plugin/prism-jsonp-highlight.js +124 -69
- data/vendor/assets/javascripts/prism-plugin/prism-keep-markup.js +4 -2
- data/vendor/assets/javascripts/prism-plugin/prism-line-highlight.js +195 -115
- data/vendor/assets/javascripts/prism-plugin/prism-line-numbers.js +154 -43
- data/vendor/assets/javascripts/prism-plugin/prism-match-braces.js +184 -0
- data/vendor/assets/javascripts/prism-plugin/prism-normalize-whitespace.js +29 -11
- data/vendor/assets/javascripts/prism-plugin/prism-previewers.js +703 -0
- data/vendor/assets/javascripts/prism-plugin/prism-remove-initial-line-feed.js +2 -2
- data/vendor/assets/javascripts/prism-plugin/prism-show-invisibles.js +83 -18
- data/vendor/assets/javascripts/prism-plugin/prism-show-language.js +190 -19
- data/vendor/assets/javascripts/prism-plugin/prism-toolbar.js +53 -8
- data/vendor/assets/javascripts/prism-plugin/prism-unescaped-markup.js +11 -7
- data/vendor/assets/javascripts/prism-plugin/prism-wpd.js +12 -12
- data/vendor/assets/javascripts/prism.js +210 -127
- data/vendor/assets/stylesheets/prism-plugin/prism-diff-highlight.css +13 -0
- data/vendor/assets/stylesheets/prism-plugin/prism-inline-color.css +9 -0
- data/vendor/assets/stylesheets/prism-plugin/prism-line-highlight.css +5 -0
- data/vendor/assets/stylesheets/prism-plugin/prism-line-numbers.css +4 -3
- data/vendor/assets/stylesheets/prism-plugin/prism-match-braces.css +29 -0
- data/vendor/assets/stylesheets/prism-plugin/prism-previewers.css +242 -0
- data/vendor/assets/stylesheets/prism-plugin/prism-show-invisibles.css +7 -6
- data/vendor/assets/stylesheets/prism-plugin/prism-toolbar.css +21 -15
- data/vendor/assets/stylesheets/prism-plugin/prism-unescaped-markup.css +4 -4
- 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} +57 -53
- data/vendor/assets/stylesheets/{prism-cb.css → prism-theme/prism-cb.css} +27 -27
- data/vendor/assets/stylesheets/prism-theme/prism-command-line.css +33 -0
- data/vendor/assets/stylesheets/{prism-coy.css → prism-theme/prism-coy.css} +14 -9
- 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-dracula.css +122 -0
- data/vendor/assets/stylesheets/{prism-duotone-dark.css → prism-theme/prism-duotone-dark.css} +55 -51
- data/vendor/assets/stylesheets/{prism-duotone-earth.css → prism-theme/prism-duotone-earth.css} +55 -51
- data/vendor/assets/stylesheets/{prism-duotone-forest.css → prism-theme/prism-duotone-forest.css} +55 -51
- data/vendor/assets/stylesheets/{prism-duotone-light.css → prism-theme/prism-duotone-light.css} +55 -51
- data/vendor/assets/stylesheets/{prism-duotone-sea.css → prism-theme/prism-duotone-sea.css} +55 -51
- data/vendor/assets/stylesheets/{prism-duotone-space.css → prism-theme/prism-duotone-space.css} +55 -51
- data/vendor/assets/stylesheets/{prism-funky.css → prism-theme/prism-funky.css} +16 -2
- data/vendor/assets/stylesheets/{prism-ghcolors.css → prism-theme/prism-ghcolors.css} +47 -44
- data/vendor/assets/stylesheets/prism-theme/prism-hopscotch.css +132 -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-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-nord.css +124 -0
- data/vendor/assets/stylesheets/{prism-okaidia.css → prism-theme/prism-okaidia.css} +4 -2
- 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 +200 -0
- data/vendor/assets/stylesheets/prism-theme/prism-show-invisibles.css +34 -0
- data/vendor/assets/stylesheets/{prism-show-language.css → prism-theme/prism-show-language.css} +0 -0
- data/vendor/assets/stylesheets/{prism-solarizedlight.css → prism-theme/prism-solarizedlight.css} +5 -3
- 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-toolbar.css → prism-theme/prism-toolbar.css} +15 -15
- data/vendor/assets/stylesheets/{prism-twilight.css → prism-theme/prism-twilight.css} +2 -1
- data/vendor/assets/stylesheets/prism-theme/prism-unescaped-markup.css +10 -0
- data/vendor/assets/stylesheets/{prism-vs.css → prism-theme/prism-vs.css} +62 -55
- data/vendor/assets/stylesheets/prism-theme/prism-vsc-dark-plus.css +216 -0
- data/vendor/assets/stylesheets/prism-theme/prism-wpd.css +11 -0
- data/vendor/assets/stylesheets/prism-theme/prism-xonokai.css +189 -0
- data/vendor/assets/stylesheets/prism.css +5 -3
- metadata +262 -148
- data/vendor/assets/javascripts/prism/prism-apacheconf.js +0 -47
- data/vendor/assets/javascripts/prism/prism-autohotkey.js +0 -27
- 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-core.js +0 -511
- data/vendor/assets/javascripts/prism/prism-cpp.js +0 -12
- 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-diff.js +0 -20
- data/vendor/assets/javascripts/prism/prism-docker.js +0 -9
- 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-go.js +0 -9
- data/vendor/assets/javascripts/prism/prism-graphql.js +0 -24
- 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-http.js +0 -50
- 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-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-markdown.js +0 -120
- data/vendor/assets/javascripts/prism/prism-markup.js +0 -46
- 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-parser.js +0 -66
- data/vendor/assets/javascripts/prism/prism-perl.js +0 -140
- 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-protobuf.js +0 -8
- data/vendor/assets/javascripts/prism/prism-python.js +0 -27
- 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-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-swift.js +0 -25
- data/vendor/assets/javascripts/prism/prism-tcl.js +0 -43
- 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-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-xonokai.css +0 -164
@@ -0,0 +1,184 @@
|
|
1
|
+
(function () {
|
2
|
+
|
3
|
+
if (typeof self === 'undefined' || !self.Prism || !self.document) {
|
4
|
+
return;
|
5
|
+
}
|
6
|
+
|
7
|
+
var MATCH_ALL_CLASS = /(?:^|\s)match-braces(?:\s|$)/;
|
8
|
+
|
9
|
+
var BRACE_HOVER_CLASS = /(?:^|\s)brace-hover(?:\s|$)/;
|
10
|
+
var BRACE_SELECTED_CLASS = /(?:^|\s)brace-selected(?:\s|$)/;
|
11
|
+
|
12
|
+
var NO_BRACE_HOVER_CLASS = /(?:^|\s)no-brace-hover(?:\s|$)/;
|
13
|
+
var NO_BRACE_SELECT_CLASS = /(?:^|\s)no-brace-select(?:\s|$)/;
|
14
|
+
|
15
|
+
var PARTNER = {
|
16
|
+
'(': ')',
|
17
|
+
'[': ']',
|
18
|
+
'{': '}',
|
19
|
+
};
|
20
|
+
|
21
|
+
var NAMES = {
|
22
|
+
'(': 'brace-round',
|
23
|
+
'[': 'brace-square',
|
24
|
+
'{': 'brace-curly',
|
25
|
+
};
|
26
|
+
|
27
|
+
var LEVEL_WARP = 12;
|
28
|
+
|
29
|
+
var pairIdCounter = 0;
|
30
|
+
|
31
|
+
var BRACE_ID_PATTERN = /^(pair-\d+-)(open|close)$/;
|
32
|
+
|
33
|
+
/**
|
34
|
+
* Returns the brace partner given one brace of a brace pair.
|
35
|
+
*
|
36
|
+
* @param {HTMLElement} brace
|
37
|
+
* @returns {HTMLElement}
|
38
|
+
*/
|
39
|
+
function getPartnerBrace(brace) {
|
40
|
+
var match = BRACE_ID_PATTERN.exec(brace.id);
|
41
|
+
return document.querySelector('#' + match[1] + (match[2] == 'open' ? 'close' : 'open'));
|
42
|
+
}
|
43
|
+
|
44
|
+
/**
|
45
|
+
* @this {HTMLElement}
|
46
|
+
*/
|
47
|
+
function hoverBrace() {
|
48
|
+
for (var parent = this.parentElement; parent; parent = parent.parentElement) {
|
49
|
+
if (NO_BRACE_HOVER_CLASS.test(parent.className)) {
|
50
|
+
return;
|
51
|
+
}
|
52
|
+
}
|
53
|
+
|
54
|
+
[this, getPartnerBrace(this)].forEach(function (ele) {
|
55
|
+
ele.className = (ele.className.replace(BRACE_HOVER_CLASS, ' ') + ' brace-hover').replace(/\s+/g, ' ');
|
56
|
+
});
|
57
|
+
}
|
58
|
+
/**
|
59
|
+
* @this {HTMLElement}
|
60
|
+
*/
|
61
|
+
function leaveBrace() {
|
62
|
+
[this, getPartnerBrace(this)].forEach(function (ele) {
|
63
|
+
ele.className = ele.className.replace(BRACE_HOVER_CLASS, ' ');
|
64
|
+
});
|
65
|
+
}
|
66
|
+
/**
|
67
|
+
* @this {HTMLElement}
|
68
|
+
*/
|
69
|
+
function clickBrace() {
|
70
|
+
for (var parent = this.parentElement; parent; parent = parent.parentElement) {
|
71
|
+
if (NO_BRACE_SELECT_CLASS.test(parent.className)) {
|
72
|
+
return;
|
73
|
+
}
|
74
|
+
}
|
75
|
+
|
76
|
+
[this, getPartnerBrace(this)].forEach(function (ele) {
|
77
|
+
ele.className = (ele.className.replace(BRACE_SELECTED_CLASS, ' ') + ' brace-selected').replace(/\s+/g, ' ');
|
78
|
+
});
|
79
|
+
}
|
80
|
+
|
81
|
+
Prism.hooks.add('complete', function (env) {
|
82
|
+
|
83
|
+
/** @type {HTMLElement} */
|
84
|
+
var code = env.element;
|
85
|
+
var pre = code.parentElement;
|
86
|
+
|
87
|
+
if (!pre || pre.tagName != 'PRE') {
|
88
|
+
return;
|
89
|
+
}
|
90
|
+
|
91
|
+
// find the braces to match
|
92
|
+
/** @type {string[]} */
|
93
|
+
var toMatch = [];
|
94
|
+
for (var ele = code; ele; ele = ele.parentElement) {
|
95
|
+
if (MATCH_ALL_CLASS.test(ele.className)) {
|
96
|
+
toMatch.push('(', '[', '{');
|
97
|
+
break;
|
98
|
+
}
|
99
|
+
}
|
100
|
+
|
101
|
+
if (toMatch.length == 0) {
|
102
|
+
// nothing to match
|
103
|
+
return;
|
104
|
+
}
|
105
|
+
|
106
|
+
if (!pre.__listenerAdded) {
|
107
|
+
// code blocks might be highlighted more than once
|
108
|
+
pre.addEventListener('mousedown', function removeBraceSelected() {
|
109
|
+
// the code element might have been replaced
|
110
|
+
var code = pre.querySelector('code');
|
111
|
+
Array.prototype.slice.call(code.querySelectorAll('.brace-selected')).forEach(function (element) {
|
112
|
+
element.className = element.className.replace(BRACE_SELECTED_CLASS, ' ');
|
113
|
+
});
|
114
|
+
});
|
115
|
+
Object.defineProperty(pre, '__listenerAdded', { value: true });
|
116
|
+
}
|
117
|
+
|
118
|
+
/** @type {HTMLSpanElement[]} */
|
119
|
+
var punctuation = Array.prototype.slice.call(code.querySelectorAll('span.token.punctuation'));
|
120
|
+
|
121
|
+
/** @type {{ index: number, open: boolean, element: HTMLElement }[]} */
|
122
|
+
var allBraces = [];
|
123
|
+
|
124
|
+
toMatch.forEach(function (open) {
|
125
|
+
var close = PARTNER[open];
|
126
|
+
var name = NAMES[open];
|
127
|
+
|
128
|
+
/** @type {[number, number][]} */
|
129
|
+
var pairs = [];
|
130
|
+
/** @type {number[]} */
|
131
|
+
var openStack = [];
|
132
|
+
|
133
|
+
for (var i = 0; i < punctuation.length; i++) {
|
134
|
+
var element = punctuation[i];
|
135
|
+
if (element.childElementCount == 0) {
|
136
|
+
var text = element.textContent;
|
137
|
+
if (text === open) {
|
138
|
+
allBraces.push({ index: i, open: true, element: element });
|
139
|
+
element.className += ' ' + name;
|
140
|
+
element.className += ' brace-open';
|
141
|
+
openStack.push(i);
|
142
|
+
} else if (text === close) {
|
143
|
+
allBraces.push({ index: i, open: false, element: element });
|
144
|
+
element.className += ' ' + name;
|
145
|
+
element.className += ' brace-close';
|
146
|
+
if (openStack.length) {
|
147
|
+
pairs.push([i, openStack.pop()]);
|
148
|
+
}
|
149
|
+
}
|
150
|
+
}
|
151
|
+
}
|
152
|
+
|
153
|
+
pairs.forEach(function (pair) {
|
154
|
+
var pairId = 'pair-' + (pairIdCounter++) + '-';
|
155
|
+
|
156
|
+
var openEle = punctuation[pair[0]];
|
157
|
+
var closeEle = punctuation[pair[1]];
|
158
|
+
|
159
|
+
openEle.id = pairId + 'open';
|
160
|
+
closeEle.id = pairId + 'close';
|
161
|
+
|
162
|
+
[openEle, closeEle].forEach(function (ele) {
|
163
|
+
ele.addEventListener('mouseenter', hoverBrace);
|
164
|
+
ele.addEventListener('mouseleave', leaveBrace);
|
165
|
+
ele.addEventListener('click', clickBrace);
|
166
|
+
});
|
167
|
+
});
|
168
|
+
});
|
169
|
+
|
170
|
+
var level = 0;
|
171
|
+
allBraces.sort(function (a, b) { return a.index - b.index; });
|
172
|
+
allBraces.forEach(function (brace) {
|
173
|
+
if (brace.open) {
|
174
|
+
brace.element.className += ' brace-level-' + (level % LEVEL_WARP + 1);
|
175
|
+
level++;
|
176
|
+
} else {
|
177
|
+
level = Math.max(0, level - 1);
|
178
|
+
brace.element.className += ' brace-level-' + (level % LEVEL_WARP + 1);
|
179
|
+
}
|
180
|
+
});
|
181
|
+
|
182
|
+
});
|
183
|
+
|
184
|
+
}());
|
@@ -1,9 +1,5 @@
|
|
1
1
|
(function() {
|
2
2
|
|
3
|
-
if (typeof self === 'undefined' || !self.Prism || !self.document) {
|
4
|
-
return;
|
5
|
-
}
|
6
|
-
|
7
3
|
var assign = Object.assign || function (obj1, obj2) {
|
8
4
|
for (var name in obj2) {
|
9
5
|
if (obj2.hasOwnProperty(name))
|
@@ -64,7 +60,7 @@ NormalizeWhitespace.prototype = {
|
|
64
60
|
},
|
65
61
|
spacesToTabs: function (input, spaces) {
|
66
62
|
spaces = spaces|0 || 4;
|
67
|
-
return input.replace(
|
63
|
+
return input.replace(RegExp(' {' + spaces + '}', 'g'), '\t');
|
68
64
|
},
|
69
65
|
removeTrailing: function (input) {
|
70
66
|
return input.replace(/\s*?$/gm, '');
|
@@ -84,7 +80,7 @@ NormalizeWhitespace.prototype = {
|
|
84
80
|
if (!indents[0].length)
|
85
81
|
return input;
|
86
82
|
|
87
|
-
return input.replace(
|
83
|
+
return input.replace(RegExp('^' + indents[0], 'gm'), '');
|
88
84
|
},
|
89
85
|
indent: function (input, tabs) {
|
90
86
|
return input.replace(/^[^\S\n\r]*(?=\S)/gm, new Array(++tabs).join('\t') + '$&');
|
@@ -114,6 +110,16 @@ NormalizeWhitespace.prototype = {
|
|
114
110
|
}
|
115
111
|
};
|
116
112
|
|
113
|
+
// Support node modules
|
114
|
+
if (typeof module !== 'undefined' && module.exports) {
|
115
|
+
module.exports = NormalizeWhitespace;
|
116
|
+
}
|
117
|
+
|
118
|
+
// Exit if prism is not loaded
|
119
|
+
if (typeof Prism === 'undefined') {
|
120
|
+
return;
|
121
|
+
}
|
122
|
+
|
117
123
|
Prism.plugins.NormalizeWhitespace = new NormalizeWhitespace({
|
118
124
|
'remove-trailing': true,
|
119
125
|
'remove-indent': true,
|
@@ -127,18 +133,30 @@ Prism.plugins.NormalizeWhitespace = new NormalizeWhitespace({
|
|
127
133
|
});
|
128
134
|
|
129
135
|
Prism.hooks.add('before-sanity-check', function (env) {
|
136
|
+
var Normalizer = Prism.plugins.NormalizeWhitespace;
|
137
|
+
|
138
|
+
// Check settings
|
139
|
+
if (env.settings && env.settings['whitespace-normalization'] === false) {
|
140
|
+
return;
|
141
|
+
}
|
142
|
+
|
143
|
+
// Simple mode if there is no env.element
|
144
|
+
if ((!env.element || !env.element.parentNode) && env.code) {
|
145
|
+
env.code = Normalizer.normalize(env.code, env.settings);
|
146
|
+
return;
|
147
|
+
}
|
148
|
+
|
149
|
+
// Normal mode
|
130
150
|
var pre = env.element.parentNode;
|
131
|
-
var clsReg =
|
151
|
+
var clsReg = /(?:^|\s)no-whitespace-normalization(?:\s|$)/;
|
132
152
|
if (!env.code || !pre || pre.nodeName.toLowerCase() !== 'pre' ||
|
133
|
-
(env.settings && env.settings['whitespace-normalization'] === false) ||
|
134
153
|
clsReg.test(pre.className) || clsReg.test(env.element.className))
|
135
154
|
return;
|
136
155
|
|
137
156
|
var children = pre.childNodes,
|
138
157
|
before = '',
|
139
158
|
after = '',
|
140
|
-
codeFound = false
|
141
|
-
Normalizer = Prism.plugins.NormalizeWhitespace;
|
159
|
+
codeFound = false;
|
142
160
|
|
143
161
|
// Move surrounding whitespace from the <pre> tag into the <code> tag
|
144
162
|
for (var i = 0; i < children.length; ++i) {
|
@@ -169,4 +187,4 @@ Prism.hooks.add('before-sanity-check', function (env) {
|
|
169
187
|
}
|
170
188
|
});
|
171
189
|
|
172
|
-
}());
|
190
|
+
}());
|
@@ -0,0 +1,703 @@
|
|
1
|
+
(function() {
|
2
|
+
|
3
|
+
if (
|
4
|
+
typeof self !== 'undefined' && !self.Prism ||
|
5
|
+
!self.document || !Function.prototype.bind
|
6
|
+
) {
|
7
|
+
return;
|
8
|
+
}
|
9
|
+
|
10
|
+
var previewers = {
|
11
|
+
// gradient must be defined before color and angle
|
12
|
+
'gradient': {
|
13
|
+
create: (function () {
|
14
|
+
|
15
|
+
// Stores already processed gradients so that we don't
|
16
|
+
// make the conversion every time the previewer is shown
|
17
|
+
var cache = {};
|
18
|
+
|
19
|
+
/**
|
20
|
+
* Returns a W3C-valid linear gradient
|
21
|
+
* @param {string} prefix Vendor prefix if any ("-moz-", "-webkit-", etc.)
|
22
|
+
* @param {string} func Gradient function name ("linear-gradient")
|
23
|
+
* @param {string[]} values Array of the gradient function parameters (["0deg", "red 0%", "blue 100%"])
|
24
|
+
*/
|
25
|
+
var convertToW3CLinearGradient = function(prefix, func, values) {
|
26
|
+
// Default value for angle
|
27
|
+
var angle = '180deg';
|
28
|
+
|
29
|
+
if (/^(?:-?\d*\.?\d+(?:deg|rad)|to\b|top|right|bottom|left)/.test(values[0])) {
|
30
|
+
angle = values.shift();
|
31
|
+
if (angle.indexOf('to ') < 0) {
|
32
|
+
// Angle uses old keywords
|
33
|
+
// W3C syntax uses "to" + opposite keywords
|
34
|
+
if (angle.indexOf('top') >= 0) {
|
35
|
+
if (angle.indexOf('left') >= 0) {
|
36
|
+
angle = 'to bottom right';
|
37
|
+
} else if (angle.indexOf('right') >= 0) {
|
38
|
+
angle = 'to bottom left';
|
39
|
+
} else {
|
40
|
+
angle = 'to bottom';
|
41
|
+
}
|
42
|
+
} else if (angle.indexOf('bottom') >= 0) {
|
43
|
+
if (angle.indexOf('left') >= 0) {
|
44
|
+
angle = 'to top right';
|
45
|
+
} else if (angle.indexOf('right') >= 0) {
|
46
|
+
angle = 'to top left';
|
47
|
+
} else {
|
48
|
+
angle = 'to top';
|
49
|
+
}
|
50
|
+
} else if (angle.indexOf('left') >= 0) {
|
51
|
+
angle = 'to right';
|
52
|
+
} else if (angle.indexOf('right') >= 0) {
|
53
|
+
angle = 'to left';
|
54
|
+
} else if (prefix) {
|
55
|
+
// Angle is shifted by 90deg in prefixed gradients
|
56
|
+
if (angle.indexOf('deg') >= 0) {
|
57
|
+
angle = (90 - parseFloat(angle)) + 'deg';
|
58
|
+
} else if (angle.indexOf('rad') >= 0) {
|
59
|
+
angle = (Math.PI / 2 - parseFloat(angle)) + 'rad';
|
60
|
+
}
|
61
|
+
}
|
62
|
+
}
|
63
|
+
}
|
64
|
+
|
65
|
+
return func + '(' + angle + ',' + values.join(',') + ')';
|
66
|
+
};
|
67
|
+
|
68
|
+
/**
|
69
|
+
* Returns a W3C-valid radial gradient
|
70
|
+
* @param {string} prefix Vendor prefix if any ("-moz-", "-webkit-", etc.)
|
71
|
+
* @param {string} func Gradient function name ("linear-gradient")
|
72
|
+
* @param {string[]} values Array of the gradient function parameters (["0deg", "red 0%", "blue 100%"])
|
73
|
+
*/
|
74
|
+
var convertToW3CRadialGradient = function(prefix, func, values) {
|
75
|
+
if (values[0].indexOf('at') < 0) {
|
76
|
+
// Looks like old syntax
|
77
|
+
|
78
|
+
// Default values
|
79
|
+
var position = 'center';
|
80
|
+
var shape = 'ellipse';
|
81
|
+
var size = 'farthest-corner';
|
82
|
+
|
83
|
+
if (/\bcenter|top|right|bottom|left\b|^\d+/.test(values[0])) {
|
84
|
+
// Found a position
|
85
|
+
// Remove angle value, if any
|
86
|
+
position = values.shift().replace(/\s*-?\d+(?:rad|deg)\s*/, '');
|
87
|
+
}
|
88
|
+
if (/\bcircle|ellipse|closest|farthest|contain|cover\b/.test(values[0])) {
|
89
|
+
// Found a shape and/or size
|
90
|
+
var shapeSizeParts = values.shift().split(/\s+/);
|
91
|
+
if (shapeSizeParts[0] && (shapeSizeParts[0] === 'circle' || shapeSizeParts[0] === 'ellipse')) {
|
92
|
+
shape = shapeSizeParts.shift();
|
93
|
+
}
|
94
|
+
if (shapeSizeParts[0]) {
|
95
|
+
size = shapeSizeParts.shift();
|
96
|
+
}
|
97
|
+
|
98
|
+
// Old keywords are converted to their synonyms
|
99
|
+
if (size === 'cover') {
|
100
|
+
size = 'farthest-corner';
|
101
|
+
} else if (size === 'contain') {
|
102
|
+
size = 'clothest-side';
|
103
|
+
}
|
104
|
+
}
|
105
|
+
|
106
|
+
return func + '(' + shape + ' ' + size + ' at ' + position + ',' + values.join(',') + ')';
|
107
|
+
}
|
108
|
+
return func + '(' + values.join(',') + ')';
|
109
|
+
};
|
110
|
+
|
111
|
+
/**
|
112
|
+
* Converts a gradient to a W3C-valid one
|
113
|
+
* Does not support old webkit syntax (-webkit-gradient(linear...) and -webkit-gradient(radial...))
|
114
|
+
* @param {string} gradient The CSS gradient
|
115
|
+
*/
|
116
|
+
var convertToW3CGradient = function(gradient) {
|
117
|
+
if (cache[gradient]) {
|
118
|
+
return cache[gradient];
|
119
|
+
}
|
120
|
+
var parts = gradient.match(/^(\b|\B-[a-z]{1,10}-)((?:repeating-)?(?:linear|radial)-gradient)/);
|
121
|
+
// "", "-moz-", etc.
|
122
|
+
var prefix = parts && parts[1];
|
123
|
+
// "linear-gradient", "radial-gradient", etc.
|
124
|
+
var func = parts && parts[2];
|
125
|
+
|
126
|
+
var values = gradient.replace(/^(?:\b|\B-[a-z]{1,10}-)(?:repeating-)?(?:linear|radial)-gradient\(|\)$/g, '').split(/\s*,\s*/);
|
127
|
+
|
128
|
+
if (func.indexOf('linear') >= 0) {
|
129
|
+
return cache[gradient] = convertToW3CLinearGradient(prefix, func, values);
|
130
|
+
} else if (func.indexOf('radial') >= 0) {
|
131
|
+
return cache[gradient] = convertToW3CRadialGradient(prefix, func, values);
|
132
|
+
}
|
133
|
+
return cache[gradient] = func + '(' + values.join(',') + ')';
|
134
|
+
};
|
135
|
+
|
136
|
+
return function () {
|
137
|
+
new Prism.plugins.Previewer('gradient', function(value) {
|
138
|
+
this.firstChild.style.backgroundImage = '';
|
139
|
+
this.firstChild.style.backgroundImage = convertToW3CGradient(value);
|
140
|
+
return !!this.firstChild.style.backgroundImage;
|
141
|
+
}, '*', function () {
|
142
|
+
this._elt.innerHTML = '<div></div>';
|
143
|
+
});
|
144
|
+
};
|
145
|
+
}()),
|
146
|
+
tokens: {
|
147
|
+
'gradient': {
|
148
|
+
pattern: /(?:\b|\B-[a-z]{1,10}-)(?:repeating-)?(?:linear|radial)-gradient\((?:(?:rgb|hsl)a?\(.+?\)|[^\)])+\)/gi,
|
149
|
+
inside: {
|
150
|
+
'function': /[\w-]+(?=\()/,
|
151
|
+
'punctuation': /[(),]/
|
152
|
+
}
|
153
|
+
}
|
154
|
+
},
|
155
|
+
languages: {
|
156
|
+
'css': true,
|
157
|
+
'less': true,
|
158
|
+
'sass': [
|
159
|
+
{
|
160
|
+
lang: 'sass',
|
161
|
+
before: 'punctuation',
|
162
|
+
inside: 'inside',
|
163
|
+
root: Prism.languages.sass && Prism.languages.sass['variable-line']
|
164
|
+
},
|
165
|
+
{
|
166
|
+
lang: 'sass',
|
167
|
+
before: 'punctuation',
|
168
|
+
inside: 'inside',
|
169
|
+
root: Prism.languages.sass && Prism.languages.sass['property-line']
|
170
|
+
}
|
171
|
+
],
|
172
|
+
'scss': true,
|
173
|
+
'stylus': [
|
174
|
+
{
|
175
|
+
lang: 'stylus',
|
176
|
+
before: 'func',
|
177
|
+
inside: 'rest',
|
178
|
+
root: Prism.languages.stylus && Prism.languages.stylus['property-declaration'].inside
|
179
|
+
},
|
180
|
+
{
|
181
|
+
lang: 'stylus',
|
182
|
+
before: 'func',
|
183
|
+
inside: 'rest',
|
184
|
+
root: Prism.languages.stylus && Prism.languages.stylus['variable-declaration'].inside
|
185
|
+
}
|
186
|
+
]
|
187
|
+
}
|
188
|
+
},
|
189
|
+
'angle': {
|
190
|
+
create: function () {
|
191
|
+
new Prism.plugins.Previewer('angle', function(value) {
|
192
|
+
var num = parseFloat(value);
|
193
|
+
var unit = value.match(/[a-z]+$/i);
|
194
|
+
var max, percentage;
|
195
|
+
if (!num || !unit) {
|
196
|
+
return false;
|
197
|
+
}
|
198
|
+
unit = unit[0];
|
199
|
+
|
200
|
+
switch(unit) {
|
201
|
+
case 'deg':
|
202
|
+
max = 360;
|
203
|
+
break;
|
204
|
+
case 'grad':
|
205
|
+
max = 400;
|
206
|
+
break;
|
207
|
+
case 'rad':
|
208
|
+
max = 2 * Math.PI;
|
209
|
+
break;
|
210
|
+
case 'turn':
|
211
|
+
max = 1;
|
212
|
+
}
|
213
|
+
|
214
|
+
percentage = 100 * num/max;
|
215
|
+
percentage %= 100;
|
216
|
+
|
217
|
+
this[(num < 0? 'set' : 'remove') + 'Attribute']('data-negative', '');
|
218
|
+
this.querySelector('circle').style.strokeDasharray = Math.abs(percentage) + ',500';
|
219
|
+
return true;
|
220
|
+
}, '*', function () {
|
221
|
+
this._elt.innerHTML = '<svg viewBox="0 0 64 64">' +
|
222
|
+
'<circle r="16" cy="32" cx="32"></circle>' +
|
223
|
+
'</svg>';
|
224
|
+
});
|
225
|
+
},
|
226
|
+
tokens: {
|
227
|
+
'angle': /(?:\b|\B-|(?=\B\.))\d*\.?\d+(?:deg|g?rad|turn)\b/i
|
228
|
+
},
|
229
|
+
languages: {
|
230
|
+
'css': true,
|
231
|
+
'less': true,
|
232
|
+
'markup': {
|
233
|
+
lang: 'markup',
|
234
|
+
before: 'punctuation',
|
235
|
+
inside: 'inside',
|
236
|
+
root: Prism.languages.markup && Prism.languages.markup['tag'].inside['attr-value']
|
237
|
+
},
|
238
|
+
'sass': [
|
239
|
+
{
|
240
|
+
lang: 'sass',
|
241
|
+
inside: 'inside',
|
242
|
+
root: Prism.languages.sass && Prism.languages.sass['property-line']
|
243
|
+
},
|
244
|
+
{
|
245
|
+
lang: 'sass',
|
246
|
+
before: 'operator',
|
247
|
+
inside: 'inside',
|
248
|
+
root: Prism.languages.sass && Prism.languages.sass['variable-line']
|
249
|
+
}
|
250
|
+
],
|
251
|
+
'scss': true,
|
252
|
+
'stylus': [
|
253
|
+
{
|
254
|
+
lang: 'stylus',
|
255
|
+
before: 'func',
|
256
|
+
inside: 'rest',
|
257
|
+
root: Prism.languages.stylus && Prism.languages.stylus['property-declaration'].inside
|
258
|
+
},
|
259
|
+
{
|
260
|
+
lang: 'stylus',
|
261
|
+
before: 'func',
|
262
|
+
inside: 'rest',
|
263
|
+
root: Prism.languages.stylus && Prism.languages.stylus['variable-declaration'].inside
|
264
|
+
}
|
265
|
+
]
|
266
|
+
}
|
267
|
+
},
|
268
|
+
'color': {
|
269
|
+
create: function () {
|
270
|
+
new Prism.plugins.Previewer('color', function(value) {
|
271
|
+
this.style.backgroundColor = '';
|
272
|
+
this.style.backgroundColor = value;
|
273
|
+
return !!this.style.backgroundColor;
|
274
|
+
});
|
275
|
+
},
|
276
|
+
tokens: {
|
277
|
+
'color': [Prism.languages.css['hexcode']].concat(Prism.languages.css['color'])
|
278
|
+
},
|
279
|
+
languages: {
|
280
|
+
// CSS extras is required, so css and scss are not necessary
|
281
|
+
'css': false,
|
282
|
+
'less': true,
|
283
|
+
'markup': {
|
284
|
+
lang: 'markup',
|
285
|
+
before: 'punctuation',
|
286
|
+
inside: 'inside',
|
287
|
+
root: Prism.languages.markup && Prism.languages.markup['tag'].inside['attr-value']
|
288
|
+
},
|
289
|
+
'sass': [
|
290
|
+
{
|
291
|
+
lang: 'sass',
|
292
|
+
before: 'punctuation',
|
293
|
+
inside: 'inside',
|
294
|
+
root: Prism.languages.sass && Prism.languages.sass['variable-line']
|
295
|
+
},
|
296
|
+
{
|
297
|
+
lang: 'sass',
|
298
|
+
inside: 'inside',
|
299
|
+
root: Prism.languages.sass && Prism.languages.sass['property-line']
|
300
|
+
}
|
301
|
+
],
|
302
|
+
'scss': false,
|
303
|
+
'stylus': [
|
304
|
+
{
|
305
|
+
lang: 'stylus',
|
306
|
+
before: 'hexcode',
|
307
|
+
inside: 'rest',
|
308
|
+
root: Prism.languages.stylus && Prism.languages.stylus['property-declaration'].inside
|
309
|
+
},
|
310
|
+
{
|
311
|
+
lang: 'stylus',
|
312
|
+
before: 'hexcode',
|
313
|
+
inside: 'rest',
|
314
|
+
root: Prism.languages.stylus && Prism.languages.stylus['variable-declaration'].inside
|
315
|
+
}
|
316
|
+
]
|
317
|
+
}
|
318
|
+
},
|
319
|
+
'easing': {
|
320
|
+
create: function () {
|
321
|
+
new Prism.plugins.Previewer('easing', function (value) {
|
322
|
+
|
323
|
+
value = {
|
324
|
+
'linear': '0,0,1,1',
|
325
|
+
'ease': '.25,.1,.25,1',
|
326
|
+
'ease-in': '.42,0,1,1',
|
327
|
+
'ease-out': '0,0,.58,1',
|
328
|
+
'ease-in-out':'.42,0,.58,1'
|
329
|
+
}[value] || value;
|
330
|
+
|
331
|
+
var p = value.match(/-?\d*\.?\d+/g);
|
332
|
+
|
333
|
+
if(p.length === 4) {
|
334
|
+
p = p.map(function(p, i) { return (i % 2? 1 - p : p) * 100; });
|
335
|
+
|
336
|
+
this.querySelector('path').setAttribute('d', 'M0,100 C' + p[0] + ',' + p[1] + ', ' + p[2] + ',' + p[3] + ', 100,0');
|
337
|
+
|
338
|
+
var lines = this.querySelectorAll('line');
|
339
|
+
lines[0].setAttribute('x2', p[0]);
|
340
|
+
lines[0].setAttribute('y2', p[1]);
|
341
|
+
lines[1].setAttribute('x2', p[2]);
|
342
|
+
lines[1].setAttribute('y2', p[3]);
|
343
|
+
|
344
|
+
return true;
|
345
|
+
}
|
346
|
+
|
347
|
+
return false;
|
348
|
+
}, '*', function () {
|
349
|
+
this._elt.innerHTML = '<svg viewBox="-20 -20 140 140" width="100" height="100">' +
|
350
|
+
'<defs>' +
|
351
|
+
'<marker id="prism-previewer-easing-marker" viewBox="0 0 4 4" refX="2" refY="2" markerUnits="strokeWidth">' +
|
352
|
+
'<circle cx="2" cy="2" r="1.5" />' +
|
353
|
+
'</marker>' +
|
354
|
+
'</defs>' +
|
355
|
+
'<path d="M0,100 C20,50, 40,30, 100,0" />' +
|
356
|
+
'<line x1="0" y1="100" x2="20" y2="50" marker-start="url(' + location.href + '#prism-previewer-easing-marker)" marker-end="url(' + location.href + '#prism-previewer-easing-marker)" />' +
|
357
|
+
'<line x1="100" y1="0" x2="40" y2="30" marker-start="url(' + location.href + '#prism-previewer-easing-marker)" marker-end="url(' + location.href + '#prism-previewer-easing-marker)" />' +
|
358
|
+
'</svg>';
|
359
|
+
});
|
360
|
+
},
|
361
|
+
tokens: {
|
362
|
+
'easing': {
|
363
|
+
pattern: /\bcubic-bezier\((?:-?\d*\.?\d+,\s*){3}-?\d*\.?\d+\)\B|\b(?:linear|ease(?:-in)?(?:-out)?)(?=\s|[;}]|$)/i,
|
364
|
+
inside: {
|
365
|
+
'function': /[\w-]+(?=\()/,
|
366
|
+
'punctuation': /[(),]/
|
367
|
+
}
|
368
|
+
}
|
369
|
+
},
|
370
|
+
languages: {
|
371
|
+
'css': true,
|
372
|
+
'less': true,
|
373
|
+
'sass': [
|
374
|
+
{
|
375
|
+
lang: 'sass',
|
376
|
+
inside: 'inside',
|
377
|
+
before: 'punctuation',
|
378
|
+
root: Prism.languages.sass && Prism.languages.sass['variable-line']
|
379
|
+
},
|
380
|
+
{
|
381
|
+
lang: 'sass',
|
382
|
+
inside: 'inside',
|
383
|
+
root: Prism.languages.sass && Prism.languages.sass['property-line']
|
384
|
+
}
|
385
|
+
],
|
386
|
+
'scss': true,
|
387
|
+
'stylus': [
|
388
|
+
{
|
389
|
+
lang: 'stylus',
|
390
|
+
before: 'hexcode',
|
391
|
+
inside: 'rest',
|
392
|
+
root: Prism.languages.stylus && Prism.languages.stylus['property-declaration'].inside
|
393
|
+
},
|
394
|
+
{
|
395
|
+
lang: 'stylus',
|
396
|
+
before: 'hexcode',
|
397
|
+
inside: 'rest',
|
398
|
+
root: Prism.languages.stylus && Prism.languages.stylus['variable-declaration'].inside
|
399
|
+
}
|
400
|
+
]
|
401
|
+
}
|
402
|
+
},
|
403
|
+
|
404
|
+
'time': {
|
405
|
+
create: function () {
|
406
|
+
new Prism.plugins.Previewer('time', function(value) {
|
407
|
+
var num = parseFloat(value);
|
408
|
+
var unit = value.match(/[a-z]+$/i);
|
409
|
+
if (!num || !unit) {
|
410
|
+
return false;
|
411
|
+
}
|
412
|
+
unit = unit[0];
|
413
|
+
this.querySelector('circle').style.animationDuration = 2 * num + unit;
|
414
|
+
return true;
|
415
|
+
}, '*', function () {
|
416
|
+
this._elt.innerHTML = '<svg viewBox="0 0 64 64">' +
|
417
|
+
'<circle r="16" cy="32" cx="32"></circle>' +
|
418
|
+
'</svg>';
|
419
|
+
});
|
420
|
+
},
|
421
|
+
tokens: {
|
422
|
+
'time': /(?:\b|\B-|(?=\B\.))\d*\.?\d+m?s\b/i
|
423
|
+
},
|
424
|
+
languages: {
|
425
|
+
'css': true,
|
426
|
+
'less': true,
|
427
|
+
'markup': {
|
428
|
+
lang: 'markup',
|
429
|
+
before: 'punctuation',
|
430
|
+
inside: 'inside',
|
431
|
+
root: Prism.languages.markup && Prism.languages.markup['tag'].inside['attr-value']
|
432
|
+
},
|
433
|
+
'sass': [
|
434
|
+
{
|
435
|
+
lang: 'sass',
|
436
|
+
inside: 'inside',
|
437
|
+
root: Prism.languages.sass && Prism.languages.sass['property-line']
|
438
|
+
},
|
439
|
+
{
|
440
|
+
lang: 'sass',
|
441
|
+
before: 'operator',
|
442
|
+
inside: 'inside',
|
443
|
+
root: Prism.languages.sass && Prism.languages.sass['variable-line']
|
444
|
+
}
|
445
|
+
],
|
446
|
+
'scss': true,
|
447
|
+
'stylus': [
|
448
|
+
{
|
449
|
+
lang: 'stylus',
|
450
|
+
before: 'hexcode',
|
451
|
+
inside: 'rest',
|
452
|
+
root: Prism.languages.stylus && Prism.languages.stylus['property-declaration'].inside
|
453
|
+
},
|
454
|
+
{
|
455
|
+
lang: 'stylus',
|
456
|
+
before: 'hexcode',
|
457
|
+
inside: 'rest',
|
458
|
+
root: Prism.languages.stylus && Prism.languages.stylus['variable-declaration'].inside
|
459
|
+
}
|
460
|
+
]
|
461
|
+
}
|
462
|
+
}
|
463
|
+
};
|
464
|
+
|
465
|
+
/**
|
466
|
+
* Returns the absolute X, Y offsets for an element
|
467
|
+
* @param {HTMLElement} element
|
468
|
+
* @returns {{top: number, right: number, bottom: number, left: number, width: number, height: number}}
|
469
|
+
*/
|
470
|
+
var getOffset = function (element) {
|
471
|
+
var elementBounds = element.getBoundingClientRect();
|
472
|
+
var left = elementBounds.left;
|
473
|
+
var top = elementBounds.top;
|
474
|
+
var documentBounds = document.documentElement.getBoundingClientRect();
|
475
|
+
left -= documentBounds.left;
|
476
|
+
top -= documentBounds.top;
|
477
|
+
|
478
|
+
return {
|
479
|
+
top: top,
|
480
|
+
right: innerWidth - left - elementBounds.width,
|
481
|
+
bottom: innerHeight - top - elementBounds.height,
|
482
|
+
left: left,
|
483
|
+
width: elementBounds.width,
|
484
|
+
height: elementBounds.height
|
485
|
+
};
|
486
|
+
};
|
487
|
+
|
488
|
+
var tokenRegexp = /(?:^|\s)token(?=$|\s)/;
|
489
|
+
var activeRegexp = /(?:^|\s)active(?=$|\s)/g;
|
490
|
+
var flippedRegexp = /(?:^|\s)flipped(?=$|\s)/g;
|
491
|
+
|
492
|
+
/**
|
493
|
+
* Previewer constructor
|
494
|
+
* @param {string} type Unique previewer type
|
495
|
+
* @param {function} updater Function that will be called on mouseover.
|
496
|
+
* @param {string[]|string=} supportedLanguages Aliases of the languages this previewer must be enabled for. Defaults to "*", all languages.
|
497
|
+
* @param {function=} initializer Function that will be called on initialization.
|
498
|
+
* @constructor
|
499
|
+
*/
|
500
|
+
var Previewer = function (type, updater, supportedLanguages, initializer) {
|
501
|
+
this._elt = null;
|
502
|
+
this._type = type;
|
503
|
+
this._clsRegexp = RegExp('(?:^|\\s)' + type + '(?=$|\\s)');
|
504
|
+
this._token = null;
|
505
|
+
this.updater = updater;
|
506
|
+
this._mouseout = this.mouseout.bind(this);
|
507
|
+
this.initializer = initializer;
|
508
|
+
|
509
|
+
var self = this;
|
510
|
+
|
511
|
+
if (!supportedLanguages) {
|
512
|
+
supportedLanguages = ['*'];
|
513
|
+
}
|
514
|
+
if (!Array.isArray(supportedLanguages)) {
|
515
|
+
supportedLanguages = [supportedLanguages];
|
516
|
+
}
|
517
|
+
supportedLanguages.forEach(function (lang) {
|
518
|
+
if (typeof lang !== 'string') {
|
519
|
+
lang = lang.lang;
|
520
|
+
}
|
521
|
+
if (!Previewer.byLanguages[lang]) {
|
522
|
+
Previewer.byLanguages[lang] = [];
|
523
|
+
}
|
524
|
+
if (Previewer.byLanguages[lang].indexOf(self) < 0) {
|
525
|
+
Previewer.byLanguages[lang].push(self);
|
526
|
+
}
|
527
|
+
});
|
528
|
+
Previewer.byType[type] = this;
|
529
|
+
};
|
530
|
+
|
531
|
+
/**
|
532
|
+
* Creates the HTML element for the previewer.
|
533
|
+
*/
|
534
|
+
Previewer.prototype.init = function () {
|
535
|
+
if (this._elt) {
|
536
|
+
return;
|
537
|
+
}
|
538
|
+
this._elt = document.createElement('div');
|
539
|
+
this._elt.className = 'prism-previewer prism-previewer-' + this._type;
|
540
|
+
document.body.appendChild(this._elt);
|
541
|
+
if(this.initializer) {
|
542
|
+
this.initializer();
|
543
|
+
}
|
544
|
+
};
|
545
|
+
|
546
|
+
Previewer.prototype.isDisabled = function (token) {
|
547
|
+
do {
|
548
|
+
if (token.hasAttribute && token.hasAttribute('data-previewers')) {
|
549
|
+
var previewers = token.getAttribute('data-previewers');
|
550
|
+
return (previewers || '').split(/\s+/).indexOf(this._type) === -1;
|
551
|
+
}
|
552
|
+
} while(token = token.parentNode);
|
553
|
+
return false;
|
554
|
+
};
|
555
|
+
|
556
|
+
/**
|
557
|
+
* Checks the class name of each hovered element
|
558
|
+
* @param token
|
559
|
+
*/
|
560
|
+
Previewer.prototype.check = function (token) {
|
561
|
+
if (tokenRegexp.test(token.className) && this.isDisabled(token)) {
|
562
|
+
return;
|
563
|
+
}
|
564
|
+
do {
|
565
|
+
if (tokenRegexp.test(token.className) && this._clsRegexp.test(token.className)) {
|
566
|
+
break;
|
567
|
+
}
|
568
|
+
} while(token = token.parentNode);
|
569
|
+
|
570
|
+
if (token && token !== this._token) {
|
571
|
+
this._token = token;
|
572
|
+
this.show();
|
573
|
+
}
|
574
|
+
};
|
575
|
+
|
576
|
+
/**
|
577
|
+
* Called on mouseout
|
578
|
+
*/
|
579
|
+
Previewer.prototype.mouseout = function() {
|
580
|
+
this._token.removeEventListener('mouseout', this._mouseout, false);
|
581
|
+
this._token = null;
|
582
|
+
this.hide();
|
583
|
+
};
|
584
|
+
|
585
|
+
/**
|
586
|
+
* Shows the previewer positioned properly for the current token.
|
587
|
+
*/
|
588
|
+
Previewer.prototype.show = function () {
|
589
|
+
if (!this._elt) {
|
590
|
+
this.init();
|
591
|
+
}
|
592
|
+
if (!this._token) {
|
593
|
+
return;
|
594
|
+
}
|
595
|
+
|
596
|
+
if (this.updater.call(this._elt, this._token.textContent)) {
|
597
|
+
this._token.addEventListener('mouseout', this._mouseout, false);
|
598
|
+
|
599
|
+
var offset = getOffset(this._token);
|
600
|
+
this._elt.className += ' active';
|
601
|
+
|
602
|
+
if (offset.top - this._elt.offsetHeight > 0) {
|
603
|
+
this._elt.className = this._elt.className.replace(flippedRegexp, '');
|
604
|
+
this._elt.style.top = offset.top + 'px';
|
605
|
+
this._elt.style.bottom = '';
|
606
|
+
} else {
|
607
|
+
this._elt.className += ' flipped';
|
608
|
+
this._elt.style.bottom = offset.bottom + 'px';
|
609
|
+
this._elt.style.top = '';
|
610
|
+
}
|
611
|
+
|
612
|
+
this._elt.style.left = offset.left + Math.min(200, offset.width / 2) + 'px';
|
613
|
+
} else {
|
614
|
+
this.hide();
|
615
|
+
}
|
616
|
+
};
|
617
|
+
|
618
|
+
/**
|
619
|
+
* Hides the previewer.
|
620
|
+
*/
|
621
|
+
Previewer.prototype.hide = function () {
|
622
|
+
this._elt.className = this._elt.className.replace(activeRegexp, '');
|
623
|
+
};
|
624
|
+
|
625
|
+
/**
|
626
|
+
* Map of all registered previewers by language
|
627
|
+
* @type {{}}
|
628
|
+
*/
|
629
|
+
Previewer.byLanguages = {};
|
630
|
+
|
631
|
+
/**
|
632
|
+
* Map of all registered previewers by type
|
633
|
+
* @type {{}}
|
634
|
+
*/
|
635
|
+
Previewer.byType = {};
|
636
|
+
|
637
|
+
/**
|
638
|
+
* Initializes the mouseover event on the code block.
|
639
|
+
* @param {HTMLElement} elt The code block (env.element)
|
640
|
+
* @param {string} lang The language (env.language)
|
641
|
+
*/
|
642
|
+
Previewer.initEvents = function (elt, lang) {
|
643
|
+
var previewers = [];
|
644
|
+
if (Previewer.byLanguages[lang]) {
|
645
|
+
previewers = previewers.concat(Previewer.byLanguages[lang]);
|
646
|
+
}
|
647
|
+
if (Previewer.byLanguages['*']) {
|
648
|
+
previewers = previewers.concat(Previewer.byLanguages['*']);
|
649
|
+
}
|
650
|
+
elt.addEventListener('mouseover', function (e) {
|
651
|
+
var target = e.target;
|
652
|
+
previewers.forEach(function (previewer) {
|
653
|
+
previewer.check(target);
|
654
|
+
});
|
655
|
+
}, false);
|
656
|
+
};
|
657
|
+
Prism.plugins.Previewer = Previewer;
|
658
|
+
|
659
|
+
Prism.hooks.add('before-highlight', function (env) {
|
660
|
+
for (var previewer in previewers) {
|
661
|
+
var languages = previewers[previewer].languages;
|
662
|
+
if (env.language && languages[env.language] && !languages[env.language].initialized) {
|
663
|
+
var lang = languages[env.language];
|
664
|
+
if (!Array.isArray(lang)) {
|
665
|
+
lang = [lang];
|
666
|
+
}
|
667
|
+
lang.forEach(function (lang) {
|
668
|
+
var before, inside, root, skip;
|
669
|
+
if (lang === true) {
|
670
|
+
before = 'important';
|
671
|
+
inside = env.language;
|
672
|
+
lang = env.language;
|
673
|
+
} else {
|
674
|
+
before = lang.before || 'important';
|
675
|
+
inside = lang.inside || lang.lang;
|
676
|
+
root = lang.root || Prism.languages;
|
677
|
+
skip = lang.skip;
|
678
|
+
lang = env.language;
|
679
|
+
}
|
680
|
+
|
681
|
+
if (!skip && Prism.languages[lang]) {
|
682
|
+
Prism.languages.insertBefore(inside, before, previewers[previewer].tokens, root);
|
683
|
+
env.grammar = Prism.languages[lang];
|
684
|
+
|
685
|
+
languages[env.language] = {initialized: true};
|
686
|
+
}
|
687
|
+
});
|
688
|
+
}
|
689
|
+
}
|
690
|
+
});
|
691
|
+
|
692
|
+
// Initialize the previewers only when needed
|
693
|
+
Prism.hooks.add('after-highlight', function (env) {
|
694
|
+
if(Previewer.byLanguages['*'] || Previewer.byLanguages[env.language]) {
|
695
|
+
Previewer.initEvents(env.element, env.language);
|
696
|
+
}
|
697
|
+
});
|
698
|
+
|
699
|
+
for (var previewer in previewers) {
|
700
|
+
previewers[previewer].create();
|
701
|
+
}
|
702
|
+
|
703
|
+
}());
|