由于我已将Jekyl更新为0.12.0
,因此我的网站不再编译。我到处都有这样的代码,循环遍历帖子并过滤失败的类别
<ul>
{% for post in site.posts reversed %}
{% if post.category[0] == "about" %}
<li>
<a href="{{base_path}}{{post.url}}">{{ post.title }}</a>
</li>
{% endif %}
{% endfor %}
</ul>
这是我收到的错误消息:
Liquid Exception: undefined method `gsub' for ["about"]:Array in 2012-09-20-about.md
如果我删除Jekyll 0.12.0
,那么一切都会再次运作。
是否有过激烈的变化?
答案 0 :(得分:1)
我认为你必须有一些没有定义任何类别的帖子?
我相信Jekyll 0.12.0使错误的标准更高。因此,如果帖子没有类别,则Ruby命令post.category[0] == about
不会抛出FALSE
,它会抛出NA
(或类似的东西)。之前,Jekyll会忽略这一点(大概将其视为FALSE
),这不是最好的行为。
我的猜测是你应该重写命令更明确,即如果category [0]不为空并且值为“about”。考虑在命令之前添加额外的if
语句:
{% if defined?(post.category[0]) %}
要检查您是否先进行无效比较。
答案 1 :(得分:0)
{% if post.category contains "about" %}
有效吗?