Подсветка встроенного синтаксиса в MediaWiki - PullRequest
17 голосов
/ 03 февраля 2011

Есть ли расширение MediaWiki, поддерживающее встроенную подсветку синтаксиса?(т.е. с поддержкой фрагментов кода, встроенных в обычные текстовые абзацы)

В настоящее время я использую SyntaxHighlight GeSHi , но я не уверен, что он поддерживает встроенную подсветку.

Ответы [ 5 ]

18 голосов
/ 03 февраля 2011

Вы можете добавить enclose="none" к вашему тегу <source>:

There is <source lang="mylanguage" enclose="none">inline code</source> in this paragraph.
9 голосов
/ 04 февраля 2011

Самое простое решение использует: <code>put your code here

1 голос
/ 01 сентября 2017

При использовании <code>inline code или, например, <syntaxhighlight lang="groovy" inline>inline code</syntaxhighlight> работает, набирать это очень сложно, особенно если вы имеете дело с большим количеством фрагментов кода.

Если вики находится под вашим контролем, вы можете расширить ее разметку .В приведенном ниже примере показано, как сократить вышеупомянутое значение до <c>inline code</c> и <sg>inline code</sg> соответственно, используя расширение тегов * метод 1011 *.

Создать каталог Customtags для вашего нового расширения в каталоге расширений MediaWiki (MW_HOME/extensions/).В этом каталоге создайте файл customtags.php со следующим содержимым:

<?php

$wgHooks['ParserFirstCallInit'][] = 'customtagsInit';

function customtagsInit(Parser $parser) { 

    // parameters: custom tag, custom renderer function
    $parser->setHook('c', 'customRenderShortCode');
    $parser->setHook('sg', 'customRenderSourceGroovy');

    return true;
}

function customRenderSourceGroovy($input, array $args, Parser $parser, PPFrame $frame) {
    $input = '<syntaxhighlight lang="groovy" inline>' . $input . '</syntaxhighlight>';
    $wikiparsed = $parser->recursiveTagParse($input, $frame);
    return $wikiparsed;
}

function customRenderShortCode($input, array $args, Parser $parser, PPFrame $frame) {
    $wikiparsed = $parser->recursiveTagParse($input, $frame);
    return '<code>' . $wikiparsed . '</code>';
}

?>

Наконец зарегистрируйте это расширение в LocalSettings.php и все готово:

require_once "$IP/extensions/Customtags/customtags.php";

В аналогичномспособ создания коротких тегов для больших блоков кода.

0 голосов
/ 15 октября 2015

Я обнаружил, что заключение всего блока в показало лучший формат.

0 голосов
/ 18 декабря 2014

Во-первых, пометьте символы, которые вам нужны, с помощью span, code, source, div, p, и т. Д. Для inline с минимальными изменениями, вероятно, вам нужен span.

Во-вторых, примените стиль к помеченным символам.Для выделения вы, вероятно, хотите что-то вроде background: yellow

Пример:

Highlights like <span style="border:thin solid green; background: yellow;">this</span> really draw the eye.

...