Jekyll:在包含中使用 Front Matter

Jekyll: Using Front Matter in Includes

是否可以在 include 中使用 front matter。我有一个名为 image.html 的包含,看起来像这样。

image.html

{% if layout == 'page' %}
  <img src="{{ site.url }}/public/img/{{ include.url }}" class="page">
{% else %}
  <img src="{{ site.url }}/public/img/{{ include.url }}">
{% endif %}

还有一个 about.md 文件,如下所示:

about.md

---
layout: page
---

{% include image.html url="img.jpg" %}

但由于某种原因,它无法识别 if layout 语句。知道如何让它工作吗?

感谢任何帮助。提前致谢!

更新

完整问题如下:

如果页面中包含 image.html include,则 include 需要具有完全不同的布局,具有两个封装元素(containersm-col-12)。希望下面的内容比我原来的问题更有意义。

image.html

{% if include.size == 'full' and include.type != 'gif' %}
<section class="image full-width">
  <img src="{{ site.url }}/public/img/{{ include.name }}.{{ include.type }}">
</section>
{% elsif layout == 'page' and include.type != 'gif' %}
<div class="container">
  <div class="sm-col-12">
    <section class="image">
      <img src="{{ site.url }}/public/img/{{ include.name }}.{{ include.type }}">
    </section>
  </div>
</div>
{% elsif include.type != 'gif' %}
...
{% else %}
...
{% endif %}

about.md

---
layout: page
---

{% include image.html name="zifferblatt" type="jpg" %}

从包含文件中,您仍然可以使用 page 变量。

在您的情况下,您可以致电 page.layout :

<img src="{{ site.url }}/public/img/{{ include.url }}" {% if page.layout == 'page' %}class="page"{% endif %}>