Extension:SyntaxHighlight/ru

From MediaWiki.org
Jump to: navigation, search

This page is in progress of translating to Russian. You can help translating it or go to another language version that follows:

Эта страница в процессе перевода на русский язык. Вы можете помочь в переводе или перейти на другие языковые версии, указанные ниже:

Язык:Project:Language policy English  • Deutsch • 日本語 • русский

Перевод устарел! Помогите обновить информацию на странице до актуальной версии!

Справка по расширениям MediaWikiManual:Extensions
Crystal Clear action run.png
SyntaxHighlight_GeSHi

Статус релиза:Extension status стабильный

РеализацияTemplate:Extension#type Tag
ОписаниеTemplate:Extension#description Позволяет делать подсветку синтаксиса для исходного код на вики-страницах.
Автор(ы)Template:Extension#username Brion Vibber, Tim Starling and Rob Church
Последняя версияTemplate:Extension#version continuous updates
MediaWikiTemplate:Extension#mediawiki 1.24.+
Изменения БДTemplate:Extension#needs-updatephp Нет
ЛицензияTemplate:Extension#license GPLv2
Загрузка
README
ПараметрыTemplate:Extension#parameters

$wgSyntaxHighlightDefaultLang

ТэгиTemplate:Extension#tags
<syntaxhighlight>
Использованные hook'иTemplate:Extension#hook
ShowRawCssJsManual:Hooks/ShowRawCssJs
ParserFirstCallInitManual:Hooks/ParserFirstCallInit
ExtensionTypesManual:Hooks/ExtensionTypes

Переведите расширение SyntaxHighlight если оно доступно на translatewiki.net

Проверьте использование и версию.

ПроблемыPhabricator

Открытые задачи · (GeSHi) Сообщить об ошибке

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

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

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

Использование[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).

Параметры[edit]

lang="??"
Определяет, какой язык программирования используется в исходном коде. Это влияет на выбор расширения для подсветки кода. Список значений приведен ниже, "Поддерживаемые языки".
line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS"
Тип нумерации строк (по умолчанию строки не нумеруются). Соответствует флагу enable_line_numbers GeSHi.
line
Equivalent to line="GESHI_FANCY_LINE_NUMBERS"
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 method on GeSHi.

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

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

Дополнительные возможности[edit]

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

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

<syntaxhighlight lang="html4strict" line start="100" highlight="5">
Здесь будет модуль HTML...
</syntaxhighlight>

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

100 <!--This is a comment. Comments are not displayed in the browser-->
101 <table align=center style="background: ivory;color:maroon;font-style:italic;font-family:arial;font-weight:bold;font-size:10pt;"> 
102 <tr><th> Heading 1 </th><th> Heading 2 </th></tr>
103 <tr>
104 <td style="padding:10px;"> This is cell 1 text </td>
105 <td style="padding:10px;"> This is cell 2 text </td>
106 </tr>
107 </table>

Поддерживаемые языки[edit]

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

Note that installed GeSHi version (can be revealed by previewing e.g. <syntaxhighlight lang="-"></syntaxhighlight>) might not be the most recent version; see bugzilla:10967 for Wikimedia sites.

Проверьте, что установлена последняя версия GeSHi (Можно посмотреть, например, так: <syntaxhighlight lang="-"></syntaxhighlight>); см. bugzilla:10967 для сайтов Wikimedia.

Код Язык
abap ABAP
actionscript ActionScript
ada Ada
apache Apache Configuration
applescript AppleScript
asm Assembly
asp Active Server Pages (ASP)
autoit AutoIt
bash Bash
basic4gl Basic4GL
bf Brainfuck
blitzbasic Blitz BASIC
bnf Backus-Naur Form
c C
c_mac C (Mac)
caddcl AutoCAD DCL
cadlisp AutoLISP
cfdg CFDG
cfm ColdFusion Markup Language
cil Common Intermediate Language (CIL)
cobol COBOL
cpp-qt C++ (Qt toolkit)
cpp C++
csharp C#
css Cascading Style Sheets (CSS)
d D
delphi Delphi
diff Diff
div DIV
dos DOS batch file
dot DOT
eiffel Eiffel
fortran Fortran
freebasic FreeBASIC
gambas Gambas
genero Genero
gettext GNU internationalization (i18n) library
glsl OpenGL Shading Language (GLSL)
gml Game Maker Language (GML)
gnuplot gnuplot
groovy Groovy
haskell Haskell
hq9plus HQ9+
html4strict HTML
html5 HTML5
idl Uno IDL
ini INI
inno Inno
intercal INTERCAL
io Io
java Java
java5 Java(TM) 2 Platform Standard Edition 5.0
javascript JavaScript
kixtart KiXtart
klonec Klone C
klonecpp Klone C++
latex LaTeX
lisp Lisp
lolcode LOLCODE
lotusscript LotusScript
lua Lua
Код Языки
m68k Motorola 68000 Assembler
make make
matlab MATLAB M
mirc mIRC scripting language
mxml MXML
mpasm Microchip Assembler
mysql MySQL
nsis Nullsoft Scriptable Install System (NSIS)
objc Objective-C
ocaml-brief OCaml
ocaml OCaml
oobas OpenOffice.org Basic
oracle8 Oracle 8 SQL
oracle11 Oracle 11 SQL
pascal Pascal
per per
perl Perl
php-brief PHP
php PHP
pixelbender Pixel Bender
plsql PL/SQL
povray Persistence of Vision Raytracer
powershell Windows PowerShell
progress OpenEdge Advanced Business Language
prolog Prolog
providex ProvideX
python Python
qbasic QBasic/QuickBASIC
rails Rails
reg Windows Registry
robots robots.txt
rsplus R
ruby Ruby
sas SAS
scala Scala
scheme Scheme
scilab Scilab
sdlbasic SdlBasic
smalltalk Smalltalk
smarty Smarty
sql SQL
tcl Tcl
teraterm Tera Term
text Plain text
thinbasic thinBasic
tsql Transact-SQL
typoscript TypoScript
vala Vala
vb Visual Basic
vbnet Visual Basic .NET
verilog Verilog
vhdl VHDL
vim Vimscript
visualfoxpro Visual FoxPro
visualprolog Visual Prolog
whitespace Whitespace
winbatch Winbatch
xml XML
xorg_conf Xorg.conf
xpp X++
z80 ZiLOG Z80 Assembler

Дополнительные функции[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]

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 geshi.

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[edit]

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

mv <source> <destination>

control.

git clone https://gerrit.wikimedia.org/r/p/mediawiki/extensions/SyntaxHighlight_GeSHi.git


Or you can use the ExtensionDistributor.

Step 2: Installation[edit]

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

require_once("$IP/extensions/SyntaxHighlight_GeSHi/SyntaxHighlight_GeSHi.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

require( 'geshi/geshi.php' );

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:

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 an 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]


Язык:Project:Language policy English  • Deutsch • 日本語 • русский