16

我注意到块级的东西对降价并不友好。想象以下部分(是的,我打算为 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 应该足够聪明,不会放入不需要的内容

    块级元素周围的标签,例如节标签。

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

这两个问题实际上也发生在官方解析器 Dingus 中,所以我想这是“按预期工作”类型的问题之一。也就是说,是否有任何降价专家知道如何解决这些问题?

4

4 回答 4

5

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

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

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

  # Heading 1 #

  </div>

  Lorem ipsum, blah blah blah, yada yada yada.

</section>

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

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

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

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

于 2015-07-15T10:55:20.460 回答
4

您可以使用Pandoc的降价,它默认将标签之间的<div>代码解释为降价文本。

$ pandoc input.md -o output.html

(有关详细信息,请参阅Pandoc 的降价文档markdown_in_html_blocks部分。)

于 2013-10-20T20:18:45.610 回答
3

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

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

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

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

于 2012-09-26T02:59:56.187 回答
0

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

事实证明,如果您将标签大写,markdownsharp则将使用实数,但如果使用.div<DIV><div>

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

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

甚至 stackoverflow 的 markdown 仍然可以区分两者,尽管它去掉了 DIV 本身。对于一个公共网站来说,这可能是一件好事!

这将是大胆的

**这不会是粗体**
于 2016-05-20T01:40:19.337 回答