我应该如何将分配的变量传递给包含的Jekyll文件?

时间:2017-05-12 09:55:57

标签: html jekyll liquid

我使用github页面来托管一个jekyll网站。为了快速切换在线基本URL和语言环境基本URL之间,我在默认布局文件的开头有一个变量:

<!--{% assign root = site.github.url %}-->
{% assign root = "." %}

但是,如果我尝试在包含的文件中使用该变量,则它不起作用。我知道它应该被称为{{ include.root }},到目前为止我尝试了几种变体,但都没有效果:

  {% include rail.html root =  root %}
  {% include rail.html root =  page.root %}
  {% include rail.html root =  {{ root }} %}

知道我应该做什么吗?

请注意,我使用default.html文件作为布局从索引文件中调用include。我可以在该索引文件中正确打印root变量。

另外,如何在不必将所有参数传递给我所包含的文件的情况下共享父数据上下文?

编辑:看起来我错了。我试图将内联帖子放入include中,数据上下文完全共享。不知道为什么它只能在包含

中使用我的根变量

1 个答案:

答案 0 :(得分:3)

Include标记具有以下语法:$ git remote add -f reposA git://git.git $ git merge -s ours --no-commit reposA/master $ git read-tree --prefix=/ -u reposA/master:sub_dict $ git commit -m "commits"

  • {% include file.ext param='value' param2='value' %}不起作用,因为{% include rail.html root = page.root %}未定义为root的属性。

  • page语法错误,您必须从源代码中删除整行,否则会导致{% include rail.html root = {{ root }} %}失败。

    < / LI>
  • 第一个是正确的:build 然后在{% include rail.html root = root %}中:_includes/rail.html应该打印{{ include.root }}值,如果不起作用,则错误位于其他位置,而不是包含。

旁注

如果您在include之前定义变量,那么您可以直接使用它而不使用root

include.

{% assign root = "." %} {% include rail.html %}

_includes/rail.html