Extension:SyntaxHighlight GeSHi/ru
|
SyntaxHighlight_GeSHi Release status: stable |
|||
|---|---|---|---|
| Implementation | Tag | ||
| Description | Позволяет делать подсветку синтаксиса для исходного код на вики-страницах. | ||
| Author(s) | Brion Vibber, Tim Starling and Rob Church | ||
| Last version | trunk (17 май 2009) | ||
| MediaWiki | 1.11.+ | ||
| License | GPLv2 | ||
| Download |
README |
||
|
|||
|
|||
| Check usage and version matrix; stats | |||
| Bugs: list open list all report | |||
Extension:SyntaxHighlight GeSHi прозволяет форматировать исходный код с подсветкой синтаксиса <syntaxhighlight> .
Это расширение добавляет окраску в зависимости от языка. Как в тэгах <pre> и <poem>, содержимое отображается без изменений и с сохранением пробелов.
Это расширение также позволяет нумеровать строки.
Contents |
Использование[edit]
На вики странице Вы можете использовать элемент <syntaxhighlight>. Записанное так:
<syntaxhighlight lang="php">
<?php
$v = "string"; // sample initialization
?>
html text
<?
echo $v; // end of php code
?>
</syntaxhighlight>
будет выглядеть так:
<?php $v = "string"; // sample initialization ?> html text <? echo $v; // end of php code ?>
Альтернативный тег[edit]
До ревизии rev:50696 использовался тэг <source>. Такой же синтаксис (<source>) используется в некоторых других языках (например, XML). Таким образом, если код содержит <source>, они будут конфликтовать, поскольку интерпретатор не сможет определить, какой из них ( <source>) относится к коду, а какой относится к разметке вики. Чтобы этого избежать, введён дополнительный тег <syntaxhighlight>, доступный после ревизии rev:50696, рекомендованный к использованию.
Параметры[edit]
lang="??"- Определяет, какой язык программирования используется в исходном коде. Это влияет на выбор расширения для подсветки кода. Список значений приведен ниже, "Поддерживаемые языки".
line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS"- Тип нумерации строк (по умолчанию строки не нумеруются). Соответствует флагу enable_line_numbers GeSHi.
line start="??"- Используется вместе с параметром "line". Определяет стартовый номер строки. Если вы вставите line start="55", нумерация начнется с 55, потом 56,57,58... и т.д.. Соответствует методу start_line_numbers_at GeSHi
highlight="??"- Задает, какую строку подсветить. Нумерация строк ведется с начала, независимо от оператора line start="??".
enclose="??"- Определяет, какой тэг-контейнер используется для кода. Может принимать значения
pre(по умолчанию),div,none. Соответствует методу set_header_type GeSHi. При выбореdivтекст будет автоматически переноситься, что полезно, если текст выходит за рамки экрана, вынуждая его прокручивать. strict- Включает строгий режим. Соответствует методу enable_strict_mode GeSHi.
Более подробно об использовании этих параметров можно узнать в документации GeSHi.
Начиная с ревизии r22246, можно переопределять цвета подсветки MediaWiki:Geshi.css.
Дополнительные возможности[edit]
Когда добавлена нумерация строк с помощью line, длинные строки будут переноситься (см. пример ниже). Когда text является выбранным языком, и используется нумерация, поведение напоминает использование тэга pre с нумерацией и автоматическим переносом строк.
Следующий пример показывает как раскрасить листинг HTML:
<syntaxhighlight lang="html4strict" line start="100" highlight="5"> Здесь будет модуль HTML... </syntaxhighlight>
результат будет выглядеть так:
-
<!--This is a comment. Comments are not displayed in the browser--> -
<table align=center style="background: ivory;color:maroon;font-style:italic;font-family:arial;font-weight:bold;font-size:10pt;"> -
<tr><th> Heading 1 </th><th> Heading 2 </th></tr>
-
<tr> -
<td style="padding:10px;"> This is cell 1 text </td>
-
<td style="padding:10px;"> This is cell 2 text </td>
-
</tr> -
</table>
Поддерживаемые языки[edit]
Здесь указаны языки программирования, поддерживаемые GeSHi, которые можно использовать в параметре lang.
Проверьте, что установлена последняя версия GeSHi (Можно посмотреть, например, так: <syntaxhighlight lang="-"></syntaxhighlight>); см. bugzilla:10967 для сайтов Wikimedia.
Дополнительные функции[edit]
Язык исходного кода по умолчанию[edit]
Added in rev: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:
require_once("$IP/extensions/SyntaxHighlight_GeSHi/SyntaxHighlight_GeSHi.php"); $wgSyntaxHighlightDefaultLang = "c";
Установка[edit]
Шаг 1: Загрузка[edit]
- Способ 1
- Ручная загрузка из snapshot
Скачайте из snapshot ссылка
- Способ 2
- Ручная загрузка из subversion
Зайдите сюда: репозитарий расширений Subversion. Сохраните 4 файла с расширением PHP на свой компьютер. Загрузите эти файлы в папку extensions/SyntaxHighlight_GeSHi вашей вики.
Затем, с сайта проекта 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 утилиты из командной строки:
svn co http://svn.wikimedia.org/svnroot/mediawiki/trunk/extensions/SyntaxHighlight_GeSHi
При этом будет загружена также последняя стабильная версия GeSHi.
Сохраните все загруженные файлы в папке extensions/SyntaxHighlight_GeSHi вашей вики.
Замечание: Вы можете удалить папку с документацией extensions/SyntaxHighlight_GeSHi/geshi/docs и различные .svn-папки чтобы сэкономить несколько мегабайт. Вы также можете использовать командную строку утилиты SVN для загрузки последней стабильной версии без .svn-папок. Это избавит вас от необходимости поиска и устранения каждого из них.
svn export http://svn.wikimedia.org/svnroot/mediawiki/trunk/extensions/SyntaxHighlight_GeSHi
Шаг 2: Установка[edit]
Добавьте следующую строку в Ваш LocalSettings.php:
require_once("$IP/extensions/SyntaxHighlight_GeSHi/SyntaxHighlight_GeSHi.php");
- Установка GeSHi ( если не помогло )
Способ 1[edit]
Если Вы не установили GeSHi в каталог extensions/SyntaxHighlight_GeSHi/geshi, тогда измените следующую строку SyntaxHighlight_GeSHi.class.php в соответствии с путём к файлу geshi.php
require( 'geshi/geshi.php' );
Способ 2[edit]
Иногда вам нужно будет добавить абсолютный путь к geshi (/var/www/html/.../geshi/geshi.php)
Способ 3[edit]
Использования функцию PHP dirname() с глобальной постоянной __FILE__ :
require(dirname(__FILE__).'/geshi/geshi.php');
Настройка[edit]
Если вы хотите пунктирную границы как для <pre> тегов вы должны добавить их снова.
Метод 1: CSS файл[edit]
- Этот метод требует это расширение ревизии r52346 или выше
Добавьте MediaWiki:Geshi.css, MediaWiki:Monobook.css или MediaWiki:Common.css страницам:
div.mw-geshi { padding: 1em; margin: 1em 0; border: 1px dashed #2f6fab; background-color: #f9f9f9; }
Это даст всем GeSHi output (за исключением enclose="none") апунктирные границы почти идентичны <pre> в monobook/main.css
Метод 2: Встроенные CSS[edit]
You can also edit the SyntaxHighlight_GeSHi.class.php around line 215 (Line 264 in SVN trunk 82481). Look for this:
$css[] = "\tline-height: normal; border: 0px none white;";
and change it to:
$css[] = "\tline-height: normal; border: 1px dashed #2f6fab;";
On a Unix-like system simply type this command in the directory containing "SyntaxHighlight_GeSHi.class.php":
sed -i 's/$css\[\] = "\\tline-height: normal; border: 0px none white;";/ <!!!continued... THE LINE ABOVE AND THE LINE BELOW ARE ALL ONE LINE!> $css\[\] = "\\tline-height: normal; border: 1px dashed #2f6fab;";/g' \ SyntaxHighlight_GeSHi.class.php
Link to Extension Talk (2008): Extension talk:SyntaxHighlight GeSHi/Archive 2008#Problem with CSS: Default style for pre is overwritten
- See also rev: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 отображение[edit]
Длинные строки которые шире ширины страницы, могут испортить дизайн страницы при их отображении. Решение этой проблемы заключается в использовании тега "div", это можно включить по умолчанию, отредактировав SyntaxHighlight_GeSHi.class.php near line 156. Например так:
... if ( isset( $args['enclose'] ) ) { if ( $args['enclose'] === 'div' ) { $enclose = GESHI_HEADER_DIV; } elseif ( $args['enclose'] === 'none' ) { $enclose = GESHI_HEADER_NONE; } } ...
and append a else case to the if statement:
... if ( isset( $args['enclose'] ) ) { if ( $args['enclose'] === 'div' ) { $enclose = GESHI_HEADER_DIV; } elseif ( $args['enclose'] === 'none' ) { $enclose = GESHI_HEADER_NONE; } } else { $enclose = GESHI_HEADER_DIV;} ...
Баги и ограничения[edit]
Пока нет. Вы можете сообщить о багах здесь (на английском языке).
См. также[edit]
- 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.
| This extension is being used on one or more Wikimedia projects. This probably means that the extension is stable and works well enough to be used by such high-traffic websites. Look for this extension's name in Wikimedia's CommonSettings.php and InitialiseSettings.php configuration files to see where it's installed. A full list of the extensions installed on a particular wiki can be seen on the wiki's Special:Version page. |
| Язык: | English • Deutsch • 日本語 • русский |
|---|
