Jekyll “评估液体”;如果;基于液体过滤器值的报表

Jekyll “评估液体”;如果;基于液体过滤器值的报表,jekyll,liquid,Jekyll,Liquid,我有一个定制的液体过滤器,我在Jekyll网站上使用 {{ page.url | git_modified }} 它从git日志()生成修改日期 通常,我可能会添加额外的过滤器来将其转换为字符串或XML模式,具体取决于上下文,例如{{page.url | git_modified | date_to_string}}。除非出于某种原因,我的git_modifiedfilter无法为某个帖子返回时间对象,否则一切都很好。在这种情况下,我试图编写一个适当的失败条件,但无法完全理解这一点 我想用一个

我有一个定制的液体过滤器,我在Jekyll网站上使用

{{ page.url | git_modified }}
它从git日志()生成修改日期

通常,我可能会添加额外的过滤器来将其转换为字符串或XML模式,具体取决于上下文,例如
{{page.url | git_modified | date_to_string}}
。除非出于某种原因,我的
git_modified
filter无法为某个帖子返回时间对象,否则一切都很好。在这种情况下,我试图编写一个适当的失败条件,但无法完全理解这一点

我想用一个liquid
if
语句包装我的调用,以检查变量是否首先定义:

{% if defined?( {{ page.url | git_modified }} %}
但是我似乎不能在液体块选项(
{%
%}
)中使用液体标记(
{{{
),我想我可以用液体
捕获
来解决这个问题:

{% capture page_modified %}{{ page.url | git_modified }}{% endcapture %} 
{% if defined?(page_modified) %} 
{{ page.url | git_modified | date_to_string }}
{% endif %}
但是所述变量似乎不适用于
if
语句。有什么建议吗?

试着这样做:

{% capture page_modified %}
    {{ page.url }}
{% endcapture %}

{% if page_modified %} 
    {{ page.url }}
{% endif %}
如果没有定义
page\u modified
,那么它的值无论如何都是
nil
,所以只要像在纯Ruby中一样使用
If
构造就可以了。我在这里用jekyll 1.0.0.beta2-
jekyll new test
,然后用上面的代码创建了一个文件,它就工作了。

试着这样做:

{% capture page_modified %}
    {{ page.url }}
{% endcapture %}

{% if page_modified %} 
    {{ page.url }}
{% endif %}
如果未定义
page\u modified
,那么它的值无论如何都将是
nil
,因此只需像在纯Ruby中一样使用
If
构造即可。我在这里使用jekyll 1.0.0.beta2-
jekyll new test
,然后使用上述代码创建了一个文件,并且成功了。:)