Markdown使用<section>和<div>块确定范围?</div> </section>

时间:2012-09-26 02:37:58

标签: html scope markdown

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

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

    Lorem ipsum, blah blah blah, yada yada yada.
</section>

预期输出应为:

<section id="loremipsum">
    <div class="page-header">
    <h1>Heading 1</h1>
    </div>
    <p>Lorem ipsum, blah blah blah, yada yada yada.</p>
</section>

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

<p><section id="loremipsum"></p>
<div class="page-header">
# Heading 1 #
</div>
<p>Lorem ipsum, blah blah blah, yada yada yada.</section></p>

这里有两个问题:

  1. 根据Daring Fireball的建议,Markdown应该足够聪明,不要在块级元素(例如section标签)周围添加不​​需要的

    标签。

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

4 个答案:

答案 0 :(得分:4)

您可以使用Pandoc的降价标记,默认情况下会将<div>标记之间的代码解释为降价文字。

$ pandoc input.md -o output.html

(有关详细信息,请参阅Pandoc's markdown docmarkdown_in_html_blocks部分。)

答案 1 :(得分:4)

游戏稍晚,但更新后的答案(截至2015年夏季)。

问题取决于您使用的实施方式,但有关降价的好参考是CommonMark。根据{{​​3}},您可以通过此降价获得所需结果:

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

  # Heading 1 #

  </div>

  Lorem ipsum, blah blah blah, yada yada yada.

</section>

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

  

该块以满足开始条件的行开始(在最多三个空格可选缩进之后)。

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

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

答案 2 :(得分:3)

是的,这是设计的。根据{{​​3}}:

  

请注意,在块级HTML标记中不处理Markdown格式化语法。例如,你不能在HTML块中使用Markdown-style * emphasis *。

我不知道有什么办法可以解决这个问题,但是当谈到Markdown时我不会把自己放在大师级别。

修改:如果您正在使用PHP,可能需要查看Gruber

答案 3 :(得分:0)

某些实现可能区分大小写。

如果您将markdownsharp标记大写,div将使用真实<DIV>,但如果您使用<div>则不会。{/ p>

所以这可能会给你你想要的东西

<DIV class="video-panel">
   ![Review][1]
   ![Review][2]
</DIV>

即使stackoverflow的降价仍然可以区分两者,尽管它剥离了DIV本身。对于公共网站来说,这可能是一件好事!

这将是粗体

**这不会是大胆的**