【问题标题】:Prevent HTML included in markdown file being processed further by Jekyll?防止 Jekyll 进一步处理 Markdown 文件中包含的 HTML?
【发布时间】:2015-04-01 15:59:55
【问题描述】:

我正在使用 Jekyll,并希望使用 {% include... %} 在 Markdown 文件中包含 HTML 的 sn-p,而无需进一步处理该 HTML,即,然后由 Markdown 处理器处理,就好像它只是内联 HMTL .

注意:我使用的是 redcarpet 降价(而不是例如 kramdown)。

这可以用 Jekyll 插件处理吗?

我创建了一个 GitHub 存储库 md-include-html,其中包含演示我的问题的以下文件。

1。 _layouts/default.html 包含:

<div>
{{ content }}
</div>

2。 md-page.md 包含:

---
layout: default
---
A

{% include_relative html-snippet.html %}

B

3。 html-snippet.html 包含:

</div>
<!-- Some arbitrary HTML for {{ page.path }} -->
<div>

请注意,我首先尝试关闭将由_layouts/default.html 引入的 div,然后在最后打开一个新 div。

这导致_site/md-page.html:

<div>
<p>A</p>

<p></div>
&lt;!-- Some arbitrary HTML for md-page.md --&gt;
<div></p>

查看我的评论是如何被处理的,以及我的内容是如何包装在&lt;p&gt;...&lt;/p&gt; 中的。

似乎包含发生在降价处理之前,并且没有办法告诉降价处理器以不同的方式处理包含的文本。

所以我可以在 HTML 文件中包含类似这样的标记(请参阅我的仓库中的 html-page.html):

{% capture snippet_content %}
{% include_relative md-snippet.md %}
{% endcapture %}
{{ snippet_content | markdownify }}

但我不能在 markdown 文件中包含 HTML。

如果没有降价功能(在 Liquid 中完成的任何事情基本上都发生得太早)暂时禁用降价处理,我无法解决这个问题。

例如

A

<markdown-off>{% include_relative html-snippet.html %}</markdown-off>

B

是的,我知道标签看起来不太像降价,但你明白我的意思。

有没有办法用 Jekyll 插件来做到这一点?我查看了 Jekyll 文档的 plugin page 中提到的那些,但没有立即发现任何东西。

【问题讨论】:

  • 当我最初发布这个问题时,我没有在演示这个问题的 repo 中的 _config.yml 文件中指定 markdown: redcarpet。我现在有了 - 因为这是我在实际项目中使用的降价类型。

标签: markdown jekyll redcarpet


【解决方案1】:

我知道一个老问题,但是您是否尝试将其包装在 {% raw %} {% endraw %} 中?

试试

</div>
{% raw}
<!-- Some arbitrary HTML for {{ page.path }} -->
{% endraw %}
<div>

这应该会停止模板引擎的处理。

注释缩进4个空格意味着markdown会将其视为代码,但Liquid仍将处理{{ page.path }}

【讨论】:

    【解决方案2】:

    刚刚遇到这个问题。我正在使用包含在 Jekyll 的 .md 文件中添加 html 的 sn-ps。如果你使用 Kramdown,你可以在你的 include sn-p 中添加一个 markdown 属性。

    <div markdown="0"> !-- some html you don't want processed --> </div>
    

    这似乎有效。

    【讨论】:

      猜你喜欢
      • 2017-06-17
      • 1970-01-01
      • 2013-07-17
      • 2016-02-28
      • 2016-07-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多