Extension:SyntaxHighlight/ru

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

Это расширение добавляет окраску в зависимости от настройки кода на языке. Like the  tags and the   tags, the tags shows the coding exactly as it was typed, preserving white space.

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

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

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

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

Параметры

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


 * Type of line numbering to use (default is no line numbering). Corresponds to enable_line_numbers the flag in GeSHi.
 * Type of line numbering to use (default is no line numbering). Corresponds to enable_line_numbers the flag in GeSHi.


 * Use together with the parameter "line". Define the start number of the line. If you type line start="55", it will start counting at 55, then 56,57,58... and so on. Corresponds to start_line_numbers_at method on GeSHi
 * Use together with the parameter "line". Define the start number of the line. If you type line start="55", it will start counting at 55, then 56,57,58... and so on. Corresponds to start_line_numbers_at method on GeSHi


 * Specifies which line is highlighted. Note that the parameter line start="??" doesn't affect how it counts the lines.
 * Specifies which line is highlighted. Note that the parameter line start="??" doesn't affect how it counts the lines.


 * Specifies what container is used to enclose the source code. Takes values "pre" (default value), "div", "none". Corresponds to set_header_type method on GeSHi. Choosing "div" will cause text to wrap, which is helpful if text is extending off the edge of the screen, causing horizontal scrolling.
 * Specifies what container is used to enclose the source code. Takes values "pre" (default value), "div", "none". Corresponds to set_header_type method on GeSHi. Choosing "div" will cause text to wrap, which is helpful if text is extending off the edge of the screen, causing horizontal scrolling.


 * Type the name of the parameter to enable the strict mode. Corresponds to enable_strict_mode method on GeSHi.
 * Type the name of the parameter to enable the strict mode. Corresponds to enable_strict_mode method on GeSHi.

The effect and usage of these parameters can be consulted in GeSHi's documentation.

Since r22246, you can override the colors using MediaWiki:Geshi.css.

Дополнительные возможности
When line numbering is added with line, long code lines will be wrapped. See the example below. When text is the selected language, and numbering is used, the behaviour resembles the use of pre tags with numbering and long-line wrapping.

The following example shows how to color an HTML code listing: A typical result is just:

Поддерживаемые языки
Здесь указанны языки программирования поддерживаемые 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.