在MediaWiki中缩进代码

时间:2011-02-08 01:11:00

标签: mediawiki geshi

是否可以使用SyntaxHighlight GeSHi缩进MediaWiki中的代码块?

例如,我希望下面的代码容器与第三级列表

对齐
* This is plain text of a first-level list to be rendered by MediaWiki
** This is plain text of a a second-level list to be rendered by MediaWiki
*** This is plain text of a third-level list to be rendered by MediaWiki

<source lang="Cpp">
int main(int argc, char** argv)
{
    my_function(4, 1, 2, 3);
    return 0;
}
</source>

我尝试用colons包装GeSHi代码容器(使用MediaWiki的标准indentation syntax),但这会阻止SyntaxHighlight GeSHi正确解析代码。

为了澄清,我想避免用<code></code>包装我的代码,因为我需要正确的语法高亮。

有什么建议吗?

3 个答案:

答案 0 :(得分:7)

你总是可以用普通的HTML div标签包装它:

<div style="margin-left: 2em;">
  <source ...>
    ...
  </source>
</div>

答案 1 :(得分:4)

您可以将源放在表中,然后缩进表:

:::{|
|
<source ...>
...
</source>
|}

答案 2 :(得分:1)

也许有办法滥用<ul>...</ul> HTML元素? ({3}}问题的答案中,Meta, WikiMedia, Help:Editing FAQ给出了一个可能的解决方法(Jeremy Koppel):

<ul>
      <li>one</li>
      <li>two<pre>

Here are a couple lines...
...of preformatted text

      </pre></li>
      <li>and the numbering</li>
      <li>starts over</li>
   </ul>

我成功地在基于WikiMedia的wiki中使用它来突出显示项目符号文本行下的bash代码,如下所示:

 <ul>
<source lang="bash">sudo apt-get install \
build-essential \
...
libglu1-mesa-dev libxmu-dev</source>
   </ul>

但是没有成功让它在更深层次上运作!