在下面的降价代码中,我希望项目3从列表3开始。但由于markdown之间的代码块将此列表项作为一个新列表启动。有没有办法防止这种行为?

期望的输出:

1. item 1
2. item 2

```
Code block
```

3. item 3

产生的输出:

第一项 第二项

代码块

项目3


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

1. item 1
2. item 2

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

生产:

第一项 第二项 代码块 项目3


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

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

Indent the code block by an extra 4 spaces (so usually 8, in this nested list example, 12). This will put the code in a <pre> element. On SO, you can even specify syntax highlight with a <!-- language: lang-js --> indented by 4 spaces (+1 here due to the nested list). item 1 item 2 Code.block('JavaScript', maybe)? item 3 Or, just put the Code block within backticks and indent by 4 spaces (here, 1 extra because of the nested list). You'll get a regular indented text paragraph, with a <code> element inside it. This one you can't syntax-highlight: item 1 item 2 Code block item 3

注意:你可以在这个答案上点击“编辑”来查看底层Markdown代码。不需要保存;)


将列表数字放在括号中,而不是后面跟着句号。

(一)第一项 (二)第二项 代码块 (三)第三项


作为现有答案的延伸。对于那些试图在代码块以外的东西后面继续编号列表的人。比如第二段。第二段缩进至少一个空格。

Markdown:

1. one
2. two

 three
3. four

输出:

一个 两个 三个 四个


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

第一项 第二项

代码块

<ol start="3">
  <li>item 3</li>
  <li>item 4</li>
</ol>

Macmade的解决方案不再适用于我在Github页面上的Jekyll实例,但我在kramdown Github回购的一个问题上找到了这个解决方案。对于OP的例子,它看起来是这样的:

1. item 1
2. item 2

```
Code block
```

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

轻松解决了我的问题。


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

例子:

项目一个 两个项 这个块作为一个新的段落,上面有一个空行 项目三 其他代码 项目四


源;

<span>1.</span> item 1<br/>
<span>2.</span> item 2
```
Code block
```
<span>3.</span> item 3

结果;

1. 第一项 2. 第二项 代码块 3.项目3


如果您不希望列表项之间的行缩进,就像用户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).

请注意,还有许多可用的扩展可以修复Markdown使用的特定上下文的这种行为。

例如,python-markdown的sane_lists扩展(例如,在mkdocs中使用)将识别Markdown列表中使用的数字。您只需要启用这个扩展markdown。减记(some_text、扩展= [' sane_lists '])


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

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

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

结果:

item1 这是一些文本 第二条


如果你碰巧使用Ruby宝石红地毯来渲染Markdown,你可能仍然有这个问题。

你可以忽略编号,红地毯会很高兴地忽略任何特殊含义:

1\. Some heading

text text
text text

text text

2\. Some other heading

blah blah

more blah blah

您可以尝试在句点(1\)之前添加反斜杠(\)。Item 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>

我的解决办法很简单:不要用点空格。

e.g.

1.apple

2.banana

3.cherry

4.drone

生产:

1.苹果

2.香蕉

3.樱桃

4.无人机