在默认布局中包含标签在使用默认布局的其他布局中无效

时间:2018-12-27 14:18:27

标签: include jekyll liquid

我有一个使用collections的{​​{1}}的Jekyll网站。它托管在Gitlab上。我在collection目录中有一个名为relBase.html的文件,其代码如下:

_includes

我在{% comment %} Credits: Ketrel - https://gist.github.com/Ketrel/1f36fca6b4148f7263b3ee8fdb0923e7 {% endcomment %} {% assign relBase = "" %} {% assign tempDepth = page.url | split: "/" | size | minus: 1 %} {% for i in (1..tempDepth) %} {% assign relBase = relBase | append: "../" %} {% endfor %} {% if relBase == "" %} {% assign relBase = "./" %} {% endif %} 目录中有2个文件:_layoutsdefault.html

collection.html使用布局collection.html

我在default.html中将relBase.html中的default.html包括在{% include relBase.html %}中。

我在<link>中有<script>default.html标记,它们链接到该站点的CSS和JS。

我分别在{{ relBase }}href标签的src<link>属性中使用了<script>变量,它们工作正常。

_config.yml中,我设置了:

collections:
  collection:
    output: true
    permalink: /collection/:title/

defaults:
  -
    scope:
      path: ""
      type: "collection"
    values:
      layout: "collection"

因此,存储在_collection目录中且​​扩展名为.md且具有前题的所有文件都呈现到网页中,并使用collection.html布局。

现在,我想在{{ relBase }}中使用collection.html,但并没有得到期望的结果,而是表现得好像没有在其中写任何{{ relBase }}一样。

如果我在relBase.html中包含collection.html,则{{ relBase }}将被识别并按预期工作。

我什至尝试将relBase.html重命名为relBase.liquid,并在default.html中对include标签进行了适当的更改。

那么对包含文件的范围有某种限制吗?有没有办法防止重复使用include标签?

0 个答案:

没有答案