Jekyll / Liquid动态包含文件

时间:2014-05-08 12:02:57

标签: include jekyll liquid

目前我正在与Jekyll合作开发一个新网站并在那里遇到一些问题。我有一个布局页面,我可以用每个页面的变量定义背景图像。

布局:

class="background background-{{ page.header_bg }}"

页:

---
header_bg: storm
---

但是现在我想动态地包含一些文件,具体取决于变量值。好吧,我可以用一些if或case语句来做,但实际上我想做一些像

这样的事情
{% include page.header_bg %}

但这不起作用,因为Jekyll正在寻找一个名为" page.header_bg"而不是价值。

有人可以帮我吗?

2 个答案:

答案 0 :(得分:11)

根据to the docs,您需要将变量名称放在其他{{ }}

从链接引用:

  

ProTip™:使用变量作为文件名

     

您要嵌入的文件的名称可以是文字的(如   上面的示例),或者您可以使用变量,使用类似液体的变量   {% include {{my_variable}} %}中的语法。

答案 1 :(得分:0)

我知道这个问题已有6岁了,但是对于后代来说,这是一个明确的答案。您需要先assign page.header_bg到一个变量,然后在include语句中使用该变量。

{% assign headerBg = page.header_bg %}

{% include headerBg %}

如果尝试直接在Liquid Exception: Invalid syntax for include tag语句中使用page.header_bg,则会收到错误include