жирная часть кода в MediWiki - PullRequest
0 голосов
/ 25 августа 2018

Я использую mediawiki-1.30.0 и хочу выделить часть кода в MediaWiki.К сожалению, как описано здесь , , похоже <b></b> не работает в теге pre.Кроме того, я не нашел способа выделить часть кода в расширении SyntaxHighlight_GeSHi , которое поставляется с MediaWiki 1.21 и выше.

Как можно выделить часть фрагмента кода без добавление пробела перед каждым рядом?

Редактировать

Я тестировал все эти три:

<code><pre>
a <strong>text</strong> inside another ...
a &lt;strong&gt;text&lt;/strong&gt; inside another ...
a &lt;strong&gt;text&lt;/strong&gt; inside another ...

Результат был таким же:

a <strong>text</strong> inside another ...

Только <code> полужирный текст, например для обоих приведенных ниже кодов

<code>
a <strong>text</strong> inside another ...
and another line
</code>

<code>
a <b>text</b> inside another ...
and another line
</code>

результат:

a текст внутри другого ... и другой строки

Как вы можете видеть, он обрабатывает <b></b>;но не сохраняет new line символов.

Ответы [ 2 ]

0 голосов
/ 30 августа 2018

Если вы абсолютно не можете добавить пробел перед каждой строкой, вы можете попробовать использовать это: (несколько вдохновлено комментарием @ StanislavKralin)

<code class="mw-code" style="display:block">
a <strong>text</strong> inside another ...
and another line
</code>

Класс .mw-code отражает стили для <pre> для любого элемента, который имеет это.Однако для правильного форматирования также требуется display: block.Если вы не хотите ставить display: block на каждый экземпляр, вы можете добавить следующий код на страницу MediaWiki:Common.css:

.mw-code{
    display: block;
}

Тогда вам нужно будет только добавить .mw-codeКласс для элемента <code>.

Однако , это работает , только если строки не пропущены и код не имеет отступа , это более длинный тестовый пример:

<code class="mw-code" style="display:block">
using System;

namespace <b>GDB</b>
{
    class Program
    {
        static void Main(string argv)
        { 
            Console.Write("Hello!");

            Console.Read();
        }
    }
}
</code>

делает это: enter image description here Поскольку это , а не a <pre>, вики-текст все еще анализируется внутри, например, пробел, создающий кодблок, поэтому у нас есть все вложенные кодовые блоки.


В качестве альтернативы , вы можете добавить пробел перед каждой строкой, например так:

 a <strong>text</strong> inside another ...
 and another line

выход:

a текст внутри другого ...и еще одна строка

и всегда работает: test case with space

0 голосов
/ 28 августа 2018

Вы можете использовать <code> и <b>, а затем использовать тег <br> для новых строк, если хотите:

<code>
a <strong>text</strong> inside another ...
<br>and another line
</code>

результат:

a текст внутри другого

и еще одна строка

...