在下面的降价代码中,我希望 item 3
从列表编号 3 开始。但由于降价之间的代码块将此列表项作为新列表启动。有什么办法可以防止这种行为?
期望的输出:
1. item 1
2. item 2
```
Code block
```
3. item 3
产生的输出:
项目 1 项目 2
Code block
第 3 项
<code>
HTML 元素,它不是语法高亮的,并且上面有一个额外的空白行,明显突出显示为代码。
29. this is list item number 29
中所示。不过,这可能不适用于所有降价解析器。
使用四个空格在项目符号之间缩进内容
1. item 1
2. item 2
```
Code block
```
3. item 3
产生:
项目 1 项目 2 代码块项目 3
作为现有答案的扩展。对于那些试图在代码块以外的东西之后继续编号列表的人。例如第二段。只需将第二段缩进至少 1 个空格。
降价:
1. one
2. two
three
3. four
输出:
一二三四
请注意,在 Macmade 的解决方案中,您可以在“代码块”上方看到一行额外的代码。
这里有两个更好的解决方案:
将代码块缩进额外的 4 个空格(通常为 8 个,在此嵌套列表示例中为 12 个)。这会将代码放在
元素中。在 SO 上,您甚至可以使用 缩进 4 个空格(由于嵌套列表,此处为 +1)。项目 1 项目 2 Code.block('JavaScript',也许)?第 3 项 或者,只需将代码块放在反引号内并缩进 4 个空格(这里,由于嵌套列表而额外缩进 1 个空格)。您将获得一个常规缩进文本段落,其中包含一个 元素。这个你不能语法高亮:项目 1 项目 2 代码块项目 3
注意:您可以单击此答案上的“编辑”以查看底层 Markdown 代码。无需保存;)
这是针对这个特定问题的解决方案,但它不是解决在一些中间文本之后在下一个数字处重新启动 Markdown 列表的问题的通用解决方案。似乎没有办法做到这一点,这让我发疯。 Markdown 的其他一切都很棒。
@Mars 正如您从 DavidT's answer 中看到的,一般的解决方案是使用任意数量的空格缩进文本。例如,添加一个空格而不是四个空格将允许您插入任何中间文本,而无需创建代码块。
Macmade 的解决方案不再适用于我在 Github Pages 上的 Jekyll 实例,但我在 kramdown github repo 的问题上找到了 this solution。对于 OP 的示例,它看起来像这样:
1. item 1
2. item 2
```
Code block
```
{:start="3"}
3. item 3
轻松解决了我的问题。
如果你使用制表符来缩进代码块,它会将整个代码块变成一行。为避免这种情况,您需要使用 html 有序列表。
项目 1 项目 2
代码块
<ol start="3">
<li>item 3</li>
<li>item 4</li>
</ol>
如果您碰巧使用 Ruby gem redcarpet 来呈现 Markdown,您可能仍然会遇到此问题。
您可以逃避编号,redcarpet 会很高兴地忽略任何特殊含义:
1\. Some heading
text text
text text
text text
2\. Some other heading
blah blah
more blah blah
资源;
<span>1.</span> item 1<br/>
<span>2.</span> item 2
```
Code block
```
<span>3.</span> item 3
结果;
1. 项目 1
2. 项目 2 Code block
3. 项目 3
如果您不希望列表项之间的行缩进,就像用户 Mars 在他的评论中提到的那样,您可以使用 pandoc
的 example_lists
功能。从他们的 docs:
(@) My first example will be numbered (1).
(@) My second example will be numbered (2).
Explanation of examples.
(@) My third example will be numbered (3).
(@)
对应于一个全局连续列表(因此只能有一个。使用 pandoc
的 startnum
扩展,您可以使用您想要的数字开始一个有序列表,并且它可以正常工作。
我在 Github 上解决了这个问题,用换行符分隔缩进的子块,例如,你写项目 1,然后按两次回车(就像它是一个新段落),缩进块并写你想要的(一个块代码、文本等)。关于 Markdown lists 和 Markdown line breaks 的更多信息。
例子:
项目一项目二这个块作为一个新段落,上面有一个空白行项目三一些其他代码项目四
您可以尝试在句点 (1\. item 1
) 之前添加反斜杠 (\
),即 disables the list auto-numbering。 注意:这将删除左侧缩进。
1. 项目 1
def call_of_duty()
return press_f()
3. 第 3 项
print("fus ro dah")
7. 第 7 项
print("Omae Wa Mou Shindeiru")
10. 项目 10
从链接源:
3\. Put on shoes
2\. Open door
1\. Step outside
renders
3. Put on shoes
2. Open door
1. Step outside
在 CommonMark Spec 中有关于此的规则
1. foo
2. bar
3) baz
生成此 HTML
<ol>
<li>foo</li>
<li>bar</li>
</ol>
<ol start="3">
<li>baz</li>
</ol>
将列表编号放在括号中,而不是后跟句点。
(1) 项目 1
(2) 项目 2 code block
(3) 项目 3
<ol>
和 <li>
元素,而只是将它们包装在 <p>
标记中。此外,您实际上会得到 (1)
。
<ol>
和 <li>
(通过 Hakyl 使用 Pandoc)l。似乎是从 x.
形式切换到 (x)
形式导致将新的 start
参数插入到 <li>
中。
请注意,还有许多可用的扩展程序可以针对 Markdown 使用的特定上下文修复此行为。
例如,python-markdown 的 sane_lists 扩展(例如在 mkdocs 中使用)将识别 Markdown 列表中使用的数字。您只需启用此扩展程序 markdown.markdown(some_text, extensions=['sane_lists'])
如果您想让文本与前面的列表项对齐但避免出现“大”换行符,请在列表项的末尾使用两个空格并将文本缩进一些空格。
来源:(点是空格;-)当然)
1.·item1··
····This is some text
2.item2
结果:
item1 这是一些文本 item2
我的解决方案很简单:不要使用点空间。
例如
1.apple
2.banana
3.cherry
4.drone
产生:
1.苹果
2.香蕉
3.樱桃
4.无人机