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:

Шаг 1: Загрузка

 * Способ 1: Ручная загрузка из snapshot

Скачайте из snapshot ссылка

Зайдите сюда: репозитарий расширений Subversion. Сохраните 4 файла с расширением PHP на свой компьютер. Загрузите эти файлы в папку extensions/SyntaxHighlight_GeSHi вашей вики.
 * Способ 2: Ручная загрузка из subversion

Затем, с сайта проекта GeSHi сохраните последний стабильный релиз. Распакуйте и загрузите эти файлы в папку extensions/SyntaxHighlight_GeSHi/geshi вашей вики.

Замечания:
 * GeSHi 1.1.2alpha3 не работает с расширением MediaWiki.
 * Чтобы расширение MediaWiki и GeSHi нормально совместно работали их необходимо загрузить с SourceForge!
 * Вы можете удалить каталог extensions/SyntaxHighlight_GeSHi/geshi/docs, чтобы сэкономить несколько мегабайт.


 * Способ 3: GeSHi + расширение MW из (SVN)

С ревизии r46666, Geshi встроенна в subversion. Когда Вы загружаете ExtensionDistributor или папку из SVN, она уже содержит папку "geshi" внутри папки SyntaxHighlight_GeSHi. В этом случае GeSHi уже установлен.


 * Способ 4: Используя средства SVN

Используя SVN утилиту загрузите http://svn.wikimedia.org/svnroot/mediawiki/trunk/extensions/SyntaxHighlight_GeSHi/. пример использования SVN утилиты из командной строки:

При этом будет загружена также последняя стабильная версия GeSHi.

Сохраните все загруженные файлы в папке extensions/SyntaxHighlight_GeSHi вашей вики.

Замечание: Вы можете удалить папку с документацией extensions/SyntaxHighlight_GeSHi/geshi/docs и различные .svn-папки чтобы сэкономить несколько мегабайт. Вы также можете использовать командную строку утилиты SVN для загрузки последней стабильной версии без .svn-папок. Это избавит вас от необходимости поиска и устранения каждого из них.

Шаг 2: Установка
Добавьте следующую строку в Ваш LocalSettings.php:


 * Установка GeSHi ( если не помогло )

Способ 1
Если Вы не установили GeSHi в каталог extensions/SyntaxHighlight_GeSHi/geshi, тогда измените следующую строку SyntaxHighlight_GeSHi.class.php</tt> в соответствии с путём к файлу geshi.php

Способ 2
Иногда вам нужно будет добавить абсолютный путь к geshi (/var/www/html/.../geshi/geshi.php)

Способ 3
Использования функцию PHP dirname с глобальной постоянной __FILE__ :

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

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

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

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

Это даст всем GeSHi output (за исключением enclose="none"</tt>) апунктирные границы почти идентичны &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.