【发布时间】:2014-05-17 19:06:11
【问题描述】:
我想在我的 Jekyll 网站上进行按重量排序的导航。我正在使用this plugin,但我想在导航中只显示有重量的页面,而不是在列表末尾显示没有重量的页面。
所以我像这样更改了插件:
module Jekyll
class WeightedPagesGenerator < Generator
safe true
def generate(site)
site.pages.each do |page|
if page.data["weight"] != nil
site.config['weighted_pages'] = site.pages.sort_by { |a|
a.data['weight'] }
end
end
end
end
end
但我收到一个错误:正在生成... /_plugins/sorted_navigation.rb:10:in `sort_by': NilClass 与 2 的比较失败 (ArgumentError)。
知道如何进行这项工作吗?
【问题讨论】:
-
在你的方法中试试这个,site.config['weighted_pages'] = site.pages.sort_by { |a| a.data['weight'].to_i }
-
你可以替换这个块 site.pages.each 做 |page|如果 page.data["weight"] != nil site.config['weighted_pages'] = site.pages.sort_by { |a| a.data['weight'] } end end
-
with site.config['weighted_pages'] = site.pages.sort_by { |a| a.data['weight'].to_i }
-
@AlokAnand,非常感谢。现在,当我生成网站时,它实际上并没有给出任何错误,但我仍然在导航中获得没有权重的页面。所以我想现在 if 语句不起作用。
标签: ruby jekyll jekyll-extensions