首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >是否阻止Jekyll进一步处理markdown文件中包含的HTML?

是否阻止Jekyll进一步处理markdown文件中包含的HTML?
EN

Stack Overflow用户
提问于 2015-02-03 00:30:58
回答 2查看 1.4K关注 0票数 6

我正在与Jekyll合作,并希望使用{% include... %}在标记下文件中包含一段超文本标记语言,而无需进一步处理该超文本标记,即由标记处理器处理,就好像它只是内联HMTL一样。

注意:我使用的是红毯标记(而不是kramdown)。

这能用Jekyll插件来处理吗?

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

_layouts/default.html包含:

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

md-page.md包含:

---
layout: default
---
A

{% include_relative html-snippet.html %}

B

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>

看看我的评论是如何被处理的,以及我的内容是如何包装在<p>...</p>中的。

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

所以我可以像这样在一个超文本标记语言文件中包含markdown (参见我的资源库中的html-page.html ):

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

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

如果没有markdown特性(在Liquid中做的任何事情本质上都发生得太早)来暂时禁用markdown处理,我看不到解决这个问题的方法。

例如。

A

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

B

是的,我知道标签看起来不是很有标记,但是你明白我的意思。

有什么方法可以用Jekyll插件做到这一点吗?我查看了Jekyll文档的plugin page中提到的内容,但没有立即发现任何内容。

EN

回答 2

Stack Overflow用户

发布于 2019-05-14 07:56:04

现在正好遇到了这个问题。我使用includes在Jekyll的.md文件中添加html片段。如果您使用的是Kramdown,您可以在您的include代码片段中添加一个markdown属性。

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

这似乎是可行的。

票数 3
EN

Stack Overflow用户

发布于 2016-01-04 03:29:57

我知道这是一个老问题,但您有没有尝试过将它包装在{% raw %} {% endraw %}中?

试一试

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

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

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28282272

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档