ChatGPT解决这个技术问题 Extra ChatGPT

Markdown:继续编号列表

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

期望的输出:

1. item 1
2. item 2

```
Code block
```

3. item 3

产生的输出:

项目 1 项目 2

Code block

第 3 项

这是correct solution。 Macmade 的答案中的三个反引号实际上只是生成了一个带有换行符的 <code> HTML 元素,它不是语法高亮的,并且上面有一个额外的空白行,明显突出显示为代码。
如果您真的很绝望,您可以查找您希望使用的数字(以及每个后续项目)的 HTML 字符代码...如 &#50;&#57;. this is list item number 29 中所示。不过,这可能不适用于所有降价解析器。

L
Levi Fuller

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

1. item 1
2. item 2

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

产生:

项目 1 项目 2 代码块项目 3


是的,缩进让解析器清楚代码块属于列表项 2。否则,它只是一个普通段落,并将结束列表。
但是......如果你不想在那里缩进怎么办?据我所知,Markdown 没有解决方案。开始一个列表通常是一件很自然的事情,然后停下来提供一些关于列表的元注释文本——我们刚刚做了什么,接下来会发生什么——从逻辑上讲,文本不属于列表的一部分——并且然后继续列表。 Markdown 不希望我们这样做。这是 Markdown 不希望人们表达的一种思想形式——Markdown 不知道如何表达,Markdown 认为它太……自由了。工具应该跟随思想。叹。我可以用 HTML 编写,或者制作 PDF。
对我来说似乎根本不起作用。我有一个简单的编号列表,并且如上所示缩进和换行。仍然在 1 处重新开始。
在我尝试过的几个 Markdown 编辑器(Bitbucket、Tumblr)中,这不起作用——它呈现内联代码而不是正确缩进的代码块。
@10basetom 对于 Bitbucket,我发现两次意图代码并删除三个刻度或多或少地达到了预期的效果。唯一的问题是你不能指定语言格式,但显然这不是“官方”降价实现的一部分。
C
Community

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

降价:

1. one
2. two

 three
3. four

输出:

一二三四


甜的!我有一系列伪代码块和 MathJax 方程。这正是我所需要的。
不适用于 GitHub Wiki。添加更多空格至少会使编号与上面的数字具有相同的类型。 :rf:
@ChaimEliyah 那是因为我 99% 确定 wiki 不使用 GitHub 风格的降价(我确定我以前遇到过这种好奇心)
这也将处理列表条目包含一些文本、一些代码以及最后在列表条目末尾之前的更多文本的情况。
它不适用于 IntelliJ,但我不知道它是否适用于 GitHub。
C
Community

请注意,在 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 中看到的,一般的解决方案是使用任意数量的空格缩进文本。例如,添加一个空格而不是四个空格将允许您插入任何中间文本,而无需创建代码块。
K
KhalilRavanna

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

1. item 1
2. item 2

```
Code block
```

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

轻松解决了我的问题。


不幸的是,这不适用于 GitHub 自述文件。 :(
很高兴读到这篇文章,但在我使用 kramdown 的 Fastpages (Jekyll Github Pages) 博客中,启动代码被简单地忽略了。我怀疑它被 Liquid 或 nbdev 破坏了。
u
user3505838

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

项目 1 项目 2

代码块

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

f
fqxp

如果您碰巧使用 Ruby gem redcarpet 来呈现 Markdown,您可能仍然会遇到此问题。

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

1\. Some heading

text text
text text

text text

2\. Some other heading

blah blah

more blah blah

这是唯一对我有用的解决方案:有序列表中的多行代码块,并且代码仍然使用换行符正确格式化,并且可以在 Github 上运行。
b
brillout

资源;

<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


i
iuvbio

如果您不希望列表项之间的行缩进,就像用户 Mars 在他的评论中提到的那样,您可以使用 pandocexample_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).

这是这个问题最普遍的解决方案。无需缩进,如果列表元素之间有标题,它甚至可以工作。
(@) 对应于一个全局连续列表(因此只能有一个。使用 pandocstartnum 扩展,您可以使用您想要的数字开始一个有序列表,并且它可以正常工作。
这被 kramdown 渲染为文字“(@)”,仅此而已。
N
Nestor Marin

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

例子:

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


这也适用于 GatsbyJS
D
Dmitriy Zub

您可以尝试在句点 (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

t
tarleb

CommonMark Spec 中有关于此的规则

1. foo
2. bar
3) baz

生成此 HTML

<ol>
<li>foo</li>
<li>bar</li>
</ol>
<ol start="3">
<li>baz</li>
</ol>

l
lomzher

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

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


这会破坏 <ol><li> 元素,而只是将它们包装在 <p> 标记中。此外,您实际上会得到 (1)
我认为这就是意图。
它为我保留 <ol><li>(通过 Hakyl 使用 Pandoc)l。似乎是从 x. 形式切换到 (x) 形式导致将新的 start 参数插入到 <li> 中。
A
Alex

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

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


太好了,谢谢!
J
Jarda

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

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

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

结果:

item1 这是一些文本 item2


谢谢——尽管严格来说这不是对原始问题的回答,但它是对某些人在找到此页面的方式时想知道的内容的回答。
S
Siwei

我的解决方案很简单:不要使用点空间。

例如

1.apple

2.banana

3.cherry

4.drone

产生:

1.苹果

2.香蕉

3.樱桃

4.无人机