【问题标题】:Markdown editing does not work under paragraphMarkdown 编辑在段落下不起作用
【发布时间】:2017-11-14 05:24:35
【问题描述】:

我的 GitHub 页面之一有以下 MD 代码。

<p align="justify">
Text Text Text.

</p>

<p align="justify">
**Text** Text Text.


`Text` Text.

</p>

虽然第一个段落标记可以正常工作,因为它内部没有进行 Markdown 编辑,但第二个段落标记内的文本没有按应有的格式格式化。 (没有粗体,没有quotes

为什么会这样??那么如何在段落内使用 Markdown 编辑呢?

【问题讨论】:

  • 您究竟是如何处理 Markdown 的?请注意,空行实际上创建了一个新段落,其他段落内的段落无效。
  • 是的,我知道空行,但我希望我的文本是合理的,所以我必须使用

    标记。我正在为我的 github 页面使用 Jekyll 模板。

  • 在原生 Markdown 中无法对齐。 Source

标签: html markdown github-pages github-flavored-markdown


【解决方案1】:

Markdown rules 明确声明:

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

也就是说,GitHub Pages uses Kramdown 来解析 Markdown,而 Krandown 的行为略有不同,这为您提供了更大的灵活性。事实上,Kramdown 的 documentation 表示:

如果 HTML 标记具有属性markdown="1",则使用该标记中解析语法的默认机制。

换句话说,这样做:

<p align="justify" markdown="1">
**Text** Text Text.


`Text` Text.
</p>

你会得到以下输出:

<p align="justify">
<strong>Text</strong> Text Text.
<code>Text</code> Text.</p>

Kramdown 足够聪明,可以识别您位于 &lt;p&gt; 标记内,并且不会将各个行包装在新的 &lt;p&gt; 标记中,这将是无效的 HTML。如果您真的希望每一行都是一个单独的段落,那么您应该使用 &lt;div&gt; 来包装所有内容。像这样:

<div align="justify" markdown="1">
**Text** Text Text.


`Text` Text.
</div>

这会导致这个输出:

<div align="justify">
    <p><strong>Text</strong> Text Text.</p>
    <p><code>Text</code> Text.</p>
</div>

为了完整起见,应该注意 GitHub README 和 Gists 不使用相同的 Markdown 解析器。相反,他们使用扩展的Commonmark 解析器,它处理原始 HTML 中的 Markdown 与上述两种方式不同。在 Commonmark 中,原始 HTML 块的内容是否被解析为 Markdown 取决于内容是否被空行包裹。在这种情况下,正确的方法是这样做:

<div align="justify">

**Text** Text Text.


`Text` Text.

</div>

但是,由于 GitHub 将删除 align 属性,因此在 github.com 上托管的页面(例如自述文件)上这样做没有任何意义。还有一个问题是,Commonmark 不够聪明,无法检测到包装的原始 HTML 标签是 &lt;p&gt; 标签,并将每一行包装在另一个 &lt;p&gt; 中,导致 HTML 无效。因此,在这种情况下,您必须使用&lt;div&gt;

虽然告诉解析器将内容解析为 Markdown 的 use-blank-lines 方法是比markdown="1" 更优雅的解决方案,但它仅受 Commonmark 解析器支持,而 Kramdown 不支持。因此,只要 GitHub Pages 使用 Kramdown,就需要关注Kramdown's rules

【讨论】:

    猜你喜欢
    • 2015-08-15
    • 2021-05-07
    • 1970-01-01
    • 1970-01-01
    • 2012-08-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多