Version 2 (modified by on Aug 13, 2014 at 12:08:18 AM) ( diff ) | ,
---|
ソースコードのシンタックスカラーリング
Trac は wiki プロセッサ ブロック内の Wiki 形式のテキストと リポジトリブラウザ での、ソースコードの言語特有のシンタックスハイライトに対応しています。
Trac では色付けを行うために、とても多くのプログラミング言語に対応している外部ライブラリを使用しています。
現在、 Trac は以下にあげるパッケージを 1 つ以上使用して、シンタックスハイライトを実現しています:
- Pygments 最も推奨するシステムです。というのもカバーしているプログラミング言語、構造化テキストが多いこととサポート体制が活発であるからです
- GNU Enscript 通常 UNIX で利用できますが、 Windows ではサポートされていません
- SilverCity レガシーなシステムです。いくつかのバージョンには 問題があります
シンタックスカラーリングを有効にするには、これらのパッケージのどれか 1 つまたは 1 つ以上をインストールするだけです ( 下記の その他のソフトウェア を参照 ) もし、これらのパッケージの中で適用できるものがなければ、 Trac はプレーンテキストとしてデータを表示します。
Pygments について
Trac 0.11 以降で、 pygments はデフォルトのハイライトパッケージとなりました。ハイライト用のライブラリがピュアな Python コードで書かれていて、とても速く、拡張しやすく ドキュメントが豊富です 。
Pygments のデフォルトのスタイルは、 trac.ini の mime-viewer セクションで指定できます。デフォルトのスタイルは、 個人設定のシンタックスハイライトタブ 上のスタイルを設定することで、オーバーライドされます。
Pygments の構文解析エンジンが対応するリストは毎週のように更新されています。以下のリストが古い可能性は非常に高いです。 正確には supported lexers のページを参照してください。
対応しているシンタックスハイライト
対応している MIME タイプ
MIME Types | WikiProcessors |
---|---|
application/ld+json | json-ld jsonld |
application/msword | doc |
application/pdf | pdf |
application/pgp-signature | asc pem |
application/postscript | postscr postscript ps |
application/rss+xml | rss |
application/rtf | rtf |
application/sparql-query | sparql |
application/toml | toml |
application/vnd.wolfram.mathematica.package | mathematica mma nb |
application/x-awk | awk gawk mawk nawk |
application/x-befunge | befunge |
application/x-brainfuck | bf brainfuck |
application/x-coldfusion | cfm |
application/x-csh | csh tcsh |
application/x-desktop | desktop |
application/x-dos-batch | bat batch cmd dos dosbatch winbatch |
application/x-ecl | ecl |
application/x-evoque | evoque |
application/x-fantom | fan |
application/x-fish | fish fishshell |
application/x-forth | forth |
application/x-jinja | django jinja |
application/x-jsp | jsp |
application/x-kid | genshi kid xml+genshi xml+kid |
application/x-mako | mako |
application/x-mason | mason |
application/x-myghty | myghty |
application/x-ndjson | json json-object |
application/x-openscad | openscad |
application/x-php | html+php |
application/x-prql | prql |
application/x-pypylog | pypy pypylog |
application/x-qt.qbs+qml | qbs qml |
application/x-ruby-templating | erb |
application/x-shell-session | console shell-session |
application/x-smarty | smarty |
application/x-spitfire | cheetah spitfire |
application/x-ssp | ssp |
application/x-tf | hcl terraform tf |
application/x-thrift | thrift |
application/x-troff | roff troff |
application/x-twig | twig |
application/x-urbiscript | urbiscript |
application/x-www-form-urlencoded | urlencoded |
application/x-yaml | yml |
application/xml+evoque | xml+evoque |
application/xml+jinja | xml+django xml+jinja |
application/xml+lasso | xml+lasso |
application/xml+mako | xml+mako |
application/xml+myghty | xml+myghty |
application/xml+php | xml+php |
application/xml+ruby | xml+erb xml+ruby |
application/xml+smarty | xml+smarty |
application/xml+spitfire | xml+cheetah xml+spitfire |
application/xml+velocity | xml+velocity |
application/xml-dtd | dtd |
application/xsl+xml | xsl |
application/xslt+xml | xslt |
application/yang | yang |
image/svg+xml | svg |
image/x-icon | ico |
message/rfc822 | email eml |
model/vrml | vrml wrl |
multipart/related | mime |
text/basic | basic qbasic |
text/coffeescript | coffee coffee-script coffeescript |
text/css | css |
text/css+genshi | css+genshi css+genshitext |
text/css+jinja | css+django css+jinja |
text/css+lasso | css+lasso |
text/css+mako | css+mako |
text/css+myghty | css+myghty |
text/css+php | css+php |
text/css+ruby | css+erb css+ruby |
text/css+smarty | css+smarty |
text/dns | zone |
text/html | htm html |
text/html+evoque | html+evoque |
text/html+genshi | html+genshi html+kid |
text/html+jinja | html+django html+jinja htmldjango |
text/html+lasso | html+lasso |
text/html+mako | html+mako |
text/html+myghty | html+myghty |
text/html+ruby | html+erb html+ruby rhtml |
text/html+smarty | html+smarty |
text/html+spitfire | html+cheetah html+spitfire htmlcheetah |
text/html+twig | html+twig |
text/html+velocity | html+velocity |
text/idl | idl |
text/ipf | igor igorpro |
text/jsgf | jsgf |
text/kal | kal |
text/limbo | limbo |
text/livescript | live-script livescript |
text/matlab | matlab |
text/mcfunction | mcf mcfunction |
text/mcschema | mcschema |
text/ncl | ncl |
text/octave | octave |
text/odin | odin |
text/org | org org-mode orgmode |
text/plain | AUTHORS COPYING ChangeLog INSTALL README RELEASE TXT text txt |
text/rita | rita |
text/rsl | rsl |
text/scilab | scilab |
text/shex | shex shexc |
text/smali | smali |
text/snbt | snbt |
text/supercollider | sc supercollider |
text/swig | swig |
text/troff | groff man nroff |
text/turtle | turtle |
text/typescript-jsx | jsx react |
text/unicon | unicon |
text/vnd.tiddlywiki | tid |
text/wgsl | wgsl |
text/x-abap | abap |
text/x-abnf | abnf |
text/x-actionscript | actionscript as |
text/x-actionscript3 | actionscript3 as3 |
text/x-ada | ada ada2005 ada95 adb ads |
text/x-agda | agda |
text/x-alloy | alloy |
text/x-ambienttalk | ambienttalk ambienttalk/2 at |
text/x-apacheconf | aconf apache apacheconf |
text/x-arduino | arduino |
text/x-asp | asp |
text/x-aspectj | aspectj |
text/x-asymptote | asy asymptote |
text/x-autohotkey | ahk autohotkey |
text/x-autoit | autoit |
text/x-bb | b3d blitzbasic bplus |
text/x-bbcode | bbcode |
text/x-bdd | bdd |
text/x-berry | be berry |
text/x-bibtex | bib bibtex |
text/x-blueprint | blueprint |
text/x-bmx | blitzmax bmax |
text/x-bnf | bnf |
text/x-boo | boo |
text/x-c | devicetree dts |
text/x-c++hdr | H HH c++hdr hh hpp |
text/x-c++src | C C++ CC c++ c++src cc cpp |
text/x-c-objdump | c-objdump |
text/x-carbon | carbon |
text/x-cddl | cddl |
text/x-ceylon | ceylon |
text/x-chaiscript | chai chaiscript |
text/x-chdr | chdr h |
text/x-cirru | cirru |
text/x-clay | clay |
text/x-clojure | clj clojure |
text/x-clojurescript | cljs clojurescript |
text/x-cmake | cmake |
text/x-cobol | cobol |
text/x-common-lisp | cl common-lisp lisp |
text/x-component-pascal | componentpascal cp |
text/x-coq | coq |
text/x-cplint | cplint |
text/x-cpp-objdump | c++-objdumb cpp-objdump cxx-objdump |
text/x-crocsrc | croc |
text/x-cryptol | cry cryptol |
text/x-crystal | cr crystal |
text/x-csharp | C# c# cs csharp |
text/x-csrc | c csrc xs |
text/x-cuda | cu cuda |
text/x-cython | cython pyrex pyx |
text/x-d-objdump | d-objdump |
text/x-dart | dart |
text/x-dasm16 | dasm16 |
text/x-dg | dg |
text/x-diff | patch |
text/x-dockerfile-config | docker dockerfile |
text/x-dsrc | d |
text/x-dylan | dylan |
text/x-dylan-console | dylan-console dylan-repl |
text/x-dylan-lid | dylan-lid lid |
text/x-earl-grey | earl-grey earlgrey eg |
text/x-easytrieve | easytrieve |
text/x-ebnf | ebnf |
text/x-ecsrc | ec |
text/x-eiffel | e eiffel |
text/x-elisp | el elisp emacs emacs-lisp |
text/x-elixir | elixir ex exs |
text/x-elixir-shellsession | iex |
text/x-elm | elm |
text/x-elpi | elpi |
text/x-erl-shellsession | erl |
text/x-erlang | erlang |
text/x-ezhil | ezhil |
text/x-factor | factor |
text/x-fancysrc | fancy fy |
text/x-felix | felix flx |
text/x-flatline | flatline |
text/x-fortran | f f90 fortran |
text/x-freefem | freefem |
text/x-fsharp | f# fsharp |
text/x-fstar | fstar |
text/x-futhark | futhark |
text/x-gas | asm gas |
text/x-gdscript | gd gdscript |
text/x-genshi | genshitext |
text/x-gettext | po pot |
text/x-gherkin | cucumber gherkin |
text/x-glslsrc | glsl |
text/x-gnuplot | gnuplot |
text/x-gooddata-cl | gooddata-cl |
text/x-gooddata-maql | maql |
text/x-gosrc | go golang |
text/x-gosu | gosu |
text/x-gosu-template | gst |
text/x-graphviz | dot graphviz |
text/x-groovy | groovy |
text/x-haml | haml |
text/x-handlebars-template | html+handlebars |
text/x-haskell | haskell hs |
text/x-hlsl | hlsl |
text/x-hsail | hsa hsail |
text/x-hx | haxe hx hxsl |
text/x-hy | hy hylang |
text/x-hybris | hybris |
text/x-idl | ice |
text/x-idris | idr idris |
text/x-inf | inf |
text/x-ini | cfg dosini ini |
text/x-iokesrc | ik ioke |
text/x-iosrc | io |
text/x-irclog | irc |
text/x-isabelle | isabelle |
text/x-j | j |
text/x-janet | janet |
text/x-java | java |
text/x-java-properties | jproperties properties |
text/x-javascript | javascript js |
text/x-javascript+genshi | javascript+genshi javascript+genshitext js+genshi js+genshitext |
text/x-javascript+jinja | javascript+django javascript+jinja js+django js+jinja |
text/x-javascript+lasso | javascript+lasso js+lasso |
text/x-javascript+mako | javascript+mako js+mako |
text/x-javascript+myghty | javascript+myghty js+myghty |
text/x-javascript+php | javascript+php js+php |
text/x-javascript+ruby | javascript+erb javascript+ruby js+erb js+ruby |
text/x-javascript+smarty | javascript+smarty js+smarty |
text/x-javascript+spitfire | javascript+cheetah javascript+spitfire js+cheetah js+spitfire |
text/x-jbst | duel jbst jsonml+bst |
text/x-jcl | jcl |
text/x-jslt | jslt |
text/x-julia | jl julia |
text/x-juttle | juttle |
text/x-kconfig | kconfig kernel-config linux-config menuconfig |
text/x-koka | koka |
text/x-kotlin | kotlin |
text/x-lasso | lasso lassoscript |
text/x-ldapconf | ldapconf ldaprc |
text/x-ldif | ldif |
text/x-lean3 | lean lean3 |
text/x-lean4 | lean4 |
text/x-less-css | less |
text/x-lighttpd-conf | lighttpd lighty |
text/x-literate-agda | lagda literate-agda |
text/x-literate-cryptol | lcry lcryptol literate-cryptol |
text/x-literate-haskell | lhaskell lhs literate-haskell |
text/x-literate-idris | lidr lidris literate-idris |
text/x-llvm | llvm |
text/x-logos | logos |
text/x-logtalk | logtalk |
text/x-lsl | lsl |
text/x-lua | lua |
text/x-m4 | m4 |
text/x-mail | mail |
text/x-makefile | GNUMakefile Makefile bsdmake make makefile mf mk |
text/x-markdown | markdown md |
text/x-mask | mask |
text/x-meson | meson meson.build |
text/x-minicript | miniscript ms |
text/x-minidsrc | minid |
text/x-modelica | modelica |
text/x-modula2 | m2 modula2 |
text/x-mojo | mojo 🔥 |
text/x-monkey | monkey |
text/x-moocode | moo moocode |
text/x-moonscript | moon moonscript |
text/x-mql | mq4 mq5 mql mql4 mql5 |
text/x-mysql | mysql |
text/x-nasm | nasm |
text/x-nasm-objdump | objdump-nasm |
text/x-nemerle | nemerle |
text/x-nescsrc | nesc |
text/x-newlisp | newlisp |
text/x-newspeak | newspeak |
text/x-nginx-conf | nginx nginx-conf |
text/x-nim | nim nimrod |
text/x-nix | nix nixos |
text/x-nodejsrepl | nodejsrepl |
text/x-nsis | nsh nsi nsis |
text/x-objc | m mm |
text/x-objdump | objdump |
text/x-objective-c | obj-c objc objective-c objectivec |
text/x-objective-c++ | obj-c++ objc++ objective-c++ objectivec++ |
text/x-objective-j | obj-j objective-j objectivej objj |
text/x-ocaml | ml mli ocaml |
text/x-ooc | ooc |
text/x-opa | opa |
text/x-openedge | abl openedge progress |
text/x-parasail | parasail |
text/x-pascal | delphi objectpascal pas pascal |
text/x-patch | diff udiff |
text/x-pawn | pawn |
text/x-peg | peg |
text/x-perl | PL perl pl pm |
text/x-perl6 | perl6 pl6 raku |
text/x-phix | phix |
text/x-php | php php3 php4 php5 |
text/x-pig | pig |
text/x-pike | pike |
text/x-plpgsql | plpgsql |
text/x-postgresql | postgres postgresql |
text/x-postgresql-explain | postgres-explain |
text/x-postgresql-psql | postgres-console postgresql-console psql |
text/x-povray | pov |
text/x-powershell | posh powershell ps1 psm1 pwsh |
text/x-prolog | prolog |
text/x-promela | promela |
text/x-psp | psp |
text/x-ptx | ptx |
text/x-pug | jade pug |
text/x-python-doctest | pycon python-console python-doctest |
text/x-python2 | py2 python2 |
text/x-python2-traceback | py2tb |
text/x-python3 | bazel py py3 python python3 sage starlark |
text/x-python3-traceback | py3tb pytb |
text/x-r-doc | rd |
text/x-r-source | r s splus |
text/x-racket | racket rkt |
text/x-reasonml | reason reasonml |
text/x-rebol | rebol |
text/x-red-system | red red/system |
text/x-rexx | arexx rexx |
text/x-rfc | rfc |
text/x-ride | ride |
text/x-robotframework | robotframework |
text/x-rpm-spec | spec |
text/x-rql | rql |
text/x-rst | rest restructuredtext rst |
text/x-ruby | duby rb ruby |
text/x-ruby-shellsession | irb rbcon |
text/x-rust | rs rust |
text/x-sarl | sarl |
text/x-sas | sas |
text/x-sass | sass |
text/x-scala | scala |
text/x-scaml | scaml |
text/x-scheme | scheme scm |
text/x-scss | scss |
text/x-sed | gsed sed ssed |
text/x-shellscript | bash ksh openrc sh shell zsh |
text/x-shen | shen |
text/x-slim | slim |
text/x-smalltalk | smalltalk squeak st |
text/x-snobol | snobol |
text/x-sourcepawn | sp |
text/x-spice | spice spicelang |
text/x-sql | sql |
text/x-sqlite3-console | sqlite3 |
text/x-squidconf | squid squid.conf squidconf |
text/x-standardml | sml |
text/x-stata | do stata |
text/x-swift | swift |
text/x-systemverilog | sv systemverilog |
text/x-tasm | tasm |
text/x-tcl | tcl |
text/x-tea | tea |
text/x-teratermmacro | teraterm teratermmacro ttl |
text/x-tex | latex tex |
text/x-textile | textile txtl |
text/x-todo | todotxt |
text/x-trac-wiki | moin trac-wiki |
text/x-tsql | t-sql tsql |
text/x-typescript | ts typescript |
text/x-typoscript | typoscript |
text/x-typst | typst |
text/x-uxntal | tal uxntal |
text/x-vala | vala vapi |
text/x-vba | bas vb vba |
text/x-vbnet | lobas oobas sobas vb.net vbnet visual-basic visualbasic |
text/x-vclsnippet | vclsnippet vclsnippets |
text/x-vclsrc | vcl |
text/x-verifpal | verifpal |
text/x-verilog | v verilog |
text/x-vhdl | vhd vhdl |
text/x-vim | vim |
text/x-whiley | whiley |
text/x-wiki | mediawiki wikitext |
text/x-windows-registry | registry |
text/x-x10 | x10 xten |
text/x-xtend | xtend |
text/x-yaml | yaml |
text/x-yaml+jinja | salt sls yaml+jinja |
text/x-yara | yar yara |
text/xml | xml |
text/xquery | xq xql xqm xquery xqy |
text/zig | zig |
Note: 高度なコンテンツはシンタックスハイライトの代わりに直接レンダリングされるかもしれません。これはインストールされている予備のパッケージ及び設定したコンポーネントによって決まります。例えば、text/x-rst
ドキュメントでは、docutils
がインストールされていて、trac.mimeview.rst.ReStructuredTextRenderer
が無効になっておらず、他にシンタックスハイライトが存在するような場合、docutils
を通してレンダリングされます。
同様の方法で、 MIME タイプ text/x-trac-wiki
のドキュメントは Trac Wiki フォーマットを使ってレンダリングされます。ただし、 trac.mimeview.api.WikiTextRenderer
コンポーネントは無効とされます。
HTML ドキュメントは render_unsafe_html
が TracIni で有効に設定されている場合に限り、直接レンダリングされます。 (ドキュメントがどこからくるかによって異なるセキュリティ上の懸念がある場合、これらの設定は、複数のセクションに存在します)。もし HTML ドキュメントがレンダリングを行わず、シンタックスハイライトなるよう保証したいのであれば、 MIME タイプ text/xml
を使用してください。
'svn:mime-type' 属性が 'text/plain' のように MIME タイプで設定されている場合、例え 'java' で書かれたファイルであっても色づけされません。
ハイライトパッケージがサポートする言語
このリストはほんの一例です:
SilverCity | Enscript | Pygments | |
---|---|---|---|
Ada | ✓ | ||
Asm | ✓ | ||
Apache Conf | ✓ | ||
ASP | ✓ | ✓ | |
C | ✓ | ✓ | ✓ |
C# | ✓ (1) | ✓ | |
C++ | ✓ | ✓ | ✓ |
CMake | ? | ? | ✓ |
Java | ✓ (2) | ✓ | ✓ |
Awk | ✓ | ||
Boo | ✓ | ||
CSS | ✓ | ✓ | |
Python Doctests | ✓ | ||
Diff | ✓ | ✓ | |
Eiffel | ✓ | ||
Elisp | ✓ | ||
Fortran | ✓ (1) | ✓ | |
Haskell | ✓ | ✓ | |
Genshi | ✓ | ||
HTML | ✓ | ✓ | ✓ |
IDL | ✓ | ||
INI | ✓ | ||
Javascript | ✓ | ✓ | ✓ |
Lua | ✓ | ||
m4 | ✓ | ||
Makefile | ✓ | ✓ | |
Mako | ✓ | ||
Matlab (3) | ✓ | ✓ | |
Mygthy | ✓ | ||
Objective-C | ✓ | ✓ | |
OCaml | ✓ | ||
Pascal | ✓ | ✓ | |
Perl | ✓ | ✓ | ✓ |
PHP | ✓ | ✓ | |
PSP | ✓ | ||
Pyrex | ✓ | ||
Python | ✓ | ✓ | ✓ |
Ruby | ✓ | ✓ (1) | ✓ |
Scheme | ✓ | ✓ | |
Shell | ✓ | ✓ | |
Smarty | ✓ | ||
SQL | ✓ | ✓ | ✓ |
Troff | ✓ | ✓ | |
TCL | ✓ | ||
Tex | ✓ | ✓ | |
Verilog | ✓ (2) | ✓ | |
VHDL | ✓ | ||
Visual Basic | ✓ | ✓ | |
VRML | ✓ | ||
XML | ✓ | ✓ |
(1) Enscript のパッケージには含まれていません。 以下のハイライトルールを追加することが可能です。 Ruby, C#, Fortran 90x/2003
(2) Silvercity 0.9.7 は 2006-11-23 にリリースされました。
(3) デフォルトで、 .m
ファイルは Objective-C のファイルだと解釈されます。 .m
ファイルを MATLAB ファイルとして扱うためには、 "text/matlab:m" を trac.ini の [mimeviewer] セクション 内、 "mime_map" の設定に追加してください。
その他のソフトウェア
- GNU Enscript — http://directory.fsf.org/GNU/enscript.html
- GNU Enscript for Windows — http://gnuwin32.sourceforge.net/packages/enscript.htm
- SilverCity — http://silvercity.sf.net/
- Pygments — http://pygments.org/
See also: WikiProcessors, WikiFormatting, TracWiki, TracBrowser