Syntax Coloring of Source Code
Подсветка синтаксиса в исходных кодах
Trac поддерживает подсветку синтаксиса языков программирования в wiki-форматированных текстах и SVN-репозитории.
Trac использует внешние библиотеки с поддержкой большого числа языков программирования.
В настоящее время Trac поддерживает подсветку синтаксиса, используя один или больше следующих пакетов:
- GNU Enscript
- SilverCity
- Pygments (но нуждается в плагине для 0.10, см. ниже)
Чтобы включить подсветку синтаксиса, просто установите или один (или больше) из этих пакетов. Никакая дополнительная конфигурация не требуется, однако чтобы изменить цвета, взгляните на 'trac/htdocs/css/code.css'.
Если Вы не знаете, почему trac не может найти установленной библиотеки, попытайтесь включить ведение логов Trac. Обычно с Trac не работает SilverCity 0.9.6. В таком случае используйте текущую версию 0.9.7 или старше 0.9.5 http://trac.edgewall.org/wiki/TracFaq#why-is-my-css-code-not-being-highlighted-even-though-i-have-silvercity-installed
Trac автоматически отдает приоритет SilverCity прежде Enscript если возможно (см. примечание ниже).
Если никакой из этих пакетов не доступен, Trac отобразит простой plain-текст.
Примечание: Enscript поддерживает большее число языков, однако SilverCity быстрее работает, потому что реализован в виде библиотеки и не выполняется во внешнем процессе.
SilverCity
SilverCity использует лексический анализатор (lexer) Scintilla. Scintilla поддерживает больше языков, чем SilverCity. Если вы хотите добавить к SilverCity еще один язык, уже поддерживаемый Scintiilla, это совсем не трудно. См. SilverCityAddLanguage для дополнительной информации.
Pygments
Начиная с версии trac 0.11 pygments будет новым модулем подсветки синтаксиса по умолчанию. Эта библиотека реализована на чистом python, очень быстрая, легко расширяется и хорошо документирована. Пока не поддерживает столь же много языков, как Enscript или Scintilla, но в целом исполнение более качественное.
Чтобы использовать pygments в trac 0.11 вы должны установить pygments 0.5.1 или выше. Для использования в trac 0.10 вы должны также установить TracPygmentsPlugin из trac hacks. Если вы нашли любой баг, пожалуйста обращайтесь к pygments trac.
Возможно, приведенная ниже таблица уже устарела, потому что список поддерживаемых языков анализатором pygments пополняется каждую неделю. Просто взгляните на страницу поддержки языкового анализатора pygments.
Выделение синтаксиса исходников
| SilverCity | Enscript | Pygments | |
| Ada | X | ||
| Asm | X | ||
| Apache Conf (htaccess)) | X | ||
| * ASP | X | X | |
| * C | X | X | X |
| * C# | X(2) | X | |
| * C++ | X | X | X |
| * CMake | ? | ? | X |
| * Java | X(4) | X | X |
| Awk | X | ||
| Boo | X | ||
| CSS | X | X | |
| Python Doctests | X | ||
| Diff | X | X | |
| Eiffel | X | ||
| Elisp | X | ||
| Fortran | X(3) | ||
| Haskell | X | X | |
| Genshi | X | ||
| HTML | X | X | X |
| IDL | X | ||
| INI | X | ||
| Javascript | X | X | X |
| Lua | X | ||
| m4 | X | ||
| Makefile | X | X | |
| Mako | X | ||
| Matlab | X (5) | ||
| Mygthy | X | ||
| Objective-C | X | ||
| OCaml | X | ||
| Pascal | X | X | |
| * Perl | X | X | X |
| * PHP | X | X | |
| PSP | X | ||
| Pyrex | X | ||
| * Python | X | X | X |
| * Ruby | X | X (1) | X |
| Scheme | X | X | |
| Shell | X | X | |
| Smarty | X | ||
| SQL | X | X | X |
| Troff | X | X | |
| TCL | X | ||
| Tex | X | X | |
| Verilog | X(4) | X | |
| VHDL | X | ||
| Visual Basic | X | X | |
| VRML | X | ||
| XML | X | X | |
(*) Supported as inline code blocks in Wiki text using WikiProcessors.
(1) Ruby highlighting is not included in the Enscript distribution. Highlighting rules for Ruby can be obtained from: http://neugierig.org/software/ruby/
(2) C# highlighting is not included in the Enscript distribution. Highlighting rules for C# can be obtained from: http://wiki.hasno.info/index.php/Csharp.st
(3) Fortran: as packaged, Enscript only supports the fixed source form. Highlighting rules for Fortran 90x/2003 can be obtained from: http://wiki.hasno.info/index.php/F90.st
(4) since Silvercity 0.9.7 released on 2006-11-23
(5) By default .m files are considered Objective-C files. In order to treat .m files as MATLAB files, add "text/x-matlab:m" to the "mime_map" setting in the [mimeviewer] section of trac.ini.
Extra Software
- 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/
См. также: WikiProcessors, WikiFormatting, TracWiki, TracBrowser


