升级到0.12.0时出现jekyll编译错误
由于我已将Jekyl更新为升级到0.12.0时出现jekyll编译错误,jekyll,Jekyll,由于我已将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&
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>
如果我删除了jekyll0.12.0
,那么一切都会恢复正常
有什么东西发生了剧烈的变化吗?嗯,我不能在这里重现这个错误。如果你把它改成
{% if post.category contains "about" %}
它能工作吗?嗯,我不能在这里重现这个错误。如果你把它改成
{% if post.category contains "about" %}
它有效吗?我想你一定有一些帖子没有定义任何类别 我相信Jekyll0.12.0提高了错误捕捉的标准。因此,如果一篇文章没有类别,Ruby命令
post.category[0]==about
不会抛出FALSE
,而是抛出NA
(或者类似的东西)。以前,Jekyll会忽略这一点(可能会将其视为FALSE
),这并不是最好的行为
我的猜测是,您应该将命令重写为更明确的命令,即,如果类别[0]不是空的,并且具有值“about”。只需在命令之前添加额外的<>代码> 语句:
{% if defined?(post.category[0]) %}
首先检查您没有进行无效的比较 我想你一定有一些帖子没有定义任何类别 我相信Jekyll0.12.0提高了错误捕捉的标准。因此,如果一篇文章没有类别,Ruby命令
post.category[0]==about
不会抛出FALSE
,而是抛出NA
(或者类似的东西)。以前,Jekyll会忽略这一点(可能会将其视为FALSE
),这并不是最好的行为
我的猜测是,您应该将命令重写为更明确的命令,即,如果类别[0]不是空的,并且具有值“about”。只需在命令之前添加额外的<>代码> 语句:
{% if defined?(post.category[0]) %}
首先检查您没有进行无效的比较 我不知道,谢谢你提供的信息:)。至于它为什么停止工作,我仍然不知道,它现在又开始滚动了…实际上你是对的。这是因为我的一些帖子没有分类。很酷,很高兴听到它起作用了。你能用上面的技巧让它在没有类别的情况下成功运行吗?如果我让Jekyll保持在0.11.2,是:)。否则不行,我将不得不改变网站的架构,并将没有分类的帖子移至页面。该网站托管在Github上,现在运行的是Jekyll 0.12.0。我不知道,谢谢你提供的信息:)。至于它为什么停止工作,我仍然不知道,它现在又开始滚动了…实际上你是对的。这是因为我的一些帖子没有分类。很酷,很高兴听到它起作用了。你能用上面的技巧让它在没有类别的情况下成功运行吗?如果我让Jekyll保持在0.11.2,是:)。否则不行,我将不得不改变网站的架构,并将没有分类的帖子移至页面。该网站托管在Github上,现在运行的是Jekyll0.12.0