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


86

在MediaWiki(维基百科)的Wiki语法中,是否有一种在中间带有代码块的编号列表的方法?

例如:

# 1号
# 2号
  缩进部分将成为代码块
#3
#4号

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

1.数字1
2. 2号
   缩进部分将成为代码块
1.数字3
2. 4号

(请注意,“数字3”和“数字4”如何重置为1和2 ...看来StackOverflow比MediaWiki聪明得多,我不得不将示例放在PRE标签中,以弄乱它!)

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

# 1号
# 2号
#:缩进部分仅会缩进
#3
#4号

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

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

#MainEntry 1
## 1号
## 2号
#MainEntry 2
## 1号
## 2号
  缩进部分将成为代码块
## 3
## 4

...成为...

1. MainEntry 1
   1.数字1
   2. 2号
2. MainEntry 2
   1.数字1
   2. 2号
      缩进部分将成为代码块
1. 1.数字3
   2. 4号

(请注意,“数字3”现在如何为“ 1.1”。)


我在这里提出的问题的例子en.wikipedia.org/w/...
inanutshellus

Answers:


72

您可以尝试以下Wiki语法,它对我有效 1.17

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

这不是完美的,因为您最终会缩进更多,但它确实允许人们使用Wiki语法在多行上使用正确格式的pre块。

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

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

1
Wiki语法在MediaWiki 1.15.1上对我有用。它在代码行周围留了一些额外的空间,但是可以工作。
Nick Chammas 2012年

1
我使用了建议的相同语法,用于编号列表中的图像:#:[[File:image.jpg]]编号项目之间。这可以帮助很多。
Michael Plautz'3

在MediaWiki 1.17上为我工作;谢谢!
2016年

我不确定我们使用哪个版本的MediaWiki,但这是可行的。有一个警告:如果在“ pre”行之前加上另一条#:缩进行,说出标题或其他内容,则“ pre”不能正确呈现。
anuragw

在GitHub使用的mediawiki中不起作用(请参见此处的示例)。而是使用HTML版本。
乔纳森·克罗斯

34

使用html:

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

它将在mediawiki中工作。

请注意,我在下面发布的示例中,正是这样</li>才能使其正常运行。


我编辑的例子来展示它是如何工作的:en.wikipedia.org/w/...
阿德里安·阿彻

这是Wiki语法的已知问题。
阿德里安·阿彻

凯尔的答案应该被接受。如果做嵌套列表,将很难使用html。此外,以上答案已在古代Wikipedia沙盒页面中掩埋。上面Stackoverflow答案中的实际文本不能解决OP的问题。
2016年

15

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

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


5
正确,但是如果您不想在一行中编写所有块代码,则无法正常工作
RockScience

13

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

错误1115-换行符作为列表项终止符很麻烦

错误1584-多段列表项,连续编号列表以及为列表项分配特定编号的Need方法

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


1
我们还有一个完整的Help:Newlines andspaces页面,并且在与列表无关的标记插入中对此问题进行了具体讨论。
Nemo

3

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

我尝试将所有变通办法用于这个基本的Mediawiki问题,但发现它们都不完美。我学会了没有数字的生活,相反:

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

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


1

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

只需缩进一个即可(:),如下所示:

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

产生:

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


  • 6
    我发现</ pre>之间的行上带有:: <pre>的@Kyle答案对我来说是必要的。只是1:正如您所说,nto确实为我工作了……
    cellepo 2014年

    在Mediawiki 1.17中,此答案对我不起作用。我也觉得@Kyle答案是必要的。
    2016年

    -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
    </pre>
    </blockquote>
    

    这会在不使用冒号的情况下缩进与您的项目符号/数字一致的灰色框。


    1
    即使我更正了结束标记的顺序,这对我也不起作用。它破坏了列表的编号。
    P.Péter

    与无序列表(*)相同。如果它们是嵌套的,则块引用后的嵌套不能正确继续。
    2016年
    By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
    Licensed under cc by-sa 3.0 with attribution required.