Although README says that the extension works under MW 1.25, it doesn't. Not always, at least.
Line 171 of SyntaxHighlight_GeSHi.class.php refers to Parser::MARKER_PREFIX constant. But it is not defined in MW 1.25, only in 1.26.
Although README says that the extension works under MW 1.25, it doesn't. Not always, at least.
Line 171 of SyntaxHighlight_GeSHi.class.php refers to Parser::MARKER_PREFIX constant. But it is not defined in MW 1.25, only in 1.26.
Are you sure you downloaded the 1.25 snapshot? https://www.mediawiki.org/wiki/Special:ExtensionDistributor?extdist_name=SyntaxHighlight_GeSHi&extdist_version=REL1_25&extdist_submit=
I tried that and didn't see any mention of MARKER_PREFIX in the .class.php file.
>>! In T105796#1452935, @TTO wrote: > Are you sure you downloaded the 1.25 snapshot? https://www.mediawiki.org/wiki/Special:ExtensionDistributor?extdist_name=SyntaxHighlight_GeSHi&extdist_version=REL1_25&extdist_submit= I used git, master branch, as README there said it was tested under MW 1.25. I tried REL1_25 at first, but it was even worse. There were also MediaWIki errors for large pages which used geshi and then HHVM segfaulted. Below is an example of HHVM stacj trace, the MediaWIki error is at the end. There are cases when segfault happens when Scribunto is not involved (and Syntax Highlight GeSHi still is) but the stacktrace is empty then. Host: ip-10-0-0-152 ProcessID: 16993 ThreadID: 7f5f863ff700 ThreadPID: 16997 Name: unknown program Type: Segmentation fault Runtime: hhvm Version: tags/HHVM-3.7.3-0-g08c64d25f6c2cd316730b1d37db9eb33744cb306 DebuggerCount: 0 Server: traditio-ru.org ThreadType: Web Request Server_SERVER_NAME: traditio-ru.org URL: /wiki/%D0%A1%D0%BF%D1%80%D0%B0%D0%B2%D0%BA%D0%B0:Syntaxhighlight PHP Stacktrace: #0 GeSHi->parse_non_string_part( m [chemistryData.apiShowFormula] = <|/1/>function|> (frame) <|/1/>local|> nextfunc, static, cur = pairs (frame.args) <|/1/>if|> nextfunc (static, cur) == nil <|/1/>then|> ) called at [/var/www/traditio.ru/w/extensions/SyntaxHighlight_GeSHi/geshi/geshi.php:3090] #1 GeSHi->parse_code() called at [/var/www/traditio.ru/w/extensions/SyntaxHighlight_GeSHi/SyntaxHighlight_GeSHi.class.php:123] #2 SyntaxHighlight_GeSHi::parserHook(-- Регистрация эспортируемых функций: -- «оформить формулу»: m [chemistryData.apiShowFormula] = function (frame) local nextfunc, static, cur = pairs (frame.args) if nextfunc (static, cur) == nil then -- аргументы не переданы. Использовать аргументы шаблона: return showFormula (frame:getParent ().args) else -- переданы аргументы: return showFormula (frame.args) end end -- Последняя строка. Экспорт функций из модуля: return m, Array, Object of class Parser could not be converted to string) called at [/var/www/traditio.ru/w/includes/parser/Parser.php:4212] #3 Parser->extensionSubstitution(Array, frame{}) called at [/var/www/traditio.ru/w/includes/parser/Preprocessor_Hash.php:1165] #4 PPFrame_Hash->expand(<root><template><title>Тэг </title><part><name> расширение </name>=<value> SyntaxHighlight GeSHi </value></part><part><name> описание </name>=<value> Выводит исходный код с подсветкой синтаксиса </value></part><part><name> автор </name>=<value> [[Brion Vibber]], [[Tim Starling]] и [[Rob Church]] </value></part><part><name> lang </name>=<value> [[язык программирования]] </value></part><part><name> line </name>=<value> (GESHI_NORMAL_LINE_NUMBERS<template><title>!</title></template>GESHI_FANCY_LINE_NUMBERS) или пустое значение для показа номеров строк </value></part><part><name> start </name>=<value> номер первой строки </value></part><part><name> highlight </name>=<value> номер подсвеченной строки (без учёта line start) </value></part><part><name> enclose </name>=<value> тэг [[HTML]], содержащий код — pre по умолчанию, div или none </value></part><part><name> strict </name>=<value> использовать строгий режим </value></part><part><name> содержимое </name>=<value> Исходный код </value></part><part><name> возврат </name>=<value> Исходный код с подсветкой синтаксиса </value></part></template> <template lineStart="1"><title>tag</title><part><name index="1"/><value>syntaxhighlight</value></part></template>, а также, <template><title>tag</title><part><name index="1"/><value>source</value></part></template> — [[Справка:тэг MediaWiki|тэг ''MediaWiki'']] для вывода исходного кода с [[подсветка синтаксиса|подсветкой синтаксиса]], предоставляемый [[Расширение MediaWiki|расширением]] ''SyntaxHighlight GeSHi''. <h level="2" i="1">== Примеры ==</h> {| class="wikitable" ! Описание !! Викитекст !! Вывод |- ! Простой фрагмент кода на [[Lua]] | <ext><name>pre</name><attr/><inner><nowiki> <syntaxhighlight lang="lua"> -- Регистрация эспортируемых функций: -- «оформить формулу»: m [chemistryData.apiShowFormula] = function (frame) local nextfunc, static, cur = pairs (frame.args) if nextfunc (static, cur) == nil then -- аргументы не переданы. Использовать аргументы шаблона: return showFormula (frame:getParent ().args) else -- переданы аргументы: return showFormula (frame.args) end end -- Последняя строка. Экспорт функций из модуля: return m</syntaxhighlight> </nowiki></inner><close></pre></close></ext> | <ext><name>syntaxhighlight</name><attr> lang="lua"</attr><inner> -- Регистрация эспортируемых функций: -- «оформить формулу»: m [chemistryData.apiShowFormula] = function (frame) local nextfunc, static, cur = pairs (frame.args) if nextfunc (static, cur) == nil then -- аргументы не переданы. Использовать аргументы шаблона: return showFormula (frame:getParent ().args) else -- переданы аргументы: return showFormula (frame.args) end end -- Последняя строка. Экспорт функций из модуля: return m </inner><close></syntaxhighlight></close></ext> |- ! Код с нумерацией строк | <ext><name>pre</name><attr/><inner><nowiki> <syntaxhighlight lang="lua" line> -- Регистрация эспортируемых функций: -- «оформить формулу»: m [chemistryData.apiShowFormula] = function (frame) local nextfunc, static, cur = pairs (frame.args) if nextfunc (static, cur) == nil then -- аргументы не переданы. Использовать аргументы шаблона: return showFormula (frame:getParent ().args) else -- переданы аргументы: return showFormula (frame.args) end end -- Последняя строка. Экспорт функций из модуля: return m </syntaxhighlight> </nowiki></inner><close></pre></close></ext> | <ext><name>syntaxhighlight</name><attr> lang="lua" line</attr><inner> -- Регистрация эспортируемых функций: -- «оформить формулу»: m [chemistryData.apiShowFormula] = function (frame) local nextfunc, static, cur = pairs (frame.args) if nextfunc (static, cur) == nil then -- аргументы не переданы. Использовать аргументы шаблона: return showFormula (frame:getParent ().args) else -- переданы аргументы: return showFormula (frame.args) end end -- Последняя строка. Экспорт функций из модуля: return m </inner><close></syntaxhighlight></close></ext> |- ! Код с нумерацией строк не с первой | <ext><name>pre</name><attr/><inner><nowiki> <syntaxhighlight lang="lua" line start="774"> -- Регистрация эспортируемых функций: -- «оформить формулу»: m [chemistryData.apiShowFormula] = function (frame) local nextfunc, static, cur = pairs (frame.args) if nextfunc (static, cur) == nil then -- аргументы не переданы. Использовать аргументы шаблона: return showFormula (frame:getParent ().args) else -- переданы аргументы: return showFormula (frame.args) end end -- Последняя строка. Экспорт функций из модуля: return m </syntaxhighlight> </nowiki></inner><close></pre></close></ext> | <ext><name>syntaxhighlight</name><attr> lang="lua" line start="774"</attr><inner> -- Регистрация эспортируемых функций: -- «оформить формулу»: m [chemistryData.apiShowFormula] = function (frame) local nextfunc, static, cur = pairs (frame.args) if nextfunc (static, cur) == nil then -- аргументы не переданы. Использовать аргументы шаблона: return showFormula (frame:getParent ().args) else -- переданы аргументы: return showFormula (frame.args) end end -- Последняя строка. Экспорт функций из модуля: return m </inner><close></syntaxhighlight></close></ext> |- ! Подсветка строки | <ext><name>pre</name><attr/><inner><nowiki> <syntaxhighlight lang="lua" line highlight="4"> -- Регистрация эспортируемых функций: -- «оформить формулу»: m [chemistryData.apiShowFormula] = function (frame) local nextfunc, static, cur = pairs (frame.args) if nextfunc (static, cur) == nil then -- аргументы не переданы. Использовать аргументы шаблона: return showFormula (frame:getParent ().args) else -- переданы аргументы: return showFormula (frame.args) end end -- Последняя строка. Экспорт функций из модуля: return m </syntaxhighlight> </nowiki></inner><close></pre></close></ext> | <ext><name>syntaxhighlight</name><attr> lang="lua" line highlight="4"</attr><inner> -- Регистрация эспортируемых функций: -- «оформить формулу»: m [chemistryData.apiShowFormula] = function (frame) local nextfunc, static, cur = pairs (frame.args) if nextfunc (static, cur) == nil then -- аргументы не переданы. Использовать аргументы шаблона: return showFormula (frame:getParent ().args) else -- переданы аргументы: return showFormula (frame.args) end end -- Последняя строка. Экспорт функций из модуля: return m </inner><close></syntaxhighlight></close></ext> |- ! Тэг <template><title>tag</title><part><name index="1"/><value>div</value></part></template> | <ext><name>pre</name><attr/><inner><nowiki> <syntaxhighlight lang="lua" enclose="div"> -- Регистрация эспортируемых функций: -- «оформить формулу»: m [chemistryData.apiShowFormula] = function (frame) local nextfunc, static, cur = pairs (frame.args) if nextfunc (static, cur) == nil then -- аргументы не переданы. Использовать аргументы шаблона: return showFormula (frame:getParent ().args) else -- переданы аргументы: return showFormula (frame.args) end end -- Последняя строка. Экспорт функций из модуля: return m </syntaxhighlight> </nowiki></inner><close></pre></close></ext> | <ext><name>syntaxhighlight</name><attr> lang="lua" enclose="div"</attr><inner> -- Регистрация эспортируемых функций: -- «оформить формулу»: m [chemistryData.apiShowFormula] = function (frame) local nextfunc, static, cur = pairs (frame.args) if nextfunc (static, cur) == nil then -- аргументы не переданы. Использовать аргументы шаблона: return showFormula (frame:getParent ().args) else -- переданы аргументы: return showFormula (frame.args) end end -- Последняя строка. Экспорт функций из модуля: return m </inner><close></syntaxhighlight></close></ext> |} <template lineStart="1"><title>Написал</title><part><name index="1"/><value>Alex Mashin</value></part></template></root>, 0) called at [/var/www/traditio.ru/w/includes/parser/Parser.php:3322] #5 Parser->replaceVariables({{Тэг | расширение = SyntaxHighlight GeSHi | описание = Выводит исходный код с подсветкой синтаксиса | автор = [[Brion Vibber]], [[Tim Starling]] и [[Rob Church]] | lang = [[язык программирования]] | line = (GESHI_NORMAL_LINE_NUMBERS{{!}}GESHI_FANCY_LINE_NUMBERS) или пустое значение для показа номеров строк | start = номер первой строки | highlight = номер подсвеченной строки (без учёта line start) | enclose = тэг [[HTML]], содержащий код — pre по умолчанию, div или none | strict = использовать строгий режим | содержимое = Исходный код | возврат = Исходный код с подсветкой синтаксиса }} {{tag|syntaxhighlight}}, а также, {{tag|source}} — [[Справка:тэг MediaWiki|тэг ''MediaWiki'']] для вывода исходного кода с [[подсветка синтаксиса|подсветкой синтаксиса]], предоставляемый [[Расширение MediaWiki|расширением]] ''SyntaxHighlight GeSHi''. == Примеры == {| class="wikitable" ! Описание !! Викитекст !! Вывод |- ! Простой фрагмент кода на [[Lua]] | <pre><nowiki> <syntaxhighlight lang="lua"> -- Регистрация эспортируемых функций: -- «оформить формулу»: m [chemistryData.apiShowFormula] = function (frame) local nextfunc, static, cur = pairs (frame.args) if nextfunc (static, cur) == nil then -- аргументы не переданы. Использовать аргументы шаблона: return showFormula (frame:getParent ().args) else -- переданы аргументы: return showFormula (frame.args) end end -- Последняя строка. Экспорт функций из модуля: return m</syntaxhighlight> </nowiki></pre> | <syntaxhighlight lang="lua"> -- Регистрация эспортируемых функций: -- «оформить формулу»: m [chemistryData.apiShowFormula] = function (frame) local nextfunc, static, cur = pairs (frame.args) if nextfunc (static, cur) == nil then -- аргументы не переданы. Использовать аргументы шаблона: return showFormula (frame:getParent ().args) else -- переданы аргументы: return showFormula (frame.args) end end -- Последняя строка. Экспорт функций из модуля: return m </syntaxhighlight> |- ! Код с нумерацией строк | <pre><nowiki> <syntaxhighlight lang="lua" line> -- Регистрация эспортируемых функций: -- «оформить формулу»: m [chemistryData.apiShowFormula] = function (frame) local nextfunc, static, cur = pairs (frame.args) if nextfunc (static, cur) == nil then -- аргументы не переданы. Использовать аргументы шаблона: return showFormula (frame:getParent ().args) else -- переданы аргументы: return showFormula (frame.args) end end -- Последняя строка. Экспорт функций из модуля: return m </syntaxhighlight> </nowiki></pre> | <syntaxhighlight lang="lua" line> -- Регистрация эспортируемых функций: -- «оформить формулу»: m [chemistryData.apiShowFormula] = function (frame) local nextfunc, static, cur = pairs (frame.args) if nextfunc (static, cur) == nil then -- аргументы не переданы. Использовать аргументы шаблона: return showFormula (frame:getParent ().args) else -- переданы аргументы: return showFormula (frame.args) end end -- Последняя строка. Экспорт функций из модуля: return m </syntaxhighlight> |- ! Код с нумерацией строк не с первой | <pre><nowiki> <syntaxhighlight lang="lua" line start="774"> -- Регистрация эспортируемых функций: -- «оформить формулу»: m [chemistryData.apiShowFormula] = function (frame) local nextfunc, static, cur = pairs (frame.args) if nextfunc (static, cur) == nil then -- аргументы не переданы. Использовать аргументы шаблона: return showFormula (frame:getParent ().args) else -- переданы аргументы: return showFormula (frame.args) end end -- Последняя строка. Экспорт функций из модуля: return m </syntaxhighlight> </nowiki></pre> | <syntaxhighlight lang="lua" line start="774"> -- Регистрация эспортируемых функций: -- «оформить формулу»: m [chemistryData.apiShowFormula] = function (frame) local nextfunc, static, cur = pairs (frame.args) if nextfunc (static, cur) == nil then -- аргументы не переданы. Использовать аргументы шаблона: return showFormula (frame:getParent ().args) else -- переданы аргументы: return showFormula (frame.args) end end -- Последняя строка. Экспорт функций из модуля: return m </syntaxhighlight> |- ! Подсветка строки | <pre><nowiki> <syntaxhighlight lang="lua" line highlight="4"> -- Регистрация эспортируемых функций: -- «оформить формулу»: m [chemistryData.apiShowFormula] = function (frame) local nextfunc, static, cur = pairs (frame.args) if nextfunc (static, cur) == nil then -- аргументы не переданы. Использовать аргументы шаблона: return showFormula (frame:getParent ().args) else -- переданы аргументы: return showFormula (frame.args) end end -- Последняя строка. Экспорт функций из модуля: return m </syntaxhighlight> </nowiki></pre> | <syntaxhighlight lang="lua" line highlight="4"> -- Регистрация эспортируемых функций: -- «оформить формулу»: m [chemistryData.apiShowFormula] = function (frame) local nextfunc, static, cur = pairs (frame.args) if nextfunc (static, cur) == nil then -- аргументы не переданы. Использовать аргументы шаблона: return showFormula (frame:getParent ().args) else -- переданы аргументы: return showFormula (frame.args) end end -- Последняя строка. Экспорт функций из модуля: return m </syntaxhighlight> |- ! Тэг {{tag|div}} | <pre><nowiki> <syntaxhighlight lang="lua" enclose="div"> -- Регистрация эспортируемых функций: -- «оформить формулу»: m [chemistryData.apiShowFormula] = function (frame) local nextfunc, static, cur = pairs (frame.args) if nextfunc (static, cur) == nil then -- аргументы не переданы. Использовать аргументы шаблона: return showFormula (frame:getParent ().args) else -- переданы аргументы: return showFormula (frame.args) end end -- Последняя строка. Экспорт функций из модуля: return m </syntaxhighlight> </nowiki></pre> | <syntaxhighlight lang="lua" enclose="div"> -- Регистрация эспортируемых функций: -- «оформить формулу»: m [chemistryData.apiShowFormula] = function (frame) local nextfunc, static, cur = pairs (frame.args) if nextfunc (static, cur) == nil then -- аргументы не переданы. Использовать аргументы шаблона: return showFormula (frame:getParent ().args) else -- переданы аргументы: return showFormula (frame.args) end end -- Последняя строка. Экспорт функций из модуля: return m </syntaxhighlight> |} {{Написал|Alex Mashin}}) called at [/var/www/traditio.ru/w/includes/parser/Parser.php:1231] #6 Parser->internalParse({{Тэг | расширение = SyntaxHighlight GeSHi | описание = Выводит исходный код с подсветкой синтаксиса | автор = [[Brion Vibber]], [[Tim Starling]] и [[Rob Church]] | lang = [[язык программирования]] | line = (GESHI_NORMAL_LINE_NUMBERS{{!}}GESHI_FANCY_LINE_NUMBERS) или пустое значение для показа номеров строк | start = номер первой строки | highlight = номер подсвеченной строки (без учёта line start) | enclose = тэг [[HTML]], содержащий код — pre по умолчанию, div или none | strict = использовать строгий режим | содержимое = Исходный код | возврат = Исходный код с подсветкой синтаксиса }} {{tag|syntaxhighlight}}, а также, {{tag|source}} — [[Справка:тэг MediaWiki|тэг ''MediaWiki'']] для вывода исходного кода с [[подсветка синтаксиса|подсветкой синтаксиса]], предоставляемый [[Расширение MediaWiki|расширением]] ''SyntaxHighlight GeSHi''. == Примеры == {| class="wikitable" ! Описание !! Викитекст !! Вывод |- ! Простой фрагмент кода на [[Lua]] | <pre><nowiki> <syntaxhighlight lang="lua"> -- Регистрация эспортируемых функций: -- «оформить формулу»: m [chemistryData.apiShowFormula] = function (frame) local nextfunc, static, cur = pairs (frame.args) if nextfunc (static, cur) == nil then -- аргументы не переданы. Использовать аргументы шаблона: return showFormula (frame:getParent ().args) else -- переданы аргументы: return showFormula (frame.args) end end -- Последняя строка. Экспорт функций из модуля: return m</syntaxhighlight> </nowiki></pre> | <syntaxhighlight lang="lua"> -- Регистрация эспортируемых функций: -- «оформить формулу»: m [chemistryData.apiShowFormula] = function (frame) local nextfunc, static, cur = pairs (frame.args) if nextfunc (static, cur) == nil then -- аргументы не переданы. Использовать аргументы шаблона: return showFormula (frame:getParent ().args) else -- переданы аргументы: return showFormula (frame.args) end end -- Последняя строка. Экспорт функций из модуля: return m </syntaxhighlight> |- ! Код с нумерацией строк | <pre><nowiki> <syntaxhighlight lang="lua" line> -- Регистрация эспортируемых функций: -- «оформить формулу»: m [chemistryData.apiShowFormula] = function (frame) local nextfunc, static, cur = pairs (frame.args) if nextfunc (static, cur) == nil then -- аргументы не переданы. Использовать аргументы шаблона: return showFormula (frame:getParent ().args) else -- переданы аргументы: return showFormula (frame.args) end end -- Последняя строка. Экспорт функций из модуля: return m </syntaxhighlight> </nowiki></pre> | <syntaxhighlight lang="lua" line> -- Регистрация эспортируемых функций: -- «оформить формулу»: m [chemistryData.apiShowFormula] = function (frame) local nextfunc, static, cur = pairs (frame.args) if nextfunc (static, cur) == nil then -- аргументы не переданы. Использовать аргументы шаблона: return showFormula (frame:getParent ().args) else -- переданы аргументы: return showFormula (frame.args) end end -- Последняя строка. Экспорт функций из модуля: return m </syntaxhighlight> |- ! Код с нумерацией строк не с первой | <pre><nowiki> <syntaxhighlight lang="lua" line start="774"> -- Регистрация эспортируемых функций: -- «оформить формулу»: m [chemistryData.apiShowFormula] = function (frame) local nextfunc, static, cur = pairs (frame.args) if nextfunc (static, cur) == nil then -- аргументы не переданы. Использовать аргументы шаблона: return showFormula (frame:getParent ().args) else -- переданы аргументы: return showFormula (frame.args) end end -- Последняя строка. Экспорт функций из модуля: return m </syntaxhighlight> </nowiki></pre> | <syntaxhighlight lang="lua" line start="774"> -- Регистрация эспортируемых функций: -- «оформить формулу»: m [chemistryData.apiShowFormula] = function (frame) local nextfunc, static, cur = pairs (frame.args) if nextfunc (static, cur) == nil then -- аргументы не переданы. Использовать аргументы шаблона: return showFormula (frame:getParent ().args) else -- переданы аргументы: return showFormula (frame.args) end end -- Последняя строка. Экспорт функций из модуля: return m </syntaxhighlight> |- ! Подсветка строки | <pre><nowiki> <syntaxhighlight lang="lua" line highlight="4"> -- Регистрация эспортируемых функций: -- «оформить формулу»: m [chemistryData.apiShowFormula] = function (frame) local nextfunc, static, cur = pairs (frame.args) if nextfunc (static, cur) == nil then -- аргументы не переданы. Использовать аргументы шаблона: return showFormula (frame:getParent ().args) else -- переданы аргументы: return showFormula (frame.args) end end -- Последняя строка. Экспорт функций из модуля: return m </syntaxhighlight> </nowiki></pre> | <syntaxhighlight lang="lua" line highlight="4"> -- Регистрация эспортируемых функций: -- «оформить формулу»: m [chemistryData.apiShowFormula] = function (frame) local nextfunc, static, cur = pairs (frame.args) if nextfunc (static, cur) == nil then -- аргументы не переданы. Использовать аргументы шаблона: return showFormula (frame:getParent ().args) else -- переданы аргументы: return showFormula (frame.args) end end -- Последняя строка. Экспорт функций из модуля: return m </syntaxhighlight> |- ! Тэг {{tag|div}} | <pre><nowiki> <syntaxhighlight lang="lua" enclose="div"> -- Регистрация эспортируемых функций: -- «оформить формулу»: m [chemistryData.apiShowFormula] = function (frame) local nextfunc, static, cur = pairs (frame.args) if nextfunc (static, cur) == nil then -- аргументы не переданы. Использовать аргументы шаблона: return showFormula (frame:getParent ().args) else -- переданы аргументы: return showFormula (frame.args) end end -- Последняя строка. Экспорт функций из модуля: return m </syntaxhighlight> </nowiki></pre> | <syntaxhighlight lang="lua" enclose="div"> -- Регистрация эспортируемых функций: -- «оформить формулу»: m [chemistryData.apiShowFormula] = function (frame) local nextfunc, static, cur = pairs (frame.args) if nextfunc (static, cur) == nil then -- аргументы не переданы. Использовать аргументы шаблона: return showFormula (frame:getParent ().args) else -- переданы аргументы: return showFormula (frame.args) end end -- Последняя строка. Экспорт функций из модуля: return m </syntaxhighlight> |} {{Написал|Alex Mashin}}) called at [/var/www/traditio.ru/w/includes/parser/Parser.php:434] #7 Parser->parse({{Тэг | расширение = SyntaxHighlight GeSHi | описание = Выводит исходный код с подсветкой синтаксиса | автор = [[Brion Vibber]], [[Tim Starling]] и [[Rob Church]] | lang = [[язык программирования]] | line = (GESHI_NORMAL_LINE_NUMBERS{{!}}GESHI_FANCY_LINE_NUMBERS) или пустое значение для показа номеров строк | start = номер первой строки | highlight = номер подсвеченной строки (без учёта line start) | enclose = тэг [[HTML]], содержащий код — pre по умолчанию, div или none | strict = использовать строгий режим | содержимое = Исходный код | возврат = Исходный код с подсветкой синтаксиса }} {{tag|syntaxhighlight}}, а также, {{tag|source}} — [[Справка:тэг MediaWiki|тэг ''MediaWiki'']] для вывода исходного кода с [[подсветка синтаксиса|подсветкой синтаксиса]], предоставляемый [[Расширение MediaWiki|расширением]] ''SyntaxHighlight GeSHi''. == Примеры == {| class="wikitable" ! Описание !! Викитекст !! Вывод |- ! Простой фрагмент кода на [[Lua]] | <pre><nowiki> <syntaxhighlight lang="lua"> -- Регистрация эспортируемых функций: -- «оформить формулу»: m [chemistryData.apiShowFormula] = function (frame) local nextfunc, static, cur = pairs (frame.args) if nextfunc (static, cur) == nil then -- аргументы не переданы. Использовать аргументы шаблона: return showFormula (frame:getParent ().args) else -- переданы аргументы: return showFormula (frame.args) end end -- Последняя строка. Экспорт функций из модуля: return m</syntaxhighlight> </nowiki></pre> | <syntaxhighlight lang="lua"> -- Регистрация эспортируемых функций: -- «оформить формулу»: m [chemistryData.apiShowFormula] = function (frame) local nextfunc, static, cur = pairs (frame.args) if nextfunc (static, cur) == nil then -- аргументы не переданы. Использовать аргументы шаблона: return showFormula (frame:getParent ().args) else -- переданы аргументы: return showFormula (frame.args) end end -- Последняя строка. Экспорт функций из модуля: return m </syntaxhighlight> |- ! Код с нумерацией строк | <pre><nowiki> <syntaxhighlight lang="lua" line> -- Регистрация эспортируемых функций: -- «оформить формулу»: m [chemistryData.apiShowFormula] = function (frame) local nextfunc, static, cur = pairs (frame.args) if nextfunc (static, cur) == nil then -- аргументы не переданы. Использовать аргументы шаблона: return showFormula (frame:getParent ().args) else -- переданы аргументы: return showFormula (frame.args) end end -- Последняя строка. Экспорт функций из модуля: return m </syntaxhighlight> </nowiki></pre> | <syntaxhighlight lang="lua" line> -- Регистрация эспортируемых функций: -- «оформить формулу»: m [chemistryData.apiShowFormula] = function (frame) local nextfunc, static, cur = pairs (frame.args) if nextfunc (static, cur) == nil then -- аргументы не переданы. Использовать аргументы шаблона: return showFormula (frame:getParent ().args) else -- переданы аргументы: return showFormula (frame.args) end end -- Последняя строка. Экспорт функций из модуля: return m </syntaxhighlight> |- ! Код с нумерацией строк не с первой | <pre><nowiki> <syntaxhighlight lang="lua" line start="774"> -- Регистрация эспортируемых функций: -- «оформить формулу»: m [chemistryData.apiShowFormula] = function (frame) local nextfunc, static, cur = pairs (frame.args) if nextfunc (static, cur) == nil then -- аргументы не переданы. Использовать аргументы шаблона: return showFormula (frame:getParent ().args) else -- переданы аргументы: return showFormula (frame.args) end end -- Последняя строка. Экспорт функций из модуля: return m </syntaxhighlight> </nowiki></pre> | <syntaxhighlight lang="lua" line start="774"> -- Регистрация эспортируемых функций: -- «оформить формулу»: m [chemistryData.apiShowFormula] = function (frame) local nextfunc, static, cur = pairs (frame.args) if nextfunc (static, cur) == nil then -- аргументы не переданы. Использовать аргументы шаблона: return showFormula (frame:getParent ().args) else -- переданы аргументы: return showFormula (frame.args) end end -- Последняя строка. Экспорт функций из модуля: return m </syntaxhighlight> |- ! Подсветка строки | <pre><nowiki> <syntaxhighlight lang="lua" line highlight="4"> -- Регистрация эспортируемых функций: -- «оформить формулу»: m [chemistryData.apiShowFormula] = function (frame) local nextfunc, static, cur = pairs (frame.args) if nextfunc (static, cur) == nil then -- аргументы не переданы. Использовать аргументы шаблона: return showFormula (frame:getParent ().args) else -- переданы аргументы: return showFormula (frame.args) end end -- Последняя строка. Экспорт функций из модуля: return m </syntaxhighlight> </nowiki></pre> | <syntaxhighlight lang="lua" line highlight="4"> -- Регистрация эспортируемых функций: -- «оформить формулу»: m [chemistryData.apiShowFormula] = function (frame) local nextfunc, static, cur = pairs (frame.args) if nextfunc (static, cur) == nil then -- аргументы не переданы. Использовать аргументы шаблона: return showFormula (frame:getParent ().args) else -- переданы аргументы: return showFormula (frame.args) end end -- Последняя строка. Экспорт функций из модуля: return m </syntaxhighlight> |- ! Тэг {{tag|div}} | <pre><nowiki> <syntaxhighlight lang="lua" enclose="div"> -- Регистрация эспортируемых функций: -- «оформить формулу»: m [chemistryData.apiShowFormula] = function (frame) local nextfunc, static, cur = pairs (frame.args) if nextfunc (static, cur) == nil then -- аргументы не переданы. Использовать аргументы шаблона: return showFormula (frame:getParent ().args) else -- переданы аргументы: return showFormula (frame.args) end end -- Последняя строка. Экспорт функций из модуля: return m </syntaxhighlight> </nowiki></pre> | <syntaxhighlight lang="lua" enclose="div"> -- Регистрация эспортируемых функций: -- «оформить формулу»: m [chemistryData.apiShowFormula] = function (frame) local nextfunc, static, cur = pairs (frame.args) if nextfunc (static, cur) == nil then -- аргументы не переданы. Использовать аргументы шаблона: return showFormula (frame:getParent ().args) else -- переданы аргументы: return showFormula (frame.args) end end -- Последняя строка. Экспорт функций из модуля: return m </syntaxhighlight> |} {{Написал|Alex Mashin}}, Справка:Syntaxhighlight, Object of class ParserOptions could not be converted to string, 1, 1, 454485) called at [/var/www/traditio.ru/w/includes/content/WikitextContent.php:333] #8 WikitextContent->fillParserOutput(Справка:Syntaxhighlight, 454485, Object of class ParserOptions could not be converted to string, 1, Object of class ParserOutput could not be converted to string) called at [/var/www/traditio.ru/w/includes/content/AbstractContent.php:497] #9 AbstractContent->getParserOutput(Справка:Syntaxhighlight, 454485, Object of class ParserOptions could not be converted to string) called at [/var/www/traditio.ru/w/includes/poolcounter/PoolWorkArticleView.php:140] #10 PoolWorkArticleView->doWork() called at [/var/www/traditio.ru/w/includes/poolcounter/PoolCounterWork.php:123] #11 PoolCounterWork->execute() called at [/var/www/traditio.ru/w/includes/page/Article.php:674] #12 Article->view() called at [/var/www/traditio.ru/w/includes/actions/ViewAction.php:44] #13 ViewAction->show() called at [/var/www/traditio.ru/w/includes/MediaWiki.php:395] #14 MediaWiki->performAction(Object of class Article could not be converted to string, Справка:Syntaxhighlight) called at [/var/www/traditio.ru/w/includes/MediaWiki.php:273] #15 MediaWiki->performRequest() called at [/var/www/traditio.ru/w/includes/MediaWiki.php:566] #16 MediaWiki->main() called at [/var/www/traditio.ru/w/includes/MediaWiki.php:414] #17 MediaWiki->run() called at [/var/www/traditio.ru/w/index.php:41]
Apologies, this is a regression from 043969f84eb5c61a508c05bf5ffd369cc6655cd6. I wasn't aware that master is meant to stay compatible with MW 1.25.
Change 224778 had a related patch set uploaded (by Bartosz Dziewoński):
Use $parser->mUniqPrefix instead of $parser::MARKER_PREFIX for MW 1.25 compatibility
Also, running hhvm maintenance/updateLexerList.php or hhvm maintenance/updateCSS.php under MW 1.25.1 gives this warning:
Warning: Invalid operand type was used: storeToArray expects array(s) in /var/www/traditio.ru/w/includes/registration/ExtensionProcessor.php on line 294.
T102522: Setting manifest_version should not explode in REL1_25. It's fixed in REL1_25 and will be part of 1.25.2.
T102522: Setting manifest_version should not explode in REL1_25. It's fixed in REL1_25 and will be part of 1.25.2.
BTW, git branch currently reports only one branch: master.
git pull: Already up-to-date. git branch: * master git branch -all: * master remotes/origin/HEAD -> origin/master remotes/origin/REL1_19 remotes/origin/REL1_20 remotes/origin/REL1_21 remotes/origin/REL1_22 remotes/origin/REL1_23 remotes/origin/REL1_24 remotes/origin/REL1_25 remotes/origin/master remotes/origin/wmf/1.26wmf1 remotes/origin/wmf/1.26wmf10 remotes/origin/wmf/1.26wmf11 remotes/origin/wmf/1.26wmf12 remotes/origin/wmf/1.26wmf13 remotes/origin/wmf/1.26wmf14 remotes/origin/wmf/1.26wmf2 remotes/origin/wmf/1.26wmf3 remotes/origin/wmf/1.26wmf4 remotes/origin/wmf/1.26wmf5 remotes/origin/wmf/1.26wmf6 remotes/origin/wmf/1.26wmf7 remotes/origin/wmf/1.26wmf8 remotes/origin/wmf/1.26wmf9
Not here.
$:andre\> git clone https://git.wikimedia.org/git/mediawiki/extensions/SyntaxHighlight_GeSHi.git $:andre\> git branch -a * master remotes/origin/HEAD -> origin/master remotes/origin/REL1_19 remotes/origin/REL1_20 remotes/origin/REL1_21 remotes/origin/REL1_22 remotes/origin/REL1_23 remotes/origin/REL1_24 remotes/origin/REL1_25 remotes/origin/master remotes/origin/wmf/1.26wmf1 remotes/origin/wmf/1.26wmf10 remotes/origin/wmf/1.26wmf11 remotes/origin/wmf/1.26wmf12 remotes/origin/wmf/1.26wmf13 remotes/origin/wmf/1.26wmf14 remotes/origin/wmf/1.26wmf2 remotes/origin/wmf/1.26wmf3 remotes/origin/wmf/1.26wmf4 remotes/origin/wmf/1.26wmf5 remotes/origin/wmf/1.26wmf6 remotes/origin/wmf/1.26wmf7 remotes/origin/wmf/1.26wmf8 remotes/origin/wmf/1.26wmf9
Change 224778 merged by jenkins-bot:
Use $parser->mUniqPrefix instead of $parser::MARKER_PREFIX for MW 1.25 compatibility