| 1 | = Syntax Coloring of Source Code = |
| 2 | [[TranslatedPages(revision=0)]] |
| 3 | |
| 4 | = Подсветка синтаксиса в исходных кодах = |
| 5 | Trac поддерживает подсветку синтаксиса языков программирования в [wiki:WikiFormatting wiki-форматированных] текстах и [wiki:TracBrowser SVN-репозитории]. |
| 6 | |
| 7 | Trac использует внешние библиотеки с поддержкой большого числа языков программирования. |
| 8 | |
| 9 | В настоящее время Trac поддерживает подсветку синтаксиса, используя один или больше следующих пакетов: |
| 10 | |
| 11 | * [http://www.codento.com/people/mtr/genscript/ GNU Enscript] |
| 12 | * [http://silvercity.sourceforge.net/ SilverCity] |
| 13 | * [http://pygments.pocoo.org/ Pygments] (но нуждается в плагине для 0.10, см. [#AboutPygments ниже]) |
| 14 | |
| 15 | Чтобы включить подсветку синтаксиса, просто установите или один (или больше) из этих пакетов. Никакая дополнительная конфигурация не требуется, однако чтобы изменить цвета, взгляните на 'trac/htdocs/css/code.css'. |
| 16 | |
| 17 | Если Вы не знаете, почему 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 |
| 18 | |
| 19 | Trac автоматически отдает приоритет !SilverCity прежде Enscript если возможно (см. примечание ниже). |
| 20 | |
| 21 | Если никакой из этих пакетов не доступен, Trac отобразит простой plain-текст. |
| 22 | |
| 23 | '''Примечание:''' Enscript поддерживает большее число языков, однако !SilverCity быстрее работает, потому что реализован в виде библиотеки и не выполняется во внешнем процессе. |
| 24 | |
| 25 | === !SilverCity === |
| 26 | !SilverCity использует лексический анализатор (lexer) [http://www.scintilla.org/ Scintilla]. Scintilla поддерживает больше языков, чем !SilverCity. Если вы хотите добавить к !SilverCity еще один язык, уже поддерживаемый Scintiilla, это совсем не трудно. См. [http://trac.edgewall.org/wiki/SilverCityAddLanguage SilverCityAddLanguage] для дополнительной информации. |
| 27 | |
| 28 | === Pygments === |
| 29 | Начиная с версии trac 0.11 [http://pygments.org/ pygments] будет новым модулем подсветки синтаксиса по умолчанию. Эта библиотека реализована на чистом python, очень быстрая, легко расширяется и [http://pygments.org/docs/ хорошо документирована]. Пока не поддерживает столь же много языков, как Enscript или Scintilla, но в целом исполнение более качественное. |
| 30 | |
| 31 | Чтобы использовать pygments в trac 0.11 вы должны установить pygments 0.5.1 или выше. Для использования в trac 0.10 вы должны также установить [http://trac-hacks.org/wiki/TracPygmentsPlugin TracPygmentsPlugin] из trac hacks. Если вы нашли любой баг, пожалуйста обращайтесь к [http://dev.pocoo.org/projects/pygments/ pygments trac]. |
| 32 | |
| 33 | Возможно, приведенная ниже таблица уже устарела, потому что список поддерживаемых языков анализатором pygments пополняется каждую неделю. Просто взгляните на страницу [http://pygments.org/docs/lexers/ поддержки языкового анализатора] pygments. |
| 34 | |
| 35 | == Выделение синтаксиса исходников == |
| 36 | |
| 37 | || || !SilverCity || Enscript || Pygments || |
| 38 | || Ada || || X || || |
| 39 | || Asm || || X || || |
| 40 | || Apache Conf (htaccess)) || || || X || |
| 41 | || * ASP || X || X || || |
| 42 | || * C || X || X || X || |
| 43 | || * C# || || X(2) || X || |
| 44 | || * C++ || X || X || X || |
| 45 | || * CMake || ? || ? || X || |
| 46 | || * Java || X(4)|| X || X || |
| 47 | || Awk || || X || || |
| 48 | || Boo || || || X || |
| 49 | || CSS || X || || X || |
| 50 | || Python Doctests || || || X || |
| 51 | || Diff || || X || X || |
| 52 | || Eiffel || || X || || |
| 53 | || Elisp || || X || || |
| 54 | || Fortran || || X(3) || || |
| 55 | || Haskell || || X || X || |
| 56 | || Genshi || || || X || |
| 57 | || HTML || X || X || X || |
| 58 | || IDL || || X || || |
| 59 | || INI || || || X || |
| 60 | || Javascript || X || X || X || |
| 61 | || Lua || || || X || |
| 62 | || m4 || || X || || |
| 63 | || Makefile || || X || X || |
| 64 | || Mako || || || X || |
| 65 | || Matlab || || X (5) || || |
| 66 | || Mygthy || || || X || |
| 67 | || Objective-C|| || X || || |
| 68 | || OCaml || || || X || |
| 69 | || Pascal || || X || X || |
| 70 | || * Perl || X || X || X || |
| 71 | || * PHP || X || || X || |
| 72 | || PSP || X || || || |
| 73 | || Pyrex || || X || || |
| 74 | || * Python || X || X || X || |
| 75 | || * Ruby || X || X (1) || X || |
| 76 | || Scheme || || X || X || |
| 77 | || Shell || || X || X || |
| 78 | || Smarty || || || X || |
| 79 | || SQL || X || X || X || |
| 80 | || Troff || || X || X || |
| 81 | || TCL || || X || || |
| 82 | || Tex || || X || X || |
| 83 | || Verilog || X(4) || X || || |
| 84 | || VHDL || || X || || |
| 85 | || Visual Basic |||| X || X || |
| 86 | || VRML || || X || || |
| 87 | || XML || X || || X || |
| 88 | |
| 89 | ''(*) Supported as inline code blocks in [wiki:WikiFormatting Wiki text] using WikiProcessors.'' |
| 90 | |
| 91 | ''(1) Ruby highlighting is not included in the Enscript distribution. Highlighting rules for Ruby can be obtained from: http://neugierig.org/software/ruby/ |
| 92 | |
| 93 | ''(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 |
| 94 | |
| 95 | ''(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 |
| 96 | |
| 97 | ''(4) since Silvercity 0.9.7 released on 2006-11-23 |
| 98 | |
| 99 | ''(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 [wiki:TracIni#mimeviewer-section "[mimeviewer] section of trac.ini"]. |
| 100 | |
| 101 | == Extra Software == |
| 102 | * GNU Enscript -- http://directory.fsf.org/GNU/enscript.html |
| 103 | * GNU Enscript for Windows -- http://gnuwin32.sourceforge.net/packages/enscript.htm |
| 104 | * !SilverCity -- http://silvercity.sf.net/ |
| 105 | * Pygments -- http://pygments.org/ |
| 106 | |
| 107 | ---- |
| 108 | См. также: WikiProcessors, WikiFormatting, TracWiki, TracBrowser |
| 109 | |