在YAML Front Matter变量中使用Liquid标签

22

在YAML头信息变量中,是否可以使用Liquid标签?

例如,如果test.html包含以下内容:

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

那么 Jekyll 将会生成以下HTML:

Date: {% date: '%D' %}

而不是像这样:

Date: 03/13/14

基本上,我希望在YAML前置数据变量中的Liquid标签得到处理。


你能解决这个问题吗?我也卡在这里了。 - Chris Hough
1
不,我必须重新构建我的页面以避免在Front Matter变量中使用Liquid标签。在我看来,这种限制是无法规避的。 - gvas
1个回答

3

看起来你想要将格式化的日期存储在变量中,这样每次使用时就不需要重新格式化日期。

与其在前置元素中过滤日期,不如在前置元素下方添加一个Liquid capture语句。这将允许你将格式化后的日期分配给一个变量,以便在表达式中使用。

---
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 }} 输出:2014年9月17日

更多关于格式化日期本身的信息。


这个能覆盖现有的变量吗?我想让我的 title 变成 Updated list as of $YEAR,并且在所有 title 的位置都使用它。 - William Entriken

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接