编号列表中的代码块(Wiki语法)

问题描述 投票:81回答:7

在MediaWiki(维基百科)的wiki语法中,有没有办法让编号列表中间有一个代码块?

例如:

# Number 1
# Number 2
  Indented section that will become a code block
# Number 3
# Number 4

在MediaWiki中发生的事情是你最终得到这样的东西:

1. Number 1
2. Number 2
   Indented section that will become a code block
1. Number 3
2. Number 4

(注意“3号”和“4号”如何重置为1和2 ...看起来StackOverflow比MediaWiki更智能,我不得不把我的例子放在PRE标签中以使它搞砸了!)

我知道你可以使用“#:”语法缩进文本...

# Number 1
# Number 2
#: Indented section that will merely be indented
# Number 3
# Number 4

...但我真的想为我的代码获得相同的可视CSS类,即使它在编号列表中。

嵌套列表使它变得更有趣。这个语法......

# MainEntry 1
## Number 1
## Number 2
# MainEntry 2
## Number 1
## Number 2
  Indented section that will become a code block
## Number 3
## Number 4

... ...变

1. MainEntry 1
   1. Number 1
   2. Number 2
2. MainEntry 2
   1. Number 1
   2. Number 2
      Indented section that will become a code block
1. 1. Number 3
   2. Number 4

(注意“3号”现在是“1。1.”)

syntax wiki mediawiki
7个回答
71
投票

您可以尝试以下wiki语法,它适用于1.17

# one
#:<pre>
#::some stuff
#::some more stuff</pre>
# two

它并不完美,因为你最终会有更多的缩进,但它确实允许人们使用wiki语法在多行上使用正确格式化的前块。

如前所述,另一种正确的方法是使用HTML标记。

<ol>
<li>one</li>
<li>two</li>
<pre>some stuff
some more stuff</pre>
<li>three</li>
</ol>

34
投票

使用html:

<ol>
  <li>Coffee</li>
  <li>Tea</li>
  <li>Milk</li>
</ol>

它将在mediawiki中运行。

请注意我在下面发布的示例,它是</li>使其正常工作。


14
投票

这在MediaWiki 1.17.0中工作正常:

===Alternative way of using pre in numbered lists.===    
# Numbered line 1.
# Numbered line 2.<pre>code line 1&#10;code line 2</pre>
# Numbered line 3.

秘诀是用实体替换换行符并将所有内容写入一行。


13
投票

您的问题是2004年底和2005年MediaWiki错误跟踪器中填写的两个错误的主题:

Bug 1115 - Newline as list item terminator is troublesome

Bug 1584 - Need method for multiparagraph list items, continuing numbered lists, and assigning specific numbers to list items

通过阅读它们,您会发现解决方案是不使用MediaWiki语法,而是依赖“纯”HTML。


2
投票

我建议一个不同的答案:不要这样做。

我试图使用这个基本的Mediawiki问题的所有变通方法,发现它们都非常不完美。我学会了没有数字的生活,而是:

  • 对我的所有列表使用splat(*)而不是(#)
  • 继续为我的所有代码块使用前导空格

这远比任何解决方法更简单和可维护。此外,在编辑步骤时,对数字的任何引用的使用都可能会发生变化 - 这将成为另一个维护问题。


1
投票

在上面的例子中,第二个缩进(::)不是必需的。

只有一个缩进工作正常(:)如下:

# one
#:<pre>
#:some stuff
#:some more stuff</pre>
# two

生产:

  • 一个 一些东西(只有一个缩进级别,而不是两个)更多的东西
  • 2.两个

  • -2
    投票

    您还可以尝试在“pre”标签周围添加“blockquote”标签,使其看起来更加精致。

    == HAProxy Configuration ==
    #'''File:''' /etc/haproxy/haproxy.cfg
    <blockquote>
    <pre>
    global
      log 127.0.0.1 local1 notice
      maxconn 4096
      #daemon
      debug
      crt-base /usr/local/haproxy/ssl
    </blockquote>
    </pre>
    

    这将使灰色框与您的项目符号/数字一致,而不使用冒号。

    © www.soinside.com 2019 - 2024. All rights reserved.