Bil*_*net 1 html liquid jekyll
我使用 github pages 来托管一个 jekyll 网站。为了在在线基本 URL 和语言环境基本 URL 之间快速切换,我在默认布局文件的开头有一个变量:
<!--{% assign root = site.github.url %}-->
{% assign root = "." %}
Run Code Online (Sandbox Code Playgroud)
但是,如果我尝试在包含的文件中使用该变量,则它不起作用。我知道它应该被称为 as{{ include.root }}并且到目前为止我尝试了几种变体,但没有一个奏效:
{% include rail.html root = root %}
{% include rail.html root = page.root %}
{% include rail.html root = {{ root }} %}
Run Code Online (Sandbox Code Playgroud)
知道我应该做什么吗?
请注意,我正在使用该default.html文件作为布局从索引文件中调用包含。我可以root在该索引文件中正确打印变量。
另外,如何共享父数据上下文而不必将所有参数传递给我包含的文件?
编辑:看起来我有什么问题。我尝试将内嵌帖子放入包含中,并且数据上下文完全共享。不知道为什么它只在包含中不适用于我的根变量
包含标记具有以下语法: {% include file.ext param='value' param2='value' %}
{% include rail.html root = page.root %}不起作用,因为root没有定义为 的属性page。
{% include rail.html root = {{ root }} %}有错误的语法,你必须从源代码中删除整行,否则会build失败。
第一个是正确的:{% include rail.html root = root %}
然后在_includes/rail.html:{{ include.root }}应该打印root值,如果这不起作用,错误在另一个地方,而不是在包含中。
如果在包含之前定义变量,则可以直接使用它而无需include.:
{% assign root = "." %}
{% include rail.html %}
Run Code Online (Sandbox Code Playgroud)
在_includes/rail.html:
Hello {{root}}
Run Code Online (Sandbox Code Playgroud)