Chr*_*son 0 templates liquid jekyll
我有一个由 Jekyll 驱动的小型站点,它使用默认的 Liquid 模板引擎。我正在将它转换为使用Gekyll,它使用page.dateGit 时间戳覆盖标准模板变量,因此我需要使用page.original_date在前面声明的值覆盖日期,仅适用于较旧的帖子。
在我的模板中,我希望能够做到这一点:
<span class="date">{% page.original_date or page.date | date: "%B %-d, %Y" }}</span>
Run Code Online (Sandbox Code Playgroud)
这似乎不起作用,所以我这样做:
<span class="date">
{% if page.original_date %}
{{ page.original_date | date: "%B %-d, %Y" }}
{% else %}
{{ page.date | date: "%B %-d, %Y" }}
{% endif %}
</span>
Run Code Online (Sandbox Code Playgroud)
这没什么大不了的,但很麻烦,可以寻找更好的解决方案。Liquid 中的逻辑是否允许像我第一次尝试那样使用后备变量?
在寻找三元运算符方面,我认为这是您可以使用的最简单的语法:
{% assign original_date = page.original_date %}
{% unless original_date %}{% assign original_date = page.date %}{% endunless %}
{% unless original_date %}{% assign original_date = date: "%B %-d, %Y" %}{% endunless %}
Run Code Online (Sandbox Code Playgroud)
不是很可读或简洁,但至少它有效!