642

在下面的降价代码中,我想item 3从列表号 3 开始。但由于降价之间的代码块将此列表项作为新列表启动。有什么办法可以防止这种行为?

期望的输出:

1. item 1
2. item 2

```
Code block
```

3. item 3

产生的输出:

  1. 第 1 项
  2. 第 2 项

Code block

  1. 第 3 项
4

14 回答 14

831

使用四个空格在项目符号之间缩进内容

1. item 1
2. item 2

    ```
    Code block
    ```
3. item 3

产生:

  1. 第 1 项
  2. 第 2 项

    Code block

  3. 第 3 项
于 2013-08-06T19:45:51.987 回答
48

作为现有答案的扩展。对于那些试图在代码块以外的东西之后继续编号列表的人。例如第二段。只需将第二段缩进至少 1 个空格。

降价:

1. one
2. two

 three
3. four

输出:

于 2016-03-31T15:00:27.310 回答
41

请注意,在 Macmade 的解决方案中,您可以在“代码块”上方看到一行额外的代码。

这里有两个更好的解决方案:

  1. 将代码块缩进额外的 4 个空格(通常为 8 个,在此嵌套列表示例中为 12 个)。这会将代码放在一个<pre>元素中。在 SO 上,您甚至可以指定缩进 4 个空格的语法高亮显示
    <!-- language: lang-js -->(由于嵌套列表,此处为 +1)。

    1. 第 1 项
    2. 第 2 项

      Code.block('JavaScript', maybe)?
      
    3. 第 3 项

  2. 或者,只需将代码块放在反引号内并缩进 4 个空格(这里,由于嵌套列表而额外缩进 1 个空格)。您将获得一个常规缩进文本段落,其中包含一个<code>元素。这个你不能语法高亮:

    1. 第 1 项
    2. 第 2 项

      Code block

    3. 第 3 项

注意:您可以单击此答案上的“编辑”以查看底层 Markdown 代码。无需保存;)

于 2014-03-03T04:46:11.110 回答
20

Macmade 的解决方案不再适用于我在 Github Pages 上的 Jekyll 实例,但我在 kramdown github repo 的问题上找到了这个解决方案。对于 OP 的示例,它看起来像这样:

1. item 1
2. item 2

```
Code block
```

{:start="3"}
3. item 3

轻松解决了我的问题。

于 2017-01-10T18:18:59.270 回答
19

如果你使用制表符来缩进代码块,它会将整个代码块变成一行。为避免这种情况,您需要使用 html 有序列表。

  1. 第 1 项
  2. 第 2 项

代码块

<ol start="3">
  <li>item 3</li>
  <li>item 4</li>
</ol>
于 2016-04-17T03:43:43.587 回答
14

如果你碰巧使用 Ruby gem redcarpet来渲染 Markdown,你可能仍然会遇到这个问题。

您可以逃避编号,redcarpet 会很高兴地忽略任何特殊含义:

1\. Some heading

text text
text text

text text

2\. Some other heading

blah blah

more blah blah
于 2020-08-03T09:13:02.793 回答
8

来源;

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

于 2017-10-26T23:09:22.433 回答
5

如果您不希望列表项之间的行缩进,就像用户 Mars 在他的评论中提到的那样,您可以使用pandoc'example_lists功能。从他们的文档中

(@)  My first example will be numbered (1).
(@)  My second example will be numbered (2).

Explanation of examples.

(@)  My third example will be numbered (3).
于 2019-01-13T01:47:14.687 回答
3

我在 Github 上解决了这个问题,用换行符分隔缩进的子块,例如,你写项目 1,然后按两次回车(就像它是一个新段落),缩进块并写你想要的(一个块代码、文本等)。有关Markdown 列表Markdown 换行符的更多信息。

例子:

  1. 第一项
  2. 第二项

    this block acts as a new paragraph, above there is a blank line

  3. 第三项

    some other code

  4. 第四项
于 2017-02-19T20:43:01.490 回答
2

将列表编号放在括号中,而不是后跟句点。

(1) 第 1 项
(2) 第 2 项 code block (3) 第 3 项

于 2016-01-04T19:16:33.807 回答
2

请注意,还有许多可用的扩展程序可以针对 Markdown 使用的特定上下文修复此行为。

例如, python-markdown 的sane_lists扩展(例如在 mkdocs 中使用)将识别 Markdown 列表中使用的数字。您只需要启用此扩展程序arkdown.markdown(some_text, extensions=['sane_lists'])

于 2020-03-05T11:17:27.917 回答
1

如果您想让文本与前面的列表项对齐但避免出现“大”换行符,请在列表项的末尾使用两个空格并将文本缩进一些空格。

来源:(点是空格;-)当然)

1.·item1··
····This is some text
2.item2

结果:

  1. item1
    这是一些文字
  2. 项目2
于 2020-05-22T23:36:15.673 回答
1

您可以尝试\在句点 () 之前添加反斜杠 ( 1\. item 1),这会禁用列表自动编号注意:这将删除左侧的缩进。

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
于 2021-11-01T15:14:35.180 回答
1

CommonMark Spec中有一个关于这个的规则

1. foo
2. bar
7) baz

生成此 HTML

<ol>
<li>foo</li>
<li>bar</li>
</ol>
<ol start="3">
<li>baz</li>
</ol>
于 2021-12-29T15:02:56.630 回答