Jekyll包括转义结束标签吗?

2022-03-16 00:00:00 escaping include html jekyll

所以我有一个具有以下基本结构的站点:

<body>
  <section>
    <p>Text of Section 1</p>
  </section>
  <section>
    <p>Text of Section 2</p>
  </section>
...
</body>

我希望使用Jekyll从markdown文件生成整个站点,但由于markdown不知道任何类似部分的内容,我的想法是对普通文本使用markdown,然后包括另一个文件中缺少的html,如下所示:

---
layout: default.html
---

Text of Section 1.

{% include sectionbreak.html %}

Text of Section 2.

为此,sectionbreak.html必须包含类似

的内容
</section>
<section>

但是,jekyll似乎会自动转义包含文件开头的任何结束html标记,结果是一个更像这样的网站,将越来越多的部分堆叠在彼此内部:

<body>
  <section>
    <p>Text of Section 1</p>
  <p>&lt;/section&gt;</p>
  <section>
    <p>Text of Section 2</p>
 ...
</body>

有没有人知道如何禁用此行为,或者如何生成网站?


解决方案

这是不是每个页面都有的东西?还是只上了专业头版?我不明白你为什么要创建这样的日常帖子,但我已经为我的首页这样做了,我的首页上有这样的东西:

|-...
|- _landing
 |- intro.md
 |- blog.md
 |- projects.md
|- index.html

在我的index.hml(我的主页)中,我拉入了所有按frontmatter.index排序的_landing集合。它允许您对主页进行重新排序和添加部分,其中landing/blog.md仅包含最新的5-10个条目,以及指向pages/archive.html的链接,pages/archive.html包含完整的分页帖子列表。

再说一次,我不会建议您站点上的每个页面都这样做,但对于我数量有限的专业页面来说,它工作得很好。类似于:

  • 具有多个摘要部分链接到整页的索引/登录页
  • 包含多个联系人部分的联系人页面

编辑

这个万福玛利亚怎么样,如果不通过Jekyll源,我根本不知道它是否有效,但是:

{% assign sections = page.content | split:"<!-- SPLIT -->" %}
{% for section in sections %}
<section>
  {{ section }}
</section>
<banner>
</banner>
{% endfor %}

快速Google显示,这可能没有我想象的那么疯狂:https://gist.github.com/Phlow/04f635e4d1fc928b1157

相关文章