Markdown子列表位于项目符号

时间:2017-02-10 18:26:10

标签: markdown

以下HTML的Markdown等价物是什么?

    <ul><li>Here is a bullet point</li>
    <li>Here is another bullet point; it has sub-points:
        <ul><li>subpoint 1</li>
        <li>subpoint 2</li>
        <li>subpoint 3</li></ul>
    but then continues with the original bullet point</li>
    <li>and here's one more point just to drive it home</li>
    </ul>

我似乎无法将“......然后继续...”位保留在封装子列表的同一个项目符号中。我尝试了几种变体:

* Here is a bullet point
* Here is another bullet point; it has sub-points:
    * subpoint 1
    * subpoint 2
    * subpoint 3
  but then continues with the original bullet point
* and here's one more point just to drive it home

对于“but then”具有不同的缩进级别,但无论它与“subpoint 3”连接的是什么,或者它只是在项目符号点下变成另一个子缩进。特定的行为也会根据我正在使用的Markdown的风格而有所不同。

这是不是太复杂了,无法封装在Markdown中,而且我应该只使用内联HTML?

1 个答案:

答案 0 :(得分:4)

你需要包含一些空行来告诉Markdown何时开始列表,何时结束列表,何时开始一个段落(不在列表中)等等......

* Here is a bullet point
* Here is another bullet point; it has sub-points:

    * subpoint 1
    * subpoint 2
    * subpoint 3

    but then continues with the original bullet point

* and here's one more point just to drive it home

呈现为:

<ul>
    <li>Here is a bullet point</li>
    <li>
        <p>Here is another bullet point; it has sub-points:</p>
        <ul>
            <li>subpoint 1</li>
            <li>subpoint 2</li>
            <li>subpoint 3</li>
        </ul>
        <p>but then continues with the original bullet point</p>
    </li>
    <li>
        <p>and here's one more point just to drive it home</p>
    </li>
</ul>

关键是将嵌套在列表项中的所有内容都想象成它自己的独立Markdown文档,该文档从文档的其余部分缩进了四个空格。在这种情况下,您需要在最后一个列表项和后面的段落之间添加一个空行,所以你也可以在这里做。

有一点需要注意的是,这会产生的输出包括你现在有一个“懒惰列表”的副作用。也就是说,列表项的内容现在包含在<p>标记中。这在rules

中严格执行
  

如果列表项由空行分隔,Markdown会将项目包装在HTML输出中的<p>标记中。

如果您不想要额外的<p>标记,那么您不能在列表项中嵌套多个块级元素。

最后,我会注意到在上面的示例中,第一个列表项没有获得<p>标记。虽然规则中没有以这种或那种方式记录,但这是原始参考实现的行为(仅列出空白行(空白行前后的项)获取<p>标记的列表项)。虽然一些实现已经复制了这种行为,但并非所有实现都有,并且它们之间存在各种不同的边缘情况。为了实现一致性,如果我需要在列表中的任何位置使用空行,我发现在每个列表项之间包含一个空行是一个好习惯。因此我会这样做:

* Here is a bullet point

* Here is another bullet point; it has sub-points:

    * subpoint 1
    * subpoint 2
    * subpoint 3

    but then continues with the original bullet point

* and here's one more point just to drive it home

哪个应更一致地呈现为:

<ul>
    <li>
        <p>Here is a bullet point</p>
    </li>
    <li>
        <p>Here is another bullet point; it has sub-points:</p>
        <ul>
            <li>subpoint 1</li>
            <li>subpoint 2</li>
            <li>subpoint 3</li>
        </ul>
        <p>but then continues with the original bullet point</p>
    </li>
    <li>
        <p>and here's one more point just to drive it home</p>
    </li>
</ul>