gitlab-pygments.rb 0.3.2
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +6 -0
- data/Gemfile +2 -0
- data/README.md +91 -0
- data/Rakefile +78 -0
- data/bench.rb +22 -0
- data/cache-lexers.rb +8 -0
- data/lexers +0 -0
- data/lib/pygments/lexer.rb +148 -0
- data/lib/pygments/mentos.py +344 -0
- data/lib/pygments/popen.rb +389 -0
- data/lib/pygments/version.rb +3 -0
- data/lib/pygments.rb +8 -0
- data/pygments.rb.gemspec +24 -0
- data/test/test_data.c +2581 -0
- data/test/test_data.py +514 -0
- data/test/test_data_generated +2582 -0
- data/test/test_pygments.rb +276 -0
- data/vendor/custom_formatters/gitlab.py +171 -0
- data/vendor/custom_lexers/github.py +362 -0
- data/vendor/pygments-main/AUTHORS +115 -0
- data/vendor/pygments-main/CHANGES +762 -0
- data/vendor/pygments-main/LICENSE +25 -0
- data/vendor/pygments-main/MANIFEST.in +6 -0
- data/vendor/pygments-main/Makefile +59 -0
- data/vendor/pygments-main/REVISION +1 -0
- data/vendor/pygments-main/TODO +15 -0
- data/vendor/pygments-main/docs/generate.py +472 -0
- data/vendor/pygments-main/docs/pygmentize.1 +94 -0
- data/vendor/pygments-main/docs/src/api.txt +270 -0
- data/vendor/pygments-main/docs/src/authors.txt +5 -0
- data/vendor/pygments-main/docs/src/changelog.txt +5 -0
- data/vendor/pygments-main/docs/src/cmdline.txt +147 -0
- data/vendor/pygments-main/docs/src/filterdevelopment.txt +70 -0
- data/vendor/pygments-main/docs/src/filters.txt +42 -0
- data/vendor/pygments-main/docs/src/formatterdevelopment.txt +169 -0
- data/vendor/pygments-main/docs/src/formatters.txt +48 -0
- data/vendor/pygments-main/docs/src/index.txt +69 -0
- data/vendor/pygments-main/docs/src/installation.txt +71 -0
- data/vendor/pygments-main/docs/src/integrate.txt +43 -0
- data/vendor/pygments-main/docs/src/lexerdevelopment.txt +551 -0
- data/vendor/pygments-main/docs/src/lexers.txt +67 -0
- data/vendor/pygments-main/docs/src/moinmoin.txt +39 -0
- data/vendor/pygments-main/docs/src/plugins.txt +93 -0
- data/vendor/pygments-main/docs/src/quickstart.txt +202 -0
- data/vendor/pygments-main/docs/src/rstdirective.txt +22 -0
- data/vendor/pygments-main/docs/src/styles.txt +143 -0
- data/vendor/pygments-main/docs/src/tokens.txt +349 -0
- data/vendor/pygments-main/docs/src/unicode.txt +49 -0
- data/vendor/pygments-main/external/markdown-processor.py +67 -0
- data/vendor/pygments-main/external/moin-parser.py +112 -0
- data/vendor/pygments-main/external/pygments.bashcomp +38 -0
- data/vendor/pygments-main/external/rst-directive-old.py +77 -0
- data/vendor/pygments-main/external/rst-directive.py +83 -0
- data/vendor/pygments-main/ez_setup.py +276 -0
- data/vendor/pygments-main/pygmentize +7 -0
- data/vendor/pygments-main/pygments/__init__.py +91 -0
- data/vendor/pygments-main/pygments/cmdline.py +433 -0
- data/vendor/pygments-main/pygments/console.py +74 -0
- data/vendor/pygments-main/pygments/filter.py +74 -0
- data/vendor/pygments-main/pygments/filters/__init__.py +357 -0
- data/vendor/pygments-main/pygments/formatter.py +92 -0
- data/vendor/pygments-main/pygments/formatters/__init__.py +68 -0
- data/vendor/pygments-main/pygments/formatters/_mapping.py +94 -0
- data/vendor/pygments-main/pygments/formatters/bbcode.py +109 -0
- data/vendor/pygments-main/pygments/formatters/gitlab.py +171 -0
- data/vendor/pygments-main/pygments/formatters/html.py +750 -0
- data/vendor/pygments-main/pygments/formatters/img.py +553 -0
- data/vendor/pygments-main/pygments/formatters/latex.py +378 -0
- data/vendor/pygments-main/pygments/formatters/other.py +117 -0
- data/vendor/pygments-main/pygments/formatters/rtf.py +136 -0
- data/vendor/pygments-main/pygments/formatters/svg.py +154 -0
- data/vendor/pygments-main/pygments/formatters/terminal.py +112 -0
- data/vendor/pygments-main/pygments/formatters/terminal256.py +222 -0
- data/vendor/pygments-main/pygments/lexer.py +697 -0
- data/vendor/pygments-main/pygments/lexers/__init__.py +229 -0
- data/vendor/pygments-main/pygments/lexers/_asybuiltins.py +1645 -0
- data/vendor/pygments-main/pygments/lexers/_clbuiltins.py +232 -0
- data/vendor/pygments-main/pygments/lexers/_luabuiltins.py +249 -0
- data/vendor/pygments-main/pygments/lexers/_mapping.py +298 -0
- data/vendor/pygments-main/pygments/lexers/_phpbuiltins.py +3787 -0
- data/vendor/pygments-main/pygments/lexers/_postgres_builtins.py +232 -0
- data/vendor/pygments-main/pygments/lexers/_scilab_builtins.py +29 -0
- data/vendor/pygments-main/pygments/lexers/_vimbuiltins.py +3 -0
- data/vendor/pygments-main/pygments/lexers/agile.py +1803 -0
- data/vendor/pygments-main/pygments/lexers/asm.py +360 -0
- data/vendor/pygments-main/pygments/lexers/compiled.py +2891 -0
- data/vendor/pygments-main/pygments/lexers/dotnet.py +636 -0
- data/vendor/pygments-main/pygments/lexers/functional.py +1832 -0
- data/vendor/pygments-main/pygments/lexers/github.py +362 -0
- data/vendor/pygments-main/pygments/lexers/hdl.py +356 -0
- data/vendor/pygments-main/pygments/lexers/jvm.py +847 -0
- data/vendor/pygments-main/pygments/lexers/math.py +1072 -0
- data/vendor/pygments-main/pygments/lexers/other.py +3339 -0
- data/vendor/pygments-main/pygments/lexers/parsers.py +695 -0
- data/vendor/pygments-main/pygments/lexers/shell.py +361 -0
- data/vendor/pygments-main/pygments/lexers/special.py +100 -0
- data/vendor/pygments-main/pygments/lexers/sql.py +559 -0
- data/vendor/pygments-main/pygments/lexers/templates.py +1631 -0
- data/vendor/pygments-main/pygments/lexers/text.py +1753 -0
- data/vendor/pygments-main/pygments/lexers/web.py +2864 -0
- data/vendor/pygments-main/pygments/plugin.py +74 -0
- data/vendor/pygments-main/pygments/scanner.py +104 -0
- data/vendor/pygments-main/pygments/style.py +117 -0
- data/vendor/pygments-main/pygments/styles/__init__.py +70 -0
- data/vendor/pygments-main/pygments/styles/autumn.py +65 -0
- data/vendor/pygments-main/pygments/styles/borland.py +51 -0
- data/vendor/pygments-main/pygments/styles/bw.py +49 -0
- data/vendor/pygments-main/pygments/styles/colorful.py +81 -0
- data/vendor/pygments-main/pygments/styles/default.py +73 -0
- data/vendor/pygments-main/pygments/styles/emacs.py +72 -0
- data/vendor/pygments-main/pygments/styles/friendly.py +72 -0
- data/vendor/pygments-main/pygments/styles/fruity.py +42 -0
- data/vendor/pygments-main/pygments/styles/manni.py +75 -0
- data/vendor/pygments-main/pygments/styles/monokai.py +106 -0
- data/vendor/pygments-main/pygments/styles/murphy.py +80 -0
- data/vendor/pygments-main/pygments/styles/native.py +65 -0
- data/vendor/pygments-main/pygments/styles/pastie.py +75 -0
- data/vendor/pygments-main/pygments/styles/perldoc.py +69 -0
- data/vendor/pygments-main/pygments/styles/rrt.py +33 -0
- data/vendor/pygments-main/pygments/styles/tango.py +141 -0
- data/vendor/pygments-main/pygments/styles/trac.py +63 -0
- data/vendor/pygments-main/pygments/styles/vim.py +63 -0
- data/vendor/pygments-main/pygments/styles/vs.py +38 -0
- data/vendor/pygments-main/pygments/token.py +195 -0
- data/vendor/pygments-main/pygments/unistring.py +130 -0
- data/vendor/pygments-main/pygments/util.py +232 -0
- data/vendor/pygments-main/scripts/check_sources.py +242 -0
- data/vendor/pygments-main/scripts/detect_missing_analyse_text.py +30 -0
- data/vendor/pygments-main/scripts/epydoc.css +280 -0
- data/vendor/pygments-main/scripts/find_codetags.py +205 -0
- data/vendor/pygments-main/scripts/find_error.py +171 -0
- data/vendor/pygments-main/scripts/get_vimkw.py +43 -0
- data/vendor/pygments-main/scripts/pylintrc +301 -0
- data/vendor/pygments-main/scripts/reindent.py +291 -0
- data/vendor/pygments-main/scripts/vim2pygments.py +933 -0
- data/vendor/pygments-main/setup.cfg +6 -0
- data/vendor/pygments-main/setup.py +88 -0
- data/vendor/pygments-main/tests/dtds/HTML4-f.dtd +37 -0
- data/vendor/pygments-main/tests/dtds/HTML4-s.dtd +869 -0
- data/vendor/pygments-main/tests/dtds/HTML4.dcl +88 -0
- data/vendor/pygments-main/tests/dtds/HTML4.dtd +1092 -0
- data/vendor/pygments-main/tests/dtds/HTML4.soc +9 -0
- data/vendor/pygments-main/tests/dtds/HTMLlat1.ent +195 -0
- data/vendor/pygments-main/tests/dtds/HTMLspec.ent +77 -0
- data/vendor/pygments-main/tests/dtds/HTMLsym.ent +241 -0
- data/vendor/pygments-main/tests/examplefiles/ANTLRv3.g +608 -0
- data/vendor/pygments-main/tests/examplefiles/AcidStateAdvanced.hs +209 -0
- data/vendor/pygments-main/tests/examplefiles/AlternatingGroup.mu +102 -0
- data/vendor/pygments-main/tests/examplefiles/CPDictionary.j +611 -0
- data/vendor/pygments-main/tests/examplefiles/Constants.mo +158 -0
- data/vendor/pygments-main/tests/examplefiles/DancingSudoku.lhs +411 -0
- data/vendor/pygments-main/tests/examplefiles/Errors.scala +18 -0
- data/vendor/pygments-main/tests/examplefiles/File.hy +174 -0
- data/vendor/pygments-main/tests/examplefiles/Intro.java +1660 -0
- data/vendor/pygments-main/tests/examplefiles/Makefile +1131 -0
- data/vendor/pygments-main/tests/examplefiles/Object.st +4394 -0
- data/vendor/pygments-main/tests/examplefiles/OrderedMap.hx +584 -0
- data/vendor/pygments-main/tests/examplefiles/SmallCheck.hs +378 -0
- data/vendor/pygments-main/tests/examplefiles/Sorting.mod +470 -0
- data/vendor/pygments-main/tests/examplefiles/Sudoku.lhs +382 -0
- data/vendor/pygments-main/tests/examplefiles/addressbook.proto +30 -0
- data/vendor/pygments-main/tests/examplefiles/antlr_throws +1 -0
- data/vendor/pygments-main/tests/examplefiles/apache2.conf +393 -0
- data/vendor/pygments-main/tests/examplefiles/as3_test.as +143 -0
- data/vendor/pygments-main/tests/examplefiles/as3_test2.as +46 -0
- data/vendor/pygments-main/tests/examplefiles/as3_test3.as +3 -0
- data/vendor/pygments-main/tests/examplefiles/aspx-cs_example +27 -0
- data/vendor/pygments-main/tests/examplefiles/badcase.java +2 -0
- data/vendor/pygments-main/tests/examplefiles/batchfile.bat +49 -0
- data/vendor/pygments-main/tests/examplefiles/boot-9.scm +1557 -0
- data/vendor/pygments-main/tests/examplefiles/cells.ps +515 -0
- data/vendor/pygments-main/tests/examplefiles/ceval.c +2604 -0
- data/vendor/pygments-main/tests/examplefiles/cheetah_example.html +13 -0
- data/vendor/pygments-main/tests/examplefiles/classes.dylan +40 -0
- data/vendor/pygments-main/tests/examplefiles/condensed_ruby.rb +10 -0
- data/vendor/pygments-main/tests/examplefiles/coq_RelationClasses +447 -0
- data/vendor/pygments-main/tests/examplefiles/database.pytb +20 -0
- data/vendor/pygments-main/tests/examplefiles/de.MoinMoin.po +2461 -0
- data/vendor/pygments-main/tests/examplefiles/demo.ahk +181 -0
- data/vendor/pygments-main/tests/examplefiles/demo.cfm +38 -0
- data/vendor/pygments-main/tests/examplefiles/django_sample.html+django +68 -0
- data/vendor/pygments-main/tests/examplefiles/dwarf.cw +17 -0
- data/vendor/pygments-main/tests/examplefiles/erl_session +10 -0
- data/vendor/pygments-main/tests/examplefiles/escape_semicolon.clj +1 -0
- data/vendor/pygments-main/tests/examplefiles/evil_regex.js +48 -0
- data/vendor/pygments-main/tests/examplefiles/example.c +2080 -0
- data/vendor/pygments-main/tests/examplefiles/example.cls +15 -0
- data/vendor/pygments-main/tests/examplefiles/example.cpp +2363 -0
- data/vendor/pygments-main/tests/examplefiles/example.gs +106 -0
- data/vendor/pygments-main/tests/examplefiles/example.gst +7 -0
- data/vendor/pygments-main/tests/examplefiles/example.kt +47 -0
- data/vendor/pygments-main/tests/examplefiles/example.lua +250 -0
- data/vendor/pygments-main/tests/examplefiles/example.moo +26 -0
- data/vendor/pygments-main/tests/examplefiles/example.moon +629 -0
- data/vendor/pygments-main/tests/examplefiles/example.nim +1010 -0
- data/vendor/pygments-main/tests/examplefiles/example.ns2 +69 -0
- data/vendor/pygments-main/tests/examplefiles/example.p +34 -0
- data/vendor/pygments-main/tests/examplefiles/example.pas +2708 -0
- data/vendor/pygments-main/tests/examplefiles/example.rb +1852 -0
- data/vendor/pygments-main/tests/examplefiles/example.rhtml +561 -0
- data/vendor/pygments-main/tests/examplefiles/example.sh-session +19 -0
- data/vendor/pygments-main/tests/examplefiles/example.sml +156 -0
- data/vendor/pygments-main/tests/examplefiles/example.snobol +15 -0
- data/vendor/pygments-main/tests/examplefiles/example.tea +34 -0
- data/vendor/pygments-main/tests/examplefiles/example.u +548 -0
- data/vendor/pygments-main/tests/examplefiles/example.weechatlog +9 -0
- data/vendor/pygments-main/tests/examplefiles/example.xhtml +376 -0
- data/vendor/pygments-main/tests/examplefiles/example.yaml +302 -0
- data/vendor/pygments-main/tests/examplefiles/example2.aspx +29 -0
- data/vendor/pygments-main/tests/examplefiles/example_elixir.ex +363 -0
- data/vendor/pygments-main/tests/examplefiles/example_file.fy +128 -0
- data/vendor/pygments-main/tests/examplefiles/firefox.mak +586 -0
- data/vendor/pygments-main/tests/examplefiles/flipflop.sv +19 -0
- data/vendor/pygments-main/tests/examplefiles/foo.sce +6 -0
- data/vendor/pygments-main/tests/examplefiles/format.ml +1213 -0
- data/vendor/pygments-main/tests/examplefiles/fucked_up.rb +77 -0
- data/vendor/pygments-main/tests/examplefiles/function.mu +1 -0
- data/vendor/pygments-main/tests/examplefiles/functional.rst +1472 -0
- data/vendor/pygments-main/tests/examplefiles/genclass.clj +510 -0
- data/vendor/pygments-main/tests/examplefiles/genshi_example.xml+genshi +193 -0
- data/vendor/pygments-main/tests/examplefiles/genshitext_example.genshitext +33 -0
- data/vendor/pygments-main/tests/examplefiles/glsl.frag +7 -0
- data/vendor/pygments-main/tests/examplefiles/glsl.vert +13 -0
- data/vendor/pygments-main/tests/examplefiles/html+php_faulty.php +1 -0
- data/vendor/pygments-main/tests/examplefiles/http_request_example +14 -0
- data/vendor/pygments-main/tests/examplefiles/http_response_example +27 -0
- data/vendor/pygments-main/tests/examplefiles/import.hs +4 -0
- data/vendor/pygments-main/tests/examplefiles/intro.ik +24 -0
- data/vendor/pygments-main/tests/examplefiles/ints.php +10 -0
- data/vendor/pygments-main/tests/examplefiles/intsyn.fun +675 -0
- data/vendor/pygments-main/tests/examplefiles/intsyn.sig +286 -0
- data/vendor/pygments-main/tests/examplefiles/irb_heredoc +8 -0
- data/vendor/pygments-main/tests/examplefiles/irc.lsp +214 -0
- data/vendor/pygments-main/tests/examplefiles/java.properties +16 -0
- data/vendor/pygments-main/tests/examplefiles/jbst_example1.jbst +28 -0
- data/vendor/pygments-main/tests/examplefiles/jbst_example2.jbst +45 -0
- data/vendor/pygments-main/tests/examplefiles/jinjadesignerdoc.rst +713 -0
- data/vendor/pygments-main/tests/examplefiles/lighttpd_config.conf +13 -0
- data/vendor/pygments-main/tests/examplefiles/linecontinuation.py +47 -0
- data/vendor/pygments-main/tests/examplefiles/ltmain.sh +2849 -0
- data/vendor/pygments-main/tests/examplefiles/main.cmake +42 -0
- data/vendor/pygments-main/tests/examplefiles/markdown.lsp +679 -0
- data/vendor/pygments-main/tests/examplefiles/matlab_noreturn +3 -0
- data/vendor/pygments-main/tests/examplefiles/matlab_sample +27 -0
- data/vendor/pygments-main/tests/examplefiles/matlabsession_sample.txt +37 -0
- data/vendor/pygments-main/tests/examplefiles/minimal.ns2 +4 -0
- data/vendor/pygments-main/tests/examplefiles/moin_SyntaxReference.txt +340 -0
- data/vendor/pygments-main/tests/examplefiles/multiline_regexes.rb +38 -0
- data/vendor/pygments-main/tests/examplefiles/nasm_aoutso.asm +96 -0
- data/vendor/pygments-main/tests/examplefiles/nasm_objexe.asm +30 -0
- data/vendor/pygments-main/tests/examplefiles/nemerle_sample.n +87 -0
- data/vendor/pygments-main/tests/examplefiles/nginx_nginx.conf +118 -0
- data/vendor/pygments-main/tests/examplefiles/numbers.c +12 -0
- data/vendor/pygments-main/tests/examplefiles/objc_example.m +25 -0
- data/vendor/pygments-main/tests/examplefiles/objc_example2.m +24 -0
- data/vendor/pygments-main/tests/examplefiles/perl_misc +62 -0
- data/vendor/pygments-main/tests/examplefiles/perl_perl5db +998 -0
- data/vendor/pygments-main/tests/examplefiles/perl_regex-delims +120 -0
- data/vendor/pygments-main/tests/examplefiles/perlfunc.1 +856 -0
- data/vendor/pygments-main/tests/examplefiles/phpcomplete.vim +567 -0
- data/vendor/pygments-main/tests/examplefiles/pleac.in.rb +1223 -0
- data/vendor/pygments-main/tests/examplefiles/postgresql_test.txt +47 -0
- data/vendor/pygments-main/tests/examplefiles/pppoe.applescript +10 -0
- data/vendor/pygments-main/tests/examplefiles/psql_session.txt +122 -0
- data/vendor/pygments-main/tests/examplefiles/py3_test.txt +2 -0
- data/vendor/pygments-main/tests/examplefiles/pycon_test.pycon +14 -0
- data/vendor/pygments-main/tests/examplefiles/pytb_test2.pytb +2 -0
- data/vendor/pygments-main/tests/examplefiles/python25-bsd.mak +234 -0
- data/vendor/pygments-main/tests/examplefiles/qsort.prolog +13 -0
- data/vendor/pygments-main/tests/examplefiles/r-console-transcript.Rout +38 -0
- data/vendor/pygments-main/tests/examplefiles/ragel-cpp_rlscan +280 -0
- data/vendor/pygments-main/tests/examplefiles/ragel-cpp_snippet +2 -0
- data/vendor/pygments-main/tests/examplefiles/regex.js +22 -0
- data/vendor/pygments-main/tests/examplefiles/reversi.lsp +427 -0
- data/vendor/pygments-main/tests/examplefiles/ruby_func_def.rb +11 -0
- data/vendor/pygments-main/tests/examplefiles/scilab.sci +30 -0
- data/vendor/pygments-main/tests/examplefiles/sibling.prolog +19 -0
- data/vendor/pygments-main/tests/examplefiles/simple.md +747 -0
- data/vendor/pygments-main/tests/examplefiles/smarty_example.html +209 -0
- data/vendor/pygments-main/tests/examplefiles/source.lgt +343 -0
- data/vendor/pygments-main/tests/examplefiles/sources.list +62 -0
- data/vendor/pygments-main/tests/examplefiles/sphere.pov +18 -0
- data/vendor/pygments-main/tests/examplefiles/sqlite3.sqlite3-console +27 -0
- data/vendor/pygments-main/tests/examplefiles/squid.conf +30 -0
- data/vendor/pygments-main/tests/examplefiles/string.jl +1031 -0
- data/vendor/pygments-main/tests/examplefiles/string_delimiters.d +21 -0
- data/vendor/pygments-main/tests/examplefiles/stripheredoc.sh +3 -0
- data/vendor/pygments-main/tests/examplefiles/test.R +119 -0
- data/vendor/pygments-main/tests/examplefiles/test.adb +211 -0
- data/vendor/pygments-main/tests/examplefiles/test.asy +131 -0
- data/vendor/pygments-main/tests/examplefiles/test.awk +121 -0
- data/vendor/pygments-main/tests/examplefiles/test.bas +29 -0
- data/vendor/pygments-main/tests/examplefiles/test.bmx +145 -0
- data/vendor/pygments-main/tests/examplefiles/test.boo +39 -0
- data/vendor/pygments-main/tests/examplefiles/test.bro +250 -0
- data/vendor/pygments-main/tests/examplefiles/test.cs +374 -0
- data/vendor/pygments-main/tests/examplefiles/test.css +54 -0
- data/vendor/pygments-main/tests/examplefiles/test.d +135 -0
- data/vendor/pygments-main/tests/examplefiles/test.dart +23 -0
- data/vendor/pygments-main/tests/examplefiles/test.dtd +89 -0
- data/vendor/pygments-main/tests/examplefiles/test.ec +605 -0
- data/vendor/pygments-main/tests/examplefiles/test.ecl +58 -0
- data/vendor/pygments-main/tests/examplefiles/test.eh +315 -0
- data/vendor/pygments-main/tests/examplefiles/test.erl +169 -0
- data/vendor/pygments-main/tests/examplefiles/test.evoque +33 -0
- data/vendor/pygments-main/tests/examplefiles/test.fan +818 -0
- data/vendor/pygments-main/tests/examplefiles/test.flx +57 -0
- data/vendor/pygments-main/tests/examplefiles/test.gdc +13 -0
- data/vendor/pygments-main/tests/examplefiles/test.groovy +97 -0
- data/vendor/pygments-main/tests/examplefiles/test.html +339 -0
- data/vendor/pygments-main/tests/examplefiles/test.ini +10 -0
- data/vendor/pygments-main/tests/examplefiles/test.java +653 -0
- data/vendor/pygments-main/tests/examplefiles/test.jsp +24 -0
- data/vendor/pygments-main/tests/examplefiles/test.maql +45 -0
- data/vendor/pygments-main/tests/examplefiles/test.mod +374 -0
- data/vendor/pygments-main/tests/examplefiles/test.moo +51 -0
- data/vendor/pygments-main/tests/examplefiles/test.myt +166 -0
- data/vendor/pygments-main/tests/examplefiles/test.nim +93 -0
- data/vendor/pygments-main/tests/examplefiles/test.pas +743 -0
- data/vendor/pygments-main/tests/examplefiles/test.php +505 -0
- data/vendor/pygments-main/tests/examplefiles/test.plot +333 -0
- data/vendor/pygments-main/tests/examplefiles/test.ps1 +108 -0
- data/vendor/pygments-main/tests/examplefiles/test.pypylog +1839 -0
- data/vendor/pygments-main/tests/examplefiles/test.r3 +94 -0
- data/vendor/pygments-main/tests/examplefiles/test.rb +177 -0
- data/vendor/pygments-main/tests/examplefiles/test.rhtml +43 -0
- data/vendor/pygments-main/tests/examplefiles/test.scaml +8 -0
- data/vendor/pygments-main/tests/examplefiles/test.ssp +12 -0
- data/vendor/pygments-main/tests/examplefiles/test.tcsh +830 -0
- data/vendor/pygments-main/tests/examplefiles/test.vb +407 -0
- data/vendor/pygments-main/tests/examplefiles/test.vhdl +161 -0
- data/vendor/pygments-main/tests/examplefiles/test.xqy +138 -0
- data/vendor/pygments-main/tests/examplefiles/test.xsl +23 -0
- data/vendor/pygments-main/tests/examplefiles/truncated.pytb +15 -0
- data/vendor/pygments-main/tests/examplefiles/type.lisp +1202 -0
- data/vendor/pygments-main/tests/examplefiles/underscore.coffee +603 -0
- data/vendor/pygments-main/tests/examplefiles/unicode.applescript +5 -0
- data/vendor/pygments-main/tests/examplefiles/unicodedoc.py +11 -0
- data/vendor/pygments-main/tests/examplefiles/webkit-transition.css +3 -0
- data/vendor/pygments-main/tests/examplefiles/while.pov +13 -0
- data/vendor/pygments-main/tests/examplefiles/wiki.factor +384 -0
- data/vendor/pygments-main/tests/examplefiles/xml_example +1897 -0
- data/vendor/pygments-main/tests/examplefiles/zmlrpc.f90 +798 -0
- data/vendor/pygments-main/tests/old_run.py +138 -0
- data/vendor/pygments-main/tests/run.py +48 -0
- data/vendor/pygments-main/tests/support.py +15 -0
- data/vendor/pygments-main/tests/test_basic_api.py +294 -0
- data/vendor/pygments-main/tests/test_clexer.py +31 -0
- data/vendor/pygments-main/tests/test_cmdline.py +105 -0
- data/vendor/pygments-main/tests/test_examplefiles.py +97 -0
- data/vendor/pygments-main/tests/test_html_formatter.py +162 -0
- data/vendor/pygments-main/tests/test_latex_formatter.py +55 -0
- data/vendor/pygments-main/tests/test_perllexer.py +137 -0
- data/vendor/pygments-main/tests/test_regexlexer.py +47 -0
- data/vendor/pygments-main/tests/test_token.py +46 -0
- data/vendor/pygments-main/tests/test_using_api.py +40 -0
- data/vendor/pygments-main/tests/test_util.py +116 -0
- data/vendor/simplejson/.gitignore +10 -0
- data/vendor/simplejson/.travis.yml +5 -0
- data/vendor/simplejson/CHANGES.txt +291 -0
- data/vendor/simplejson/LICENSE.txt +19 -0
- data/vendor/simplejson/MANIFEST.in +5 -0
- data/vendor/simplejson/README.rst +19 -0
- data/vendor/simplejson/conf.py +179 -0
- data/vendor/simplejson/index.rst +628 -0
- data/vendor/simplejson/scripts/make_docs.py +18 -0
- data/vendor/simplejson/setup.py +104 -0
- data/vendor/simplejson/simplejson/__init__.py +510 -0
- data/vendor/simplejson/simplejson/_speedups.c +2745 -0
- data/vendor/simplejson/simplejson/decoder.py +425 -0
- data/vendor/simplejson/simplejson/encoder.py +567 -0
- data/vendor/simplejson/simplejson/ordered_dict.py +119 -0
- data/vendor/simplejson/simplejson/scanner.py +77 -0
- data/vendor/simplejson/simplejson/tests/__init__.py +67 -0
- data/vendor/simplejson/simplejson/tests/test_bigint_as_string.py +55 -0
- data/vendor/simplejson/simplejson/tests/test_check_circular.py +30 -0
- data/vendor/simplejson/simplejson/tests/test_decimal.py +66 -0
- data/vendor/simplejson/simplejson/tests/test_decode.py +83 -0
- data/vendor/simplejson/simplejson/tests/test_default.py +9 -0
- data/vendor/simplejson/simplejson/tests/test_dump.py +67 -0
- data/vendor/simplejson/simplejson/tests/test_encode_basestring_ascii.py +46 -0
- data/vendor/simplejson/simplejson/tests/test_encode_for_html.py +32 -0
- data/vendor/simplejson/simplejson/tests/test_errors.py +34 -0
- data/vendor/simplejson/simplejson/tests/test_fail.py +91 -0
- data/vendor/simplejson/simplejson/tests/test_float.py +19 -0
- data/vendor/simplejson/simplejson/tests/test_indent.py +86 -0
- data/vendor/simplejson/simplejson/tests/test_item_sort_key.py +20 -0
- data/vendor/simplejson/simplejson/tests/test_namedtuple.py +121 -0
- data/vendor/simplejson/simplejson/tests/test_pass1.py +76 -0
- data/vendor/simplejson/simplejson/tests/test_pass2.py +14 -0
- data/vendor/simplejson/simplejson/tests/test_pass3.py +20 -0
- data/vendor/simplejson/simplejson/tests/test_recursion.py +67 -0
- data/vendor/simplejson/simplejson/tests/test_scanstring.py +117 -0
- data/vendor/simplejson/simplejson/tests/test_separators.py +42 -0
- data/vendor/simplejson/simplejson/tests/test_speedups.py +20 -0
- data/vendor/simplejson/simplejson/tests/test_tuple.py +49 -0
- data/vendor/simplejson/simplejson/tests/test_unicode.py +109 -0
- data/vendor/simplejson/simplejson/tool.py +39 -0
- metadata +492 -0
@@ -0,0 +1,67 @@
|
|
1
|
+
.. -*- mode: rst -*-
|
2
|
+
|
3
|
+
================
|
4
|
+
Available lexers
|
5
|
+
================
|
6
|
+
|
7
|
+
This page lists all available builtin lexers and the options they take.
|
8
|
+
|
9
|
+
Currently, **all lexers** support these options:
|
10
|
+
|
11
|
+
`stripnl`
|
12
|
+
Strip leading and trailing newlines from the input (default: ``True``)
|
13
|
+
|
14
|
+
`stripall`
|
15
|
+
Strip all leading and trailing whitespace from the input (default:
|
16
|
+
``False``).
|
17
|
+
|
18
|
+
`ensurenl`
|
19
|
+
Make sure that the input ends with a newline (default: ``True``). This
|
20
|
+
is required for some lexers that consume input linewise.
|
21
|
+
*New in Pygments 1.3.*
|
22
|
+
|
23
|
+
`tabsize`
|
24
|
+
If given and greater than 0, expand tabs in the input (default: ``0``).
|
25
|
+
|
26
|
+
`encoding`
|
27
|
+
*New in Pygments 0.6.*
|
28
|
+
|
29
|
+
If given, must be an encoding name (such as ``"utf-8"``). This encoding
|
30
|
+
will be used to convert the input string to Unicode (if it is not already
|
31
|
+
a Unicode string). The default is ``"latin1"``.
|
32
|
+
|
33
|
+
If this option is set to ``"guess"``, a simple UTF-8 vs. Latin-1
|
34
|
+
detection is used, if it is set to ``"chardet"``, the
|
35
|
+
`chardet library <http://chardet.feedparser.org/>`__ is used to
|
36
|
+
guess the encoding of the input.
|
37
|
+
|
38
|
+
|
39
|
+
The "Short Names" field lists the identifiers that can be used with the
|
40
|
+
`get_lexer_by_name()` function.
|
41
|
+
|
42
|
+
These lexers are builtin and can be imported from `pygments.lexers`:
|
43
|
+
|
44
|
+
[builtin_lexer_docs]
|
45
|
+
|
46
|
+
Iterating over all lexers
|
47
|
+
-------------------------
|
48
|
+
|
49
|
+
*New in Pygments 0.6.*
|
50
|
+
|
51
|
+
To get all lexers (both the builtin and the plugin ones), you can
|
52
|
+
use the `get_all_lexers()` function from the `pygments.lexers`
|
53
|
+
module:
|
54
|
+
|
55
|
+
.. sourcecode:: pycon
|
56
|
+
|
57
|
+
>>> from pygments.lexers import get_all_lexers
|
58
|
+
>>> i = get_all_lexers()
|
59
|
+
>>> i.next()
|
60
|
+
('Diff', ('diff',), ('*.diff', '*.patch'), ('text/x-diff', 'text/x-patch'))
|
61
|
+
>>> i.next()
|
62
|
+
('Delphi', ('delphi', 'objectpascal', 'pas', 'pascal'), ('*.pas',), ('text/x-pascal',))
|
63
|
+
>>> i.next()
|
64
|
+
('XML+Ruby', ('xml+erb', 'xml+ruby'), (), ())
|
65
|
+
|
66
|
+
As you can see, the return value is an iterator which yields tuples
|
67
|
+
in the form ``(name, aliases, filetypes, mimetypes)``.
|
@@ -0,0 +1,39 @@
|
|
1
|
+
.. -*- mode: rst -*-
|
2
|
+
|
3
|
+
============================
|
4
|
+
Using Pygments with MoinMoin
|
5
|
+
============================
|
6
|
+
|
7
|
+
From Pygments 0.7, the source distribution ships a `Moin`_ parser plugin that
|
8
|
+
can be used to get Pygments highlighting in Moin wiki pages.
|
9
|
+
|
10
|
+
To use it, copy the file `external/moin-parser.py` from the Pygments
|
11
|
+
distribution to the `data/plugin/parser` subdirectory of your Moin instance.
|
12
|
+
Edit the options at the top of the file (currently ``ATTACHMENTS`` and
|
13
|
+
``INLINESTYLES``) and rename the file to the name that the parser directive
|
14
|
+
should have. For example, if you name the file ``code.py``, you can get a
|
15
|
+
highlighted Python code sample with this Wiki markup::
|
16
|
+
|
17
|
+
{{{
|
18
|
+
#!code python
|
19
|
+
[...]
|
20
|
+
}}}
|
21
|
+
|
22
|
+
where ``python`` is the Pygments name of the lexer to use.
|
23
|
+
|
24
|
+
Additionally, if you set the ``ATTACHMENTS`` option to True, Pygments will also
|
25
|
+
be called for all attachments for whose filenames there is no other parser
|
26
|
+
registered.
|
27
|
+
|
28
|
+
You are responsible for including CSS rules that will map the Pygments CSS
|
29
|
+
classes to colors. You can output a stylesheet file with `pygmentize`, put it
|
30
|
+
into the `htdocs` directory of your Moin instance and then include it in the
|
31
|
+
`stylesheets` configuration option in the Moin config, e.g.::
|
32
|
+
|
33
|
+
stylesheets = [('screen', '/htdocs/pygments.css')]
|
34
|
+
|
35
|
+
If you do not want to do that and are willing to accept larger HTML output, you
|
36
|
+
can set the ``INLINESTYLES`` option to True.
|
37
|
+
|
38
|
+
|
39
|
+
.. _Moin: http://moinmoin.wikiwikiweb.de/
|
@@ -0,0 +1,93 @@
|
|
1
|
+
================
|
2
|
+
Register Plugins
|
3
|
+
================
|
4
|
+
|
5
|
+
If you want to extend Pygments without hacking the sources, but want to
|
6
|
+
use the lexer/formatter/style/filter lookup functions (`lexers.get_lexer_by_name`
|
7
|
+
et al.), you can use `setuptools`_ entrypoints to add new lexers, formatters
|
8
|
+
or styles as if they were in the Pygments core.
|
9
|
+
|
10
|
+
.. _setuptools: http://peak.telecommunity.com/DevCenter/setuptools
|
11
|
+
|
12
|
+
That means you can use your highlighter modules with the `pygmentize` script,
|
13
|
+
which relies on the mentioned functions.
|
14
|
+
|
15
|
+
|
16
|
+
Entrypoints
|
17
|
+
===========
|
18
|
+
|
19
|
+
Here is a list of setuptools entrypoints that Pygments understands:
|
20
|
+
|
21
|
+
`pygments.lexers`
|
22
|
+
|
23
|
+
This entrypoint is used for adding new lexers to the Pygments core.
|
24
|
+
The name of the entrypoint values doesn't really matter, Pygments extracts
|
25
|
+
required metadata from the class definition:
|
26
|
+
|
27
|
+
.. sourcecode:: ini
|
28
|
+
|
29
|
+
[pygments.lexers]
|
30
|
+
yourlexer = yourmodule:YourLexer
|
31
|
+
|
32
|
+
Note that you have to define ``name``, ``aliases`` and ``filename``
|
33
|
+
attributes so that you can use the highlighter from the command line:
|
34
|
+
|
35
|
+
.. sourcecode:: python
|
36
|
+
|
37
|
+
class YourLexer(...):
|
38
|
+
name = 'Name Of Your Lexer'
|
39
|
+
aliases = ['alias']
|
40
|
+
filenames = ['*.ext']
|
41
|
+
|
42
|
+
|
43
|
+
`pygments.formatters`
|
44
|
+
|
45
|
+
You can use this entrypoint to add new formatters to Pygments. The
|
46
|
+
name of an entrypoint item is the name of the formatter. If you
|
47
|
+
prefix the name with a slash it's used as a filename pattern:
|
48
|
+
|
49
|
+
.. sourcecode:: ini
|
50
|
+
|
51
|
+
[pygments.formatters]
|
52
|
+
yourformatter = yourmodule:YourFormatter
|
53
|
+
/.ext = yourmodule:YourFormatter
|
54
|
+
|
55
|
+
|
56
|
+
`pygments.styles`
|
57
|
+
|
58
|
+
To add a new style you can use this entrypoint. The name of the entrypoint
|
59
|
+
is the name of the style:
|
60
|
+
|
61
|
+
.. sourcecode:: ini
|
62
|
+
|
63
|
+
[pygments.styles]
|
64
|
+
yourstyle = yourmodule:YourStyle
|
65
|
+
|
66
|
+
|
67
|
+
`pygments.filters`
|
68
|
+
|
69
|
+
Use this entrypoint to register a new filter. The name of the
|
70
|
+
entrypoint is the name of the filter:
|
71
|
+
|
72
|
+
.. sourcecode:: ini
|
73
|
+
|
74
|
+
[pygments.filters]
|
75
|
+
yourfilter = yourmodule:YourFilter
|
76
|
+
|
77
|
+
|
78
|
+
How To Use Entrypoints
|
79
|
+
======================
|
80
|
+
|
81
|
+
This documentation doesn't explain how to use those entrypoints because this is
|
82
|
+
covered in the `setuptools documentation`_. That page should cover everything
|
83
|
+
you need to write a plugin.
|
84
|
+
|
85
|
+
.. _setuptools documentation: http://peak.telecommunity.com/DevCenter/setuptools
|
86
|
+
|
87
|
+
|
88
|
+
Extending The Core
|
89
|
+
==================
|
90
|
+
|
91
|
+
If you have written a Pygments plugin that is open source, please inform us
|
92
|
+
about that. There is a high chance that we'll add it to the Pygments
|
93
|
+
distribution.
|
@@ -0,0 +1,202 @@
|
|
1
|
+
.. -*- mode: rst -*-
|
2
|
+
|
3
|
+
===========================
|
4
|
+
Introduction and Quickstart
|
5
|
+
===========================
|
6
|
+
|
7
|
+
|
8
|
+
Welcome to Pygments! This document explains the basic concepts and terms and
|
9
|
+
gives a few examples of how to use the library.
|
10
|
+
|
11
|
+
|
12
|
+
Architecture
|
13
|
+
============
|
14
|
+
|
15
|
+
There are four types of components that work together highlighting a piece of
|
16
|
+
code:
|
17
|
+
|
18
|
+
* A **lexer** splits the source into tokens, fragments of the source that
|
19
|
+
have a token type that determines what the text represents semantically
|
20
|
+
(e.g., keyword, string, or comment). There is a lexer for every language
|
21
|
+
or markup format that Pygments supports.
|
22
|
+
* The token stream can be piped through **filters**, which usually modify
|
23
|
+
the token types or text fragments, e.g. uppercasing all keywords.
|
24
|
+
* A **formatter** then takes the token stream and writes it to an output
|
25
|
+
file, in a format such as HTML, LaTeX or RTF.
|
26
|
+
* While writing the output, a **style** determines how to highlight all the
|
27
|
+
different token types. It maps them to attributes like "red and bold".
|
28
|
+
|
29
|
+
|
30
|
+
Example
|
31
|
+
=======
|
32
|
+
|
33
|
+
Here is a small example for highlighting Python code:
|
34
|
+
|
35
|
+
.. sourcecode:: python
|
36
|
+
|
37
|
+
from pygments import highlight
|
38
|
+
from pygments.lexers import PythonLexer
|
39
|
+
from pygments.formatters import HtmlFormatter
|
40
|
+
|
41
|
+
code = 'print "Hello World"'
|
42
|
+
print highlight(code, PythonLexer(), HtmlFormatter())
|
43
|
+
|
44
|
+
which prints something like this:
|
45
|
+
|
46
|
+
.. sourcecode:: html
|
47
|
+
|
48
|
+
<div class="highlight">
|
49
|
+
<pre><span class="k">print</span> <span class="s">"Hello World"</span></pre>
|
50
|
+
</div>
|
51
|
+
|
52
|
+
As you can see, Pygments uses CSS classes (by default, but you can change that)
|
53
|
+
instead of inline styles in order to avoid outputting redundant style information over
|
54
|
+
and over. A CSS stylesheet that contains all CSS classes possibly used in the output
|
55
|
+
can be produced by:
|
56
|
+
|
57
|
+
.. sourcecode:: python
|
58
|
+
|
59
|
+
print HtmlFormatter().get_style_defs('.highlight')
|
60
|
+
|
61
|
+
The argument to `get_style_defs` is used as an additional CSS selector: the output
|
62
|
+
may look like this:
|
63
|
+
|
64
|
+
.. sourcecode:: css
|
65
|
+
|
66
|
+
.highlight .k { color: #AA22FF; font-weight: bold }
|
67
|
+
.highlight .s { color: #BB4444 }
|
68
|
+
...
|
69
|
+
|
70
|
+
|
71
|
+
Options
|
72
|
+
=======
|
73
|
+
|
74
|
+
The `highlight()` function supports a fourth argument called `outfile`, it must be
|
75
|
+
a file object if given. The formatted output will then be written to this file
|
76
|
+
instead of being returned as a string.
|
77
|
+
|
78
|
+
Lexers and formatters both support options. They are given to them as keyword
|
79
|
+
arguments either to the class or to the lookup method:
|
80
|
+
|
81
|
+
.. sourcecode:: python
|
82
|
+
|
83
|
+
from pygments import highlight
|
84
|
+
from pygments.lexers import get_lexer_by_name
|
85
|
+
from pygments.formatters import HtmlFormatter
|
86
|
+
|
87
|
+
lexer = get_lexer_by_name("python", stripall=True)
|
88
|
+
formatter = HtmlFormatter(linenos=True, cssclass="source")
|
89
|
+
result = highlight(code, lexer, formatter)
|
90
|
+
|
91
|
+
This makes the lexer strip all leading and trailing whitespace from the input
|
92
|
+
(`stripall` option), lets the formatter output line numbers (`linenos` option),
|
93
|
+
and sets the wrapping ``<div>``'s class to ``source`` (instead of
|
94
|
+
``highlight``).
|
95
|
+
|
96
|
+
Important options include:
|
97
|
+
|
98
|
+
`encoding` : for lexers and formatters
|
99
|
+
Since Pygments uses Unicode strings internally, this determines which
|
100
|
+
encoding will be used to convert to or from byte strings.
|
101
|
+
`style` : for formatters
|
102
|
+
The name of the style to use when writing the output.
|
103
|
+
|
104
|
+
|
105
|
+
For an overview of builtin lexers and formatters and their options, visit the
|
106
|
+
`lexer <lexers.txt>`_ and `formatters <formatters.txt>`_ lists.
|
107
|
+
|
108
|
+
For a documentation on filters, see `this page <filters.txt>`_.
|
109
|
+
|
110
|
+
|
111
|
+
Lexer and formatter lookup
|
112
|
+
==========================
|
113
|
+
|
114
|
+
If you want to lookup a built-in lexer by its alias or a filename, you can use
|
115
|
+
one of the following methods:
|
116
|
+
|
117
|
+
.. sourcecode:: pycon
|
118
|
+
|
119
|
+
>>> from pygments.lexers import (get_lexer_by_name,
|
120
|
+
... get_lexer_for_filename, get_lexer_for_mimetype)
|
121
|
+
|
122
|
+
>>> get_lexer_by_name('python')
|
123
|
+
<pygments.lexers.PythonLexer>
|
124
|
+
|
125
|
+
>>> get_lexer_for_filename('spam.rb')
|
126
|
+
<pygments.lexers.RubyLexer>
|
127
|
+
|
128
|
+
>>> get_lexer_for_mimetype('text/x-perl')
|
129
|
+
<pygments.lexers.PerlLexer>
|
130
|
+
|
131
|
+
All these functions accept keyword arguments; they will be passed to the lexer
|
132
|
+
as options.
|
133
|
+
|
134
|
+
A similar API is available for formatters: use `get_formatter_by_name()` and
|
135
|
+
`get_formatter_for_filename()` from the `pygments.formatters` module
|
136
|
+
for this purpose.
|
137
|
+
|
138
|
+
|
139
|
+
Guessing lexers
|
140
|
+
===============
|
141
|
+
|
142
|
+
If you don't know the content of the file, or you want to highlight a file
|
143
|
+
whose extension is ambiguous, such as ``.html`` (which could contain plain HTML
|
144
|
+
or some template tags), use these functions:
|
145
|
+
|
146
|
+
.. sourcecode:: pycon
|
147
|
+
|
148
|
+
>>> from pygments.lexers import guess_lexer, guess_lexer_for_filename
|
149
|
+
|
150
|
+
>>> guess_lexer('#!/usr/bin/python\nprint "Hello World!"')
|
151
|
+
<pygments.lexers.PythonLexer>
|
152
|
+
|
153
|
+
>>> guess_lexer_for_filename('test.py', 'print "Hello World!"')
|
154
|
+
<pygments.lexers.PythonLexer>
|
155
|
+
|
156
|
+
`guess_lexer()` passes the given content to the lexer classes' `analyse_text()`
|
157
|
+
method and returns the one for which it returns the highest number.
|
158
|
+
|
159
|
+
All lexers have two different filename pattern lists: the primary and the
|
160
|
+
secondary one. The `get_lexer_for_filename()` function only uses the primary
|
161
|
+
list, whose entries are supposed to be unique among all lexers.
|
162
|
+
`guess_lexer_for_filename()`, however, will first loop through all lexers and
|
163
|
+
look at the primary and secondary filename patterns if the filename matches.
|
164
|
+
If only one lexer matches, it is returned, else the guessing mechanism of
|
165
|
+
`guess_lexer()` is used with the matching lexers.
|
166
|
+
|
167
|
+
As usual, keyword arguments to these functions are given to the created lexer
|
168
|
+
as options.
|
169
|
+
|
170
|
+
|
171
|
+
Command line usage
|
172
|
+
==================
|
173
|
+
|
174
|
+
You can use Pygments from the command line, using the `pygmentize` script::
|
175
|
+
|
176
|
+
$ pygmentize test.py
|
177
|
+
|
178
|
+
will highlight the Python file test.py using ANSI escape sequences
|
179
|
+
(a.k.a. terminal colors) and print the result to standard output.
|
180
|
+
|
181
|
+
To output HTML, use the ``-f`` option::
|
182
|
+
|
183
|
+
$ pygmentize -f html -o test.html test.py
|
184
|
+
|
185
|
+
to write an HTML-highlighted version of test.py to the file test.html.
|
186
|
+
Note that it will only be a snippet of HTML, if you want a full HTML document,
|
187
|
+
use the "full" option::
|
188
|
+
|
189
|
+
$ pygmentize -f html -O full -o test.html test.py
|
190
|
+
|
191
|
+
This will produce a full HTML document with included stylesheet.
|
192
|
+
|
193
|
+
A style can be selected with ``-O style=<name>``.
|
194
|
+
|
195
|
+
If you need a stylesheet for an existing HTML file using Pygments CSS classes,
|
196
|
+
it can be created with::
|
197
|
+
|
198
|
+
$ pygmentize -S default -f html > style.css
|
199
|
+
|
200
|
+
where ``default`` is the style name.
|
201
|
+
|
202
|
+
More options and tricks and be found in the `command line reference <cmdline.txt>`_.
|
@@ -0,0 +1,22 @@
|
|
1
|
+
.. -*- mode: rst -*-
|
2
|
+
|
3
|
+
================================
|
4
|
+
Using Pygments in ReST documents
|
5
|
+
================================
|
6
|
+
|
7
|
+
Many Python people use `ReST`_ for documentation their sourcecode, programs,
|
8
|
+
scripts et cetera. This also means that documentation often includes sourcecode
|
9
|
+
samples or snippets.
|
10
|
+
|
11
|
+
You can easily enable Pygments support for your ReST texts using a custom
|
12
|
+
directive -- this is also how this documentation displays source code.
|
13
|
+
|
14
|
+
From Pygments 0.9, the directive is shipped in the distribution as
|
15
|
+
`external/rst-directive.py`. You can copy and adapt this code to your liking.
|
16
|
+
|
17
|
+
.. removed -- too confusing
|
18
|
+
*Loosely related note:* The ReST lexer now recognizes ``.. sourcecode::`` and
|
19
|
+
``.. code::`` directives and highlights the contents in the specified language
|
20
|
+
if the `handlecodeblocks` option is true.
|
21
|
+
|
22
|
+
.. _ReST: http://docutils.sf.net/rst.html
|
@@ -0,0 +1,143 @@
|
|
1
|
+
.. -*- mode: rst -*-
|
2
|
+
|
3
|
+
======
|
4
|
+
Styles
|
5
|
+
======
|
6
|
+
|
7
|
+
Pygments comes with some builtin styles that work for both the HTML and
|
8
|
+
LaTeX formatter.
|
9
|
+
|
10
|
+
The builtin styles can be looked up with the `get_style_by_name` function:
|
11
|
+
|
12
|
+
.. sourcecode:: pycon
|
13
|
+
|
14
|
+
>>> from pygments.styles import get_style_by_name
|
15
|
+
>>> get_style_by_name('colorful')
|
16
|
+
<class 'pygments.styles.colorful.ColorfulStyle'>
|
17
|
+
|
18
|
+
You can pass a instance of a `Style` class to a formatter as the `style`
|
19
|
+
option in form of a string:
|
20
|
+
|
21
|
+
.. sourcecode:: pycon
|
22
|
+
|
23
|
+
>>> from pygments.styles import get_style_by_name
|
24
|
+
>>> HtmlFormatter(style='colorful').style
|
25
|
+
<class 'pygments.styles.colorful.ColorfulStyle'>
|
26
|
+
|
27
|
+
Or you can also import your own style (which must be a subclass of
|
28
|
+
`pygments.style.Style`) and pass it to the formatter:
|
29
|
+
|
30
|
+
.. sourcecode:: pycon
|
31
|
+
|
32
|
+
>>> from yourapp.yourmodule import YourStyle
|
33
|
+
>>> HtmlFormatter(style=YourStyle).style
|
34
|
+
<class 'yourapp.yourmodule.YourStyle'>
|
35
|
+
|
36
|
+
|
37
|
+
Creating Own Styles
|
38
|
+
===================
|
39
|
+
|
40
|
+
So, how to create a style? All you have to do is to subclass `Style` and
|
41
|
+
define some styles:
|
42
|
+
|
43
|
+
.. sourcecode:: python
|
44
|
+
|
45
|
+
from pygments.style import Style
|
46
|
+
from pygments.token import Keyword, Name, Comment, String, Error, \
|
47
|
+
Number, Operator, Generic
|
48
|
+
|
49
|
+
class YourStyle(Style):
|
50
|
+
default_style = ""
|
51
|
+
styles = {
|
52
|
+
Comment: 'italic #888',
|
53
|
+
Keyword: 'bold #005',
|
54
|
+
Name: '#f00',
|
55
|
+
Name.Function: '#0f0',
|
56
|
+
Name.Class: 'bold #0f0',
|
57
|
+
String: 'bg:#eee #111'
|
58
|
+
}
|
59
|
+
|
60
|
+
That's it. There are just a few rules. When you define a style for `Name`
|
61
|
+
the style automatically also affects `Name.Function` and so on. If you
|
62
|
+
defined ``'bold'`` and you don't want boldface for a subtoken use ``'nobold'``.
|
63
|
+
|
64
|
+
(Philosophy: the styles aren't written in CSS syntax since this way
|
65
|
+
they can be used for a variety of formatters.)
|
66
|
+
|
67
|
+
`default_style` is the style inherited by all token types.
|
68
|
+
|
69
|
+
To make the style usable for Pygments, you must
|
70
|
+
|
71
|
+
* either register it as a plugin (see `the plugin docs <plugins.txt>`_)
|
72
|
+
* or drop it into the `styles` subpackage of your Pygments distribution one style
|
73
|
+
class per style, where the file name is the style name and the class name is
|
74
|
+
`StylenameClass`. For example, if your style should be called
|
75
|
+
``"mondrian"``, name the class `MondrianStyle`, put it into the file
|
76
|
+
``mondrian.py`` and this file into the ``pygments.styles`` subpackage
|
77
|
+
directory.
|
78
|
+
|
79
|
+
|
80
|
+
Style Rules
|
81
|
+
===========
|
82
|
+
|
83
|
+
Here a small overview of all allowed styles:
|
84
|
+
|
85
|
+
``bold``
|
86
|
+
render text as bold
|
87
|
+
``nobold``
|
88
|
+
don't render text as bold (to prevent subtokens being highlighted bold)
|
89
|
+
``italic``
|
90
|
+
render text italic
|
91
|
+
``noitalic``
|
92
|
+
don't render text as italic
|
93
|
+
``underline``
|
94
|
+
render text underlined
|
95
|
+
``nounderline``
|
96
|
+
don't render text underlined
|
97
|
+
``bg:``
|
98
|
+
transparent background
|
99
|
+
``bg:#000000``
|
100
|
+
background color (black)
|
101
|
+
``border:``
|
102
|
+
no border
|
103
|
+
``border:#ffffff``
|
104
|
+
border color (white)
|
105
|
+
``#ff0000``
|
106
|
+
text color (red)
|
107
|
+
``noinherit``
|
108
|
+
don't inherit styles from supertoken
|
109
|
+
|
110
|
+
Note that there may not be a space between ``bg:`` and the color value
|
111
|
+
since the style definition string is split at whitespace.
|
112
|
+
Also, using named colors is not allowed since the supported color names
|
113
|
+
vary for different formatters.
|
114
|
+
|
115
|
+
Furthermore, not all lexers might support every style.
|
116
|
+
|
117
|
+
|
118
|
+
Builtin Styles
|
119
|
+
==============
|
120
|
+
|
121
|
+
Pygments ships some builtin styles which are maintained by the Pygments team.
|
122
|
+
|
123
|
+
To get a list of known styles you can use this snippet:
|
124
|
+
|
125
|
+
.. sourcecode:: pycon
|
126
|
+
|
127
|
+
>>> from pygments.styles import STYLE_MAP
|
128
|
+
>>> STYLE_MAP.keys()
|
129
|
+
['default', 'emacs', 'friendly', 'colorful']
|
130
|
+
|
131
|
+
|
132
|
+
Getting a list of available styles
|
133
|
+
==================================
|
134
|
+
|
135
|
+
*New in Pygments 0.6.*
|
136
|
+
|
137
|
+
Because it could be that a plugin registered a style, there is
|
138
|
+
a way to iterate over all styles:
|
139
|
+
|
140
|
+
.. sourcecode:: pycon
|
141
|
+
|
142
|
+
>>> from pygments.styles import get_all_styles
|
143
|
+
>>> styles = list(get_all_styles())
|