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
@@ -1,4 +1,4 @@
|
|
1
|
-
(function () {
|
1
|
+
(function (self, document) {
|
2
2
|
|
3
3
|
if (typeof self === 'undefined' || !self.Prism || !self.document || !document.createRange) {
|
4
4
|
return;
|
@@ -92,6 +92,8 @@
|
|
92
92
|
pos: 0
|
93
93
|
});
|
94
94
|
});
|
95
|
+
// Store new highlightedCode for later hooks calls
|
96
|
+
env.highlightedCode = env.element.innerHTML;
|
95
97
|
}
|
96
98
|
});
|
97
|
-
}());
|
99
|
+
}(self, document));
|
@@ -1,133 +1,213 @@
|
|
1
|
-
(function(){
|
2
|
-
|
3
|
-
if (typeof self === 'undefined' || !self.Prism || !self.document || !document.querySelector) {
|
4
|
-
|
5
|
-
}
|
6
|
-
|
7
|
-
function $$(expr, con) {
|
8
|
-
return Array.prototype.slice.call((con || document).querySelectorAll(expr));
|
9
|
-
}
|
10
|
-
|
11
|
-
function hasClass(element, className) {
|
12
|
-
className = " " + className + " ";
|
13
|
-
return (" " + element.className + " ").replace(/[\n\t]/g, " ").indexOf(className) > -1
|
14
|
-
}
|
15
|
-
|
16
|
-
// Some browsers round the line-height, others don't.
|
17
|
-
// We need to test for it to position the elements properly.
|
18
|
-
var isLineHeightRounded = (function() {
|
19
|
-
var res;
|
20
|
-
return function() {
|
21
|
-
if(typeof res === 'undefined') {
|
22
|
-
var d = document.createElement('div');
|
23
|
-
d.style.fontSize = '13px';
|
24
|
-
d.style.lineHeight = '1.5';
|
25
|
-
d.style.padding = 0;
|
26
|
-
d.style.border = 0;
|
27
|
-
d.innerHTML = ' <br /> ';
|
28
|
-
document.body.appendChild(d);
|
29
|
-
// Browsers that round the line-height should have offsetHeight === 38
|
30
|
-
// The others should have 39.
|
31
|
-
res = d.offsetHeight === 38;
|
32
|
-
document.body.removeChild(d);
|
33
|
-
}
|
34
|
-
return res;
|
1
|
+
(function () {
|
2
|
+
|
3
|
+
if (typeof self === 'undefined' || !self.Prism || !self.document || !document.querySelector) {
|
4
|
+
return;
|
35
5
|
}
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
6
|
+
|
7
|
+
function $$(expr, con) {
|
8
|
+
return Array.prototype.slice.call((con || document).querySelectorAll(expr));
|
9
|
+
}
|
10
|
+
|
11
|
+
function hasClass(element, className) {
|
12
|
+
className = " " + className + " ";
|
13
|
+
return (" " + element.className + " ").replace(/[\n\t]/g, " ").indexOf(className) > -1
|
14
|
+
}
|
15
|
+
|
16
|
+
function callFunction(func) {
|
17
|
+
func();
|
18
|
+
}
|
19
|
+
|
20
|
+
// Some browsers round the line-height, others don't.
|
21
|
+
// We need to test for it to position the elements properly.
|
22
|
+
var isLineHeightRounded = (function () {
|
23
|
+
var res;
|
24
|
+
return function () {
|
25
|
+
if (typeof res === 'undefined') {
|
26
|
+
var d = document.createElement('div');
|
27
|
+
d.style.fontSize = '13px';
|
28
|
+
d.style.lineHeight = '1.5';
|
29
|
+
d.style.padding = 0;
|
30
|
+
d.style.border = 0;
|
31
|
+
d.innerHTML = ' <br /> ';
|
32
|
+
document.body.appendChild(d);
|
33
|
+
// Browsers that round the line-height should have offsetHeight === 38
|
34
|
+
// The others should have 39.
|
35
|
+
res = d.offsetHeight === 38;
|
36
|
+
document.body.removeChild(d);
|
63
37
|
}
|
38
|
+
return res;
|
64
39
|
}
|
40
|
+
}());
|
41
|
+
|
42
|
+
/**
|
43
|
+
* Highlights the lines of the given pre.
|
44
|
+
*
|
45
|
+
* This function is split into a DOM measuring and mutate phase to improve performance.
|
46
|
+
* The returned function mutates the DOM when called.
|
47
|
+
*
|
48
|
+
* @param {HTMLElement} pre
|
49
|
+
* @param {string} [lines]
|
50
|
+
* @param {string} [classes='']
|
51
|
+
* @returns {() => void}
|
52
|
+
*/
|
53
|
+
function highlightLines(pre, lines, classes) {
|
54
|
+
lines = typeof lines === 'string' ? lines : pre.getAttribute('data-line');
|
55
|
+
|
56
|
+
var ranges = lines.replace(/\s+/g, '').split(',');
|
57
|
+
var offset = +pre.getAttribute('data-line-offset') || 0;
|
58
|
+
|
59
|
+
var parseMethod = isLineHeightRounded() ? parseInt : parseFloat;
|
60
|
+
var lineHeight = parseMethod(getComputedStyle(pre).lineHeight);
|
61
|
+
var hasLineNumbers = hasClass(pre, 'line-numbers');
|
62
|
+
var parentElement = hasLineNumbers ? pre : pre.querySelector('code') || pre;
|
63
|
+
var mutateActions = /** @type {(() => void)[]} */ ([]);
|
64
|
+
|
65
|
+
ranges.forEach(function (currentRange) {
|
66
|
+
var range = currentRange.split('-');
|
67
|
+
|
68
|
+
var start = +range[0];
|
69
|
+
var end = +range[1] || start;
|
70
|
+
|
71
|
+
var line = pre.querySelector('.line-highlight[data-range="' + currentRange + '"]') || document.createElement('div');
|
72
|
+
|
73
|
+
mutateActions.push(function () {
|
74
|
+
line.setAttribute('aria-hidden', 'true');
|
75
|
+
line.setAttribute('data-range', currentRange);
|
76
|
+
line.className = (classes || '') + ' line-highlight';
|
77
|
+
});
|
78
|
+
|
79
|
+
// if the line-numbers plugin is enabled, then there is no reason for this plugin to display the line numbers
|
80
|
+
if (hasLineNumbers && Prism.plugins.lineNumbers) {
|
81
|
+
var startNode = Prism.plugins.lineNumbers.getLine(pre, start);
|
82
|
+
var endNode = Prism.plugins.lineNumbers.getLine(pre, end);
|
83
|
+
|
84
|
+
if (startNode) {
|
85
|
+
var top = startNode.offsetTop + 'px';
|
86
|
+
mutateActions.push(function () {
|
87
|
+
line.style.top = top;
|
88
|
+
});
|
89
|
+
}
|
90
|
+
|
91
|
+
if (endNode) {
|
92
|
+
var height = (endNode.offsetTop - startNode.offsetTop) + endNode.offsetHeight + 'px';
|
93
|
+
mutateActions.push(function () {
|
94
|
+
line.style.height = height;
|
95
|
+
});
|
96
|
+
}
|
97
|
+
} else {
|
98
|
+
mutateActions.push(function () {
|
99
|
+
line.setAttribute('data-start', start);
|
100
|
+
|
101
|
+
if (end > start) {
|
102
|
+
line.setAttribute('data-end', end);
|
103
|
+
}
|
104
|
+
|
105
|
+
line.style.top = (start - offset - 1) * lineHeight + 'px';
|
106
|
+
|
107
|
+
line.textContent = new Array(end - start + 2).join(' \n');
|
108
|
+
});
|
109
|
+
}
|
65
110
|
|
66
|
-
|
111
|
+
mutateActions.push(function () {
|
112
|
+
// allow this to play nicely with the line-numbers plugin
|
113
|
+
// need to attack to pre as when line-numbers is enabled, the code tag is relatively which screws up the positioning
|
114
|
+
parentElement.appendChild(line);
|
115
|
+
});
|
116
|
+
});
|
67
117
|
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
118
|
+
return function () {
|
119
|
+
mutateActions.forEach(callFunction);
|
120
|
+
};
|
121
|
+
}
|
122
|
+
|
123
|
+
function applyHash() {
|
124
|
+
var hash = location.hash.slice(1);
|
125
|
+
|
126
|
+
// Remove pre-existing temporary lines
|
127
|
+
$$('.temporary.line-highlight').forEach(function (line) {
|
128
|
+
line.parentNode.removeChild(line);
|
129
|
+
});
|
130
|
+
|
131
|
+
var range = (hash.match(/\.([\d,-]+)$/) || [, ''])[1];
|
132
|
+
|
133
|
+
if (!range || document.getElementById(hash)) {
|
134
|
+
return;
|
74
135
|
}
|
136
|
+
|
137
|
+
var id = hash.slice(0, hash.lastIndexOf('.')),
|
138
|
+
pre = document.getElementById(id);
|
139
|
+
|
140
|
+
if (!pre) {
|
141
|
+
return;
|
142
|
+
}
|
143
|
+
|
144
|
+
if (!pre.hasAttribute('data-line')) {
|
145
|
+
pre.setAttribute('data-line', '');
|
146
|
+
}
|
147
|
+
|
148
|
+
var mutateDom = highlightLines(pre, range, 'temporary ');
|
149
|
+
mutateDom();
|
150
|
+
|
151
|
+
document.querySelector('.temporary.line-highlight').scrollIntoView();
|
75
152
|
}
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
153
|
+
|
154
|
+
var fakeTimer = 0; // Hack to limit the number of times applyHash() runs
|
155
|
+
|
156
|
+
Prism.hooks.add('before-sanity-check', function (env) {
|
157
|
+
var pre = env.element.parentNode;
|
158
|
+
var lines = pre && pre.getAttribute('data-line');
|
159
|
+
|
160
|
+
if (!pre || !lines || !/pre/i.test(pre.nodeName)) {
|
161
|
+
return;
|
162
|
+
}
|
163
|
+
|
164
|
+
/*
|
165
|
+
* Cleanup for other plugins (e.g. autoloader).
|
166
|
+
*
|
167
|
+
* Sometimes <code> blocks are highlighted multiple times. It is necessary
|
168
|
+
* to cleanup any left-over tags, because the whitespace inside of the <div>
|
169
|
+
* tags change the content of the <code> tag.
|
170
|
+
*/
|
171
|
+
var num = 0;
|
172
|
+
$$('.line-highlight', pre).forEach(function (line) {
|
173
|
+
num += line.textContent.length;
|
174
|
+
line.parentNode.removeChild(line);
|
175
|
+
});
|
176
|
+
// Remove extra whitespace
|
177
|
+
if (num && /^( \n)+$/.test(env.code.slice(-num))) {
|
178
|
+
env.code = env.code.slice(0, -num);
|
179
|
+
}
|
84
180
|
});
|
85
|
-
|
86
|
-
var range = (hash.match(/\.([\d,-]+)$/) || [,''])[1];
|
87
|
-
|
88
|
-
if (!range || document.getElementById(hash)) {
|
89
|
-
return;
|
90
|
-
}
|
91
|
-
|
92
|
-
var id = hash.slice(0, hash.lastIndexOf('.')),
|
93
|
-
pre = document.getElementById(id);
|
94
181
|
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
if (!pre.hasAttribute('data-line')) {
|
100
|
-
pre.setAttribute('data-line', '');
|
101
|
-
}
|
182
|
+
Prism.hooks.add('complete', function completeHook(env) {
|
183
|
+
var pre = env.element.parentNode;
|
184
|
+
var lines = pre && pre.getAttribute('data-line');
|
102
185
|
|
103
|
-
|
186
|
+
if (!pre || !lines || !/pre/i.test(pre.nodeName)) {
|
187
|
+
return;
|
188
|
+
}
|
104
189
|
|
105
|
-
|
106
|
-
}
|
190
|
+
clearTimeout(fakeTimer);
|
107
191
|
|
108
|
-
var
|
192
|
+
var hasLineNumbers = Prism.plugins.lineNumbers;
|
193
|
+
var isLineNumbersLoaded = env.plugins && env.plugins.lineNumbers;
|
109
194
|
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
clearTimeout(fakeTimer);
|
119
|
-
|
120
|
-
$$('.line-highlight', pre).forEach(function (line) {
|
121
|
-
line.parentNode.removeChild(line);
|
195
|
+
if (hasClass(pre, 'line-numbers') && hasLineNumbers && !isLineNumbersLoaded) {
|
196
|
+
Prism.hooks.add('line-numbers', completeHook);
|
197
|
+
} else {
|
198
|
+
var mutateDom = highlightLines(pre, lines);
|
199
|
+
mutateDom();
|
200
|
+
fakeTimer = setTimeout(applyHash, 1);
|
201
|
+
}
|
122
202
|
});
|
123
|
-
|
124
|
-
highlightLines(pre, lines);
|
125
|
-
|
126
|
-
fakeTimer = setTimeout(applyHash, 1);
|
127
|
-
});
|
128
203
|
|
129
|
-
if(window.addEventListener) {
|
130
204
|
window.addEventListener('hashchange', applyHash);
|
131
|
-
|
205
|
+
window.addEventListener('resize', function () {
|
206
|
+
var actions = [];
|
207
|
+
$$('pre[data-line]').forEach(function (pre) {
|
208
|
+
actions.push(highlightLines(pre));
|
209
|
+
});
|
210
|
+
actions.forEach(callFunction);
|
211
|
+
});
|
132
212
|
|
133
213
|
})();
|
@@ -1,57 +1,168 @@
|
|
1
|
-
(function() {
|
1
|
+
(function () {
|
2
2
|
|
3
|
-
if (typeof self === 'undefined' || !self.Prism || !self.document) {
|
4
|
-
return;
|
5
|
-
}
|
6
|
-
|
7
|
-
Prism.hooks.add('complete', function (env) {
|
8
|
-
if (!env.code) {
|
3
|
+
if (typeof self === 'undefined' || !self.Prism || !self.document) {
|
9
4
|
return;
|
10
5
|
}
|
11
6
|
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
7
|
+
/**
|
8
|
+
* Plugin name which is used as a class name for <pre> which is activating the plugin
|
9
|
+
* @type {String}
|
10
|
+
*/
|
11
|
+
var PLUGIN_NAME = 'line-numbers';
|
12
|
+
|
13
|
+
/**
|
14
|
+
* Regular expression used for determining line breaks
|
15
|
+
* @type {RegExp}
|
16
|
+
*/
|
17
|
+
var NEW_LINE_EXP = /\n(?!$)/g;
|
18
|
+
|
19
|
+
/**
|
20
|
+
* Resizes line numbers spans according to height of line of code
|
21
|
+
* @param {Element} element <pre> element
|
22
|
+
*/
|
23
|
+
var _resizeElement = function (element) {
|
24
|
+
var codeStyles = getStyles(element);
|
25
|
+
var whiteSpace = codeStyles['white-space'];
|
26
|
+
|
27
|
+
if (whiteSpace === 'pre-wrap' || whiteSpace === 'pre-line') {
|
28
|
+
var codeElement = element.querySelector('code');
|
29
|
+
var lineNumbersWrapper = element.querySelector('.line-numbers-rows');
|
30
|
+
var lineNumberSizer = element.querySelector('.line-numbers-sizer');
|
31
|
+
var codeLines = codeElement.textContent.split(NEW_LINE_EXP);
|
32
|
+
|
33
|
+
if (!lineNumberSizer) {
|
34
|
+
lineNumberSizer = document.createElement('span');
|
35
|
+
lineNumberSizer.className = 'line-numbers-sizer';
|
36
|
+
|
37
|
+
codeElement.appendChild(lineNumberSizer);
|
38
|
+
}
|
39
|
+
|
40
|
+
lineNumberSizer.style.display = 'block';
|
41
|
+
|
42
|
+
codeLines.forEach(function (line, lineNumber) {
|
43
|
+
lineNumberSizer.textContent = line || '\n';
|
44
|
+
var lineSize = lineNumberSizer.getBoundingClientRect().height;
|
45
|
+
lineNumbersWrapper.children[lineNumber].style.height = lineSize + 'px';
|
46
|
+
});
|
47
|
+
|
48
|
+
lineNumberSizer.textContent = '';
|
49
|
+
lineNumberSizer.style.display = 'none';
|
50
|
+
}
|
51
|
+
};
|
52
|
+
|
53
|
+
/**
|
54
|
+
* Returns style declarations for the element
|
55
|
+
* @param {Element} element
|
56
|
+
*/
|
57
|
+
var getStyles = function (element) {
|
58
|
+
if (!element) {
|
59
|
+
return null;
|
60
|
+
}
|
61
|
+
|
62
|
+
return window.getComputedStyle ? getComputedStyle(element) : (element.currentStyle || null);
|
63
|
+
};
|
64
|
+
|
65
|
+
window.addEventListener('resize', function () {
|
66
|
+
Array.prototype.forEach.call(document.querySelectorAll('pre.' + PLUGIN_NAME), _resizeElement);
|
67
|
+
});
|
68
|
+
|
69
|
+
Prism.hooks.add('complete', function (env) {
|
70
|
+
if (!env.code) {
|
71
|
+
return;
|
72
|
+
}
|
73
|
+
|
74
|
+
var code = env.element;
|
75
|
+
var pre = code.parentNode;
|
76
|
+
|
77
|
+
// works only for <code> wrapped inside <pre> (not inline)
|
78
|
+
if (!pre || !/pre/i.test(pre.nodeName)) {
|
79
|
+
return;
|
80
|
+
}
|
22
81
|
|
23
|
-
if (env.element.querySelector(".line-numbers-rows")) {
|
24
82
|
// Abort if line numbers already exists
|
25
|
-
|
26
|
-
|
83
|
+
if (code.querySelector('.line-numbers-rows')) {
|
84
|
+
return;
|
85
|
+
}
|
27
86
|
|
28
|
-
|
29
|
-
|
30
|
-
env.element.className = env.element.className.replace(clsReg, '');
|
31
|
-
}
|
32
|
-
if (!clsReg.test(pre.className)) {
|
33
|
-
// Add the class "line-numbers" to the <pre>
|
34
|
-
pre.className += ' line-numbers';
|
35
|
-
}
|
87
|
+
var addLineNumbers = false;
|
88
|
+
var lineNumbersRegex = /(?:^|\s)line-numbers(?:\s|$)/;
|
36
89
|
|
37
|
-
|
38
|
-
|
39
|
-
|
90
|
+
for (var element = code; element; element = element.parentNode) {
|
91
|
+
if (lineNumbersRegex.test(element.className)) {
|
92
|
+
addLineNumbers = true;
|
93
|
+
break;
|
94
|
+
}
|
95
|
+
}
|
40
96
|
|
41
|
-
|
42
|
-
|
97
|
+
// only add line numbers if <code> or one of its ancestors has the `line-numbers` class
|
98
|
+
if (!addLineNumbers) {
|
99
|
+
return;
|
100
|
+
}
|
43
101
|
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
102
|
+
// Remove the class 'line-numbers' from the <code>
|
103
|
+
code.className = code.className.replace(lineNumbersRegex, ' ');
|
104
|
+
// Add the class 'line-numbers' to the <pre>
|
105
|
+
if (!lineNumbersRegex.test(pre.className)) {
|
106
|
+
pre.className += ' line-numbers';
|
107
|
+
}
|
48
108
|
|
49
|
-
|
50
|
-
|
51
|
-
|
109
|
+
var match = env.code.match(NEW_LINE_EXP);
|
110
|
+
var linesNum = match ? match.length + 1 : 1;
|
111
|
+
var lineNumbersWrapper;
|
112
|
+
|
113
|
+
var lines = new Array(linesNum + 1).join('<span></span>');
|
114
|
+
|
115
|
+
lineNumbersWrapper = document.createElement('span');
|
116
|
+
lineNumbersWrapper.setAttribute('aria-hidden', 'true');
|
117
|
+
lineNumbersWrapper.className = 'line-numbers-rows';
|
118
|
+
lineNumbersWrapper.innerHTML = lines;
|
119
|
+
|
120
|
+
if (pre.hasAttribute('data-start')) {
|
121
|
+
pre.style.counterReset = 'linenumber ' + (parseInt(pre.getAttribute('data-start'), 10) - 1);
|
122
|
+
}
|
123
|
+
|
124
|
+
env.element.appendChild(lineNumbersWrapper);
|
125
|
+
|
126
|
+
_resizeElement(pre);
|
127
|
+
|
128
|
+
Prism.hooks.run('line-numbers', env);
|
129
|
+
});
|
130
|
+
|
131
|
+
Prism.hooks.add('line-numbers', function (env) {
|
132
|
+
env.plugins = env.plugins || {};
|
133
|
+
env.plugins.lineNumbers = true;
|
134
|
+
});
|
135
|
+
|
136
|
+
/**
|
137
|
+
* Global exports
|
138
|
+
*/
|
139
|
+
Prism.plugins.lineNumbers = {
|
140
|
+
/**
|
141
|
+
* Get node for provided line number
|
142
|
+
* @param {Element} element pre element
|
143
|
+
* @param {Number} number line number
|
144
|
+
* @return {Element|undefined}
|
145
|
+
*/
|
146
|
+
getLine: function (element, number) {
|
147
|
+
if (element.tagName !== 'PRE' || !element.classList.contains(PLUGIN_NAME)) {
|
148
|
+
return;
|
149
|
+
}
|
150
|
+
|
151
|
+
var lineNumberRows = element.querySelector('.line-numbers-rows');
|
152
|
+
var lineNumberStart = parseInt(element.getAttribute('data-start'), 10) || 1;
|
153
|
+
var lineNumberEnd = lineNumberStart + (lineNumberRows.children.length - 1);
|
154
|
+
|
155
|
+
if (number < lineNumberStart) {
|
156
|
+
number = lineNumberStart;
|
157
|
+
}
|
158
|
+
if (number > lineNumberEnd) {
|
159
|
+
number = lineNumberEnd;
|
160
|
+
}
|
52
161
|
|
53
|
-
|
162
|
+
var lineIndex = number - lineNumberStart;
|
54
163
|
|
55
|
-
|
164
|
+
return lineNumberRows.children[lineIndex];
|
165
|
+
}
|
166
|
+
};
|
56
167
|
|
57
|
-
}());
|
168
|
+
}());
|