Jekyll Liquid动态地包含文件

问题描述 投票:5回答:2

目前我正在用Jekyll做一个新的网站,但遇到了一些问题。我有一个布局页面,我可以用每个页面的变量来定义背景图片。

布局。

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

Page:

---
header_bg: storm
---

但现在我想根据变量值动态地包含一些文件。好吧,我可以用一些if或case语句来实现,但实际上我想做一些像这样的事情

{% include page.header_bg %}

但这是行不通的,因为Jekyll正在寻找一个文件,这个文件叫做 "page.header_bg",而不是这个值。

有人能帮帮我吗?

include jekyll liquid
2个回答
11
投票

根据"... 到文档你需要把变量名放在附加的 {{ }}.

引自链接。

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

你想嵌入的文件名可以是字面意思(如上例),也可以使用一个变量,使用类似液体的变量语法,如 {% include {{my_variable}} %}.


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 声明:

© www.soinside.com 2019 - 2024. All rights reserved.