Indenting code in MediaWiki

5.1k views Asked by At

Is it possible to indent a block of code in MediaWiki using SyntaxHighlight GeSHi?

For example, I would like the code container below to be aligned with the third-level list

* 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>

I have tried wrapping the GeSHi code container with colons (using MediaWiki's standard indentation syntax), but that prevents SyntaxHighlight GeSHi from parsing the code correctly.

Just to clarify, I would like to avoid wrapping my code with <code></code> as I need proper syntax highlighting.

Any suggestions?

3

There are 3 answers

3
Wes Hardaker On BEST ANSWER

You could always wrap it with normal HTML div tags as well:

<div style="margin-left: 2em;">
  <source ...>
    ...
  </source>
</div>
1
Ángel J. Vico On

You can put the source inside a table, and then indent the table:

:::{|
|
<source ...>
...
</source>
|}
0
Nikos Alexandris On

Maybe there is a way to misuse the <ul>...</ul> HTML element? A possible workaround is given (by Jeremy Koppel) at Meta, WikiMedia, Help:Editing FAQ among the answers to the question Can I put preformatted text inside a numbered list?:

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

I successfuly used this, in a WikiMedia based wiki, to highlight bash code under a bulleted text line, as follows:

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

Did not succeed to make it work for deeper levels though!