在 YAML Front Matter 变量中使用液体标签

Posted

技术标签:

【中文标题】在 YAML Front Matter 变量中使用液体标签【英文标题】:Using liquid tags in YAML Front Matter variables 【发布时间】:2014-04-18 23:42:36 【问题描述】:

是否可以在 YAML Front Matter 变量中使用 Liquid 标签?

例如,如果 test.html 包含:

---
variable: "Date: % date: '%D' %"
---
 page.variable 

然后 Jekyll 将生成以下 HTML:

Date: % date: '%D' %

而不是类似的东西:

Date: 03/13/14

基本上我希望处理 YAML Front Matter 变量中的 Liquid 标签。

【问题讨论】:

你能解决这个问题吗?我也卡在这里了。 不,我必须重组我的页面以避免 Front Matter 变量中出现流动标签。在我看来,这个限制无法解决。 Include jekyll / liquid template data in a YAML variable? 的可能重复项 【参考方案1】:

听起来您正在尝试将格式化的日期存储在变量中,因此您无需在每次使用时重新格式化日期。

您可以在前面的内容下方添加一个 Liquid 捕获语句,而不是过滤前面的日期。这将允许您将格式化的日期分配给一个变量,以便您可以在表达式中使用它。

---
title: Some sweet title
layout: default
date: 2014-9-17 # Could come from post's filename, but I put it here explicitly
---
% capture formatted_date % page.date | date: "%-d %B %Y" % endcapture %

一旦有了新的格式化日期变量,您就可以在任何地方将其用作表达式:

formatted_date 输出:17 September 2014

More on formatting the date itself.

【讨论】:

这是否适用于覆盖现有变量?我希望我的title 成为Updated list as of $YEAR,并让它进入title 会去的所有地方。

以上是关于在 YAML Front Matter 变量中使用液体标签的主要内容,如果未能解决你的问题,请参考以下文章

Jekyll 教程——Front Matter & YAML

Jekyll - Front Matter 默认不工作

无法访问自定义 Front Matter 变量

在 Front Matter 中的 Jekyll if 语句

hexo的front-matter和收起文章内容

Gulp Front Matter + Markdown 通过 Nunjucks