Extension:SyntaxHighlight/ru

Extension:SyntaxHighlight GeSHi прозволяет форматировать исходный код с подсветкой синтаксиса.

Это расширение добавляет окраску в зависимости от языка. Как в тэгах  и , содержимое отображается без изменений и с сохранением пробелов.

Это расширение также позволяет нумеровать строки.

Использование
На вики странице Вы можете использовать элемент. Записанное так:

будет выглядеть так:

Альтернативный тег
До ревизии 50696 использовался тэг. Такой же синтаксис используется в некоторых других языках (например, XML). Таким образом, если код содержит ) относится к коду, а какой относится к разметке вики. Чтобы этого избежать, введён дополнительный тег, доступный после ревизии 50696, рекомендованный к использованию.

Параметры

 * Определяет, какой язык программирования используется в исходном коде. Это влияет на выбор расширения для подсветки кода. Список значений приведен ниже, "Поддерживаемые языки".
 * Определяет, какой язык программирования используется в исходном коде. Это влияет на выбор расширения для подсветки кода. Список значений приведен ниже, "Поддерживаемые языки".


 * Тип нумерации строк (по умолчанию строки не нумеруются). Соответствует флагу enable_line_numbers GeSHi.
 * Тип нумерации строк (по умолчанию строки не нумеруются). Соответствует флагу enable_line_numbers GeSHi.


 * Используется вместе с параметром "line". Определяет стартовый номер строки. Если вы вставите line start="55", нумерация начнется с 55, потом 56,57,58... и т.д.. Соответствует методу start_line_numbers_at GeSHi
 * Используется вместе с параметром "line". Определяет стартовый номер строки. Если вы вставите line start="55", нумерация начнется с 55, потом 56,57,58... и т.д.. Соответствует методу start_line_numbers_at GeSHi


 * Задает, какую строку подсветить. Нумерация строк ведется с начала, независимо от оператора line start="??".
 * Задает, какую строку подсветить. Нумерация строк ведется с начала, независимо от оператора line start="??".


 * Определяет, какой тэг-контейнер используется для кода. Может принимать значения  (по умолчанию), ,  . Соответствует методу set_header_type GeSHi. При выборе   текст будет автоматически переноситься, что полезно, если текст выходит за рамки экрана, вынуждая его прокручивать.
 * Определяет, какой тэг-контейнер используется для кода. Может принимать значения  (по умолчанию), ,  . Соответствует методу set_header_type GeSHi. При выборе   текст будет автоматически переноситься, что полезно, если текст выходит за рамки экрана, вынуждая его прокручивать.


 * Включает строгий режим. Соответствует методу enable_strict_mode GeSHi.
 * Включает строгий режим. Соответствует методу enable_strict_mode GeSHi.

Более подробно об использовании этих параметров можно узнать в документации GeSHi.

Начиная с ревизии r22246, можно переопределять цвета подсветки MediaWiki:Geshi.css.

Дополнительные возможности
Когда добавлена нумерация строк с помощью line, длинные строки будут переноситься (см. пример ниже). Когда text является выбранным языком, и используется нумерация, поведение напоминает использование тэга pre с нумерацией и автоматическим переносом строк.

Следующий пример показывает как раскрасить листинг HTML:

результат будет выглядеть так:

Поддерживаемые языки
Здесь указаны языки программирования, поддерживаемые GeSHi, которые можно использовать в параметре lang.

Проверьте, что установлена последняя версия GeSHi (Можно посмотреть, например, так: );  см. 10967 для сайтов Wikimedia.

Язык исходного кода по умолчанию
Added in 50693.

If the site mainly quotes the source code of a specific programming language, it would be helpful to set a default language.

To do so, add a new variable to LocalSettings.php, just after the require_once line. We set C programming language as an example:

Установка
The MediaWiki extension requires the GeSHi project files ([from SourceForge) to work! To make this easier, the extension in git includes the Geshi project in a subdirectory named.

Notes:
 * GeSHi 1.1.2alpha3 does not work with the MediaWiki extension.
 * You can delete the extensions/SyntaxHighlight_GeSHi/geshi/docs directory to save a few megabytes.

Step 1: downloading
Use a Git tool to clone https://gerrit.wikimedia.org/r/p/mediawiki/extensions/SyntaxHighlight_GeSHi.git in the extensions directory of your wiki. For example using the Git command-line tool:

Note: Make sure the below control executes from within wiki/extensions/ folder. Otherwise you need to move this folder from current location to wiki/extensions folder using  control.

Or you can use the ExtensionDistributor.

Step 2: Installation
Add this line to the end of your LocalSettings.php:


 * GeSHi installation (optional)

If you didn't put GeSHi in the extensions/SyntaxHighlight_GeSHi/geshi directory, then change the following line in SyntaxHighlight_GeSHi.class.php to suit the path of your geshi.php file

Sometimes you will need to add the absolute path to geshi (/var/www/html/.../geshi/geshi.php)

Here's a shortcut using the PHP dirname function with the magic __FILE__ constant:

Настройка
Если вы хотите пунктирную границы как для    тегов вы должны добавить их снова.

Метод 1: CSS файл

 * Этот метод требует это расширение ревизии r52346 или выше

Добавьте MediaWiki:Geshi.css, MediaWiki:Monobook.css или MediaWiki:Common.css страницам:

Это даст всем GeSHi output (за исключением enclose="none") апунктирные границы почти идентичны &lt;pre&gt; в monobook/main.css

Метод 2: Встроенные CSS
You can also edit the SyntaxHighlight_GeSHi.class.php around line 215 (Line 264 in SVN trunk 82481). Look for this: and change it to: On a Unix-like system simply type this command in the directory containing "SyntaxHighlight_GeSHi.class.php": Link to Extension Talk (2008): Extension talk:SyntaxHighlight GeSHi/Archive 2008
 * See also 52346.


 * If you already add the extension to LocalSettings.php before changing this, comment it out via "#" and refresh the page, then remove the # and refresh one more time.

Метод 3. По умолчанию: основанное на DIV отображение
Длинные строки которые шире ширины страницы, могут испортить дизайн страницы при их отображении. Решение этой проблемы заключается в использовании тега "div", это можно включить по умолчанию, отредактировав SyntaxHighlight_GeSHi.class.php near line 156. Например так: and append a else case to the if statement:

Баги и ограничения
''Пока нет. Вы можете сообщить о багах здесь (на английском языке).''

См. также

 * GeSHiCodeTag - работающее альтернативное расширение подсветки синтаксиса тоже использующее Geshi
 * GeSHi - Generic Syntax Highlighter
 * ASHighlight (MediaWiki поддержка Andre Simon's highlight utility)
 * Extension:Geshi включает все компоненты - без дополнительных загрузок
 * Extension:Include -- еще одно расширение для подсветки синтаксиса исходного код
 * Extension:SyntaxHighlight_GeSHi_ParserFunction -- основанный на альтернативной Parser function, можно использовать с Semantic MediaWiki
 * Extension:GoogleCodePrettify - подсветка синтаксиса использующая Google Code Prettify library.
 * Extension:SyntaxHighlighter - подсветка синтаксиса использующая библиотеку SyntaxHighlighter.