Extension:SyntaxHighlight/ru

Расширение SyntaxHighlight, ранее известное как SyntaxHighlight_GeSHi обеспечивает огромное количество подсветок синтаксиса source code используя тег Расширение работает от библиотеки Pygments и поддерживает сотни различных языков программирования и форматов файлов.

Подобно тегам  и , текст отображается точно так же, как и набранный, сохраняя любое пустое пространство.

Применение
После установки вы можете использовать теги «syntaxhighlight» на страницах вики. Например,

является результатом следующей разметки wikitext:

В старых версиях (до MediaWiki 1.16) расширение использовало тег. Этот вариант по-прежнему поддерживается, но  может помочь избежать конфликтов, если сам исходный код содержит   теги (например, XML).

Стайлинг
Если отображаемый код слишком велик, вы можете настроить его, поместив следующее на страницу MediaWiki:Common.css в своей вики (создайте ее, если она не существует):

Выделение рамкой кодовых блоков в границах можно сделать, вставив строку, подобную, в секции выше. Контроль над «семейством используемых шрифтов» также может быть осуществлен путем вставки строки, такой как, в секции выше.

Категория подсветки ошибок синтаксиса
Расширение добавляет страницы, которые имеют атрибут испорченный  в теге   или   в категорию tracking category. Ключ сообщения MediaWiki:syntaxhighlight-error-category определяет имя категории; на этой вики это Category:.

Наиболее распространенная ошибка, которая приводит к тому, что страницы, помечаются этой категорией, представляет собой тег  или тег   без атрибута. These can typically be replaced with  or   can be added.

Второй наиболее распространенной ошибкой является использование  или , которые не поддерживаются. Обычно их можно заменить на  или.

lang
Атрибут $ lang определяет, какой lexer следует использовать. Язык влияет на то, как расширение подсвечивает исходный код. Pygments парсер синтаксиса чувствителен к регистру, и все языки имеют как минимум одну заглавную букву (языки с именами в нижнем регистре - reserved for gtags). Подробнее о поддерживаемых языках см. В разделе Supported languages.

Подробнее о поддерживаемых языках см. В разделе Supported languages. Подробнее см. в разделе Syntax highlighting error category на этой странице.

line
Атрибут  активирует нумерацию строк.

start
Атрибут  (в сочетании с  ) определяет первый номер строк кода. Например,  начнет нумерацию строк с числа 55.

highlight
Атрибут  указывает одну или несколько строк, которые должны быть отмечены (путем выделения этих строк другим цветом фона). Вы можете указать несколько номеров строк, разделенных запятыми (например, ) или диапазоны, используя два номера строк и дефис (например,  ). Обратите внимание, что характеристика номера строки игнорирует любую перенумерацию отображаемых номеров строк с атрибутом.

является результатом

inline
Атрибут указывает, что исходный код должен быть встроенным как часть абзаца (в отличие от отдельного блока). Эта опция доступна начиная с MediaWiki 1.26. Для обратной совместимости атрибут  приводит к такому же поведению.

Обратите внимание, что разрывы строк могут возникать в любом пространстве между тегами открытия и закрытия, если исходный код не помечен как неклассируемый с помощью  (на тех вики, которые его поддерживают, см. Ниже) или.

Например:

- это lambda expression в Python.

Является результатом:

это lambda expression в Python.

class
Использование,   (на тех вики, которые его поддерживают, а не на самой MediaWiki) указывает, что разрывы строк не должны возникать в пробелах внутри блока кода.

Например:

Без :

xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx With : xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

style
Атрибут  позволяет напрямую использовать атрибуты CSS. Это эквивалентно включению блока в тег  (не  ). Атрибут  не может быть указан таким образом; для этого требуется заключение в тег , как описано ниже в Advanced.

Например:

Является результатом:

Поддерживаемые языки
Библиотека Pygments обеспечивает поддержку сотен компьютерных языков и форматированных файлов. Краткий список языков:

AppleScript, Assembly, Asymptote, Awk, Befunge, Boo, BrainFuck, C, C++, C#, Clojure, CoffeeScript, ColdFusion, Common Lisp, Coq, Cryptol, Crystal, Cython, D, Dart, Delphi, Dylan, Elm, Erlang, Ezhil, Factor, Fancy, Fortran, F#, GAP, Gherkin, GL shaders, Groovy, Haskell, IDL, Io, Java, JavaScript, Lasso, LLVM, Logtalk, Lua, Matlab, MiniD, Modelica, Modula-2, MuPad, Nemerle, Nimrod, Objective-C, Objective-J, Octave, OCaml, PHP, Perl, PovRay, PostScript, PowerShell, Prolog, Python 2.x and 3.x (incl. console sessions and tracebacks), REBOL, Red, Redcode, Ruby, Rust, S, S-Plus, R, Scala, Scheme, Scilab, Smalltalk, SNOBOL, Tcl, Vala, Verilog, VHDL, Visual Basic.NET, Visual FoxPro, XQuery, Zephir

(full list и complete details in the Pygments document), и здесь некоторые сопоставления для некоторых языков, которые поддерживались GeSHi (full list).

Below is a partial list of languages that GeSHi could highlight, with strike-through for languages no longer supported after the switch to Pygments.

Configuration

 * Linux:


 * (optional): Absolute path to pygmentize of the Pygments package. The extension bundles the Pygments package and  points to the bundled version by default, but you can point to a different version, if you want to. For example:.
 * : Configure the default lexer for some wiki pages. By default this will highlight javascript and css pages. Additional content models can be configured by extensions (e.g. Lua, JSON, ..).


 * Windows:


 * If you are hosting your Mediawiki on a Windows machine, you have to set the path for the Pygmentize.exe
 * If there is no  run   from command line inside the   folder to generate the file.

If you are using the bundled pygmentize binary (extensions/SyntaxHighlight_GeSHi/pygments/pygmentize), make sure your webserver is permitted to execute it. If your host does not allow you to add executables to your web directory, install python-pygments and add  to LocalSettings.php.


 * Troubleshooting:

After updating to MediaWiki v1.26 and above, some users started reporting problems with the extension.


 * Try pointing  in LocalSettings.php towards an external pygmentize binary.
 * See the phabricator task on this for further suggestions and information.

VisualEditor integration
The plugin enables direct editing with VisualEditor. A popup is opened when a user wants to edit  or   sections. For this to work, VisualEditor must be installed and configured from the latest git version, same for Parsoid. The feature randomly does not work with older Parsoid versions.

Advanced
Unlike the  and   tags, HTML character entities such as   need not have the   character escaped as. Like the  tag but unlike the   tag, tags within the range (other than its own closing tag) need not have the   symbol escaped as , nor does wikitext need to be escaped with a   tag.

Furthermore, while  assumes tab stops every 8 characters and renders tabs using actual spaces when the rendered text is copied,   uses 4-space tab stops (except Internet Explorer, which uses 8) and preserves the tab characters in the rendered text; the latter may be changed using an enclosing   tag (not , and not using own   attribute). The  prefix is required for Firefox (from version 4.0), and the   prefix is required for Opera (from version 10.60 to version 15). (Note that the wiki editing box assumes 8-space tabs.) This applies only to actual saved pages; previews generated through an edit box or Special:ExpandTemplates may differ.