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

Posted

技术标签:

【中文标题】编号列表中的代码块(Wiki 语法)【英文标题】:Code block in numbered list (Wiki syntax) 【发布时间】:2011-06-27 00:31:35 【问题描述】:

在 MediaWiki(***的)wiki 语法中,有没有办法在中间有一个带有代码块的编号列表?

例如:

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

在 MediaWiki 中发生的事情是你最终会得到这样的结果:

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

(注意“数字 3”和“数字 4”如何重置为 1 和 2...看起来 *** 比 MediaWiki 更智能,我不得不将我的示例放在 PRE 标记中以使其搞砸!)

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

# 1号 # 2号 #: 缩进的部分,只会缩进 # 3 号 # 4 号

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

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

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

...变成...

1. 主条目 1 1. 1号 2. 2号 2. 主条目 2 1. 1号 2. 2号 将成为代码块的缩进部分 1. 1. 3 号 2. 4 号

(注意“数字 3”现在如何变成“1. 1”)

【问题讨论】:

我在这里做了一个问题的例子:en.wikipedia.org/w/… 【参考方案1】:

您也可以尝试在“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>

这将根据您的项目符号/数字缩进灰色框而不使用冒号。

【讨论】:

这对我不起作用,即使我更正了结束标签的顺序。它破坏了列表的编号。 与无序列表 (*) 相同。如果它们是嵌套的,则块引用之后的嵌套将无法正确继续。【参考方案2】:

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

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

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

这比任何解决方法都简单得多且可维护得多。此外,随着步骤的编辑,对数字的任何引用都可能发生变化 - 这将成为另一个维护问题。

【讨论】:

【参考方案3】:

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

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

【讨论】:

正确,但如果你不想将所有的块代码写在一行中,它就行不通【参考方案4】:

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

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

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

生产:

1。一个 一些东西(只有一个缩进级别,而不是两个) 还有一些东西 2。二

【讨论】:

我在 之间的行上找到了@Kyle 的答案 ::
 对我来说是必要的。只是 1:正如你所说,对我没有用...
这个答案在 Mediawiki 1.17 中对我不起作用。我也觉得@Kyle 的回答很有必要。【参考方案5】:

您可以尝试以下 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>

【讨论】:

该 wiki 语法在 MediaWiki 1.15.1 上对我有用。它在代码行周围留了一点额外的空间,但它可以工作。 我对编号列表中的图像使用了您建议的相同语法:#:[[File:image.jpg]] 在编号项目之间。这很有帮助。 在 MediaWiki 1.17 上为我工作;谢谢! 我不确定我们使用的是哪个版本的 MediaWiki,但这是可行的。只有一个警告:如果您在 'pre' 行之前加上另一个 #: 缩进行,例如标题或其他内容,则 'pre' 无法正确呈现。 在 GitHub 使用的 mediawiki 中不起作用(请参阅 example here)。而是使用 HTML 版本。【参考方案6】:

您的问题是 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。

【讨论】:

我们还有一个完整的Help:Newlines and spaces 页面和List-agnostic markup insertions 对此问题的具体讨论。【参考方案7】:

使用html:

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

它将在 mediawiki 中工作。

请注意,我在下面发布的示例中,是 &lt;/li&gt; 使其正常工作。

【讨论】:

我编辑了你的例子来展示它是如何工作的:en.wikipedia.org/w/… 这是 wiki 语法的一个已知问题。 凯尔的回答应该被接受。如果做嵌套列表,使用html会很困难。此外,上述答案隐藏在古代***沙盒页面中。上面 *** 答案中的实际文本并不能解决 OP 的问题。

以上是关于编号列表中的代码块(Wiki 语法)的主要内容,如果未能解决你的问题,请参考以下文章

Vim Markdown 高亮(列表项和代码块冲突)

Markdown语法简介

Markdown语法

Markdown-语法

Markdown-语法

Cmd Markdown 简明语法手册