Markdown使用<section>和<div>块进行范围设定?

And*_*ang 16 html markdown scope

我注意到块级别的东西并不是真正的降价友好.想象一下以下部分(是的,我打算输出twitter bootstrap):

<section id="loremipsum">
    <div class="page-header">
    # Heading 1 #
    </div>

    Lorem ipsum, blah blah blah, yada yada yada.
</section>
Run Code Online (Sandbox Code Playgroud)

预期产量应为:

<section id="loremipsum">
    <div class="page-header">
    <h1>Heading 1</h1>
    </div>
    <p>Lorem ipsum, blah blah blah, yada yada yada.</p>
</section>
Run Code Online (Sandbox Code Playgroud)

相反,产生的输出更接近:

<p><section id="loremipsum"></p>
<div class="page-header">
# Heading 1 #
</div>
<p>Lorem ipsum, blah blah blah, yada yada yada.</section></p>
Run Code Online (Sandbox Code Playgroud)

这里有两个问题:

  1. 按照Daring Fireball的建议,Markdown应该足够聪明,不要陷入不想要的状态

    块级元素周围的标记,例如section标记.

  2. 标题1未被解析为标题,而是未解析.

这两个问题实际上也发生在官方解析器Dingus中,所以我猜这是一个"按预期工作"的问题之一.那就是说,那里有没有知识如何解决这些问题的降价大师?

arv*_*ve0 5

游戏有点晚了,但更新了答案(截至 2015 年夏季)。

问题取决于您使用哪种实现,但关于降价的一个很好的参考是CommonMark。根据HTML-blocks 规范,您可以通过以下降价获得想要的结果:

<section id="loremipsum">
  <div class="page-header">

  # Heading 1 #

  </div>

  Lorem ipsum, blah blah blah, yada yada yada.

</section>
Run Code Online (Sandbox Code Playgroud)

注意空行,它们是HTML 块的结束条件。另请注意:

块以符合起始条件的行开始(最多三个空格可选缩进)。

这意味着人们应该小心缩进 HTML 块的开头。

markdown-it在 js 中 100% 实现了 commonmark,perl-commonmark为您提供了对 CommonMark C 库的绑定,我想您会在大多数编程语言中找到 CommonMark 的实现。

  • 天啊!那种格式很容易让人不小心破解!:) (2认同)

ult*_*aut 3

是的,这是设计使然。根据格鲁伯的说法

\n\n
\n

请注意,Markdown 格式化语法不在块级 HTML 标记内进行处理。例如,您可以\xe2\x80\x99t 在 HTML 块内使用 Markdown 样式*强调*。

\n
\n\n

我不知道有任何解决方法,但当谈到 Markdown 时,我不会把自己置于大师级别。

\n\n

编辑:如果您正在使用 PHP,您可能需要查看PHP Markdown Extra 。

\n