防止octopress中的类别下降

时间:2014-12-29 06:43:42

标签: ruby jekyll octopress

我已经使用Octopress一段时间了,但是我还没有长时间推动上游变化。我刚刚建立了一个新的本地分支,并且合并非常轻松,但我遇到的一个问题是我的类别名称现在到处都是低级的。这没有用,这对我来说是一个问题,因为我根据每个帖子的类别对链接进行不同着色,使用以下内容:

{% capture category_class %}                                                     
{% for category in post.categories %}                                            
{{ category | prepend:'category-' }}                                             
{% endfor %}                                                                     
{% endcapture %}

# ...

<div class="{{ category_class | strip_newlines }}">

这里,category_class最终类似于&#34;类别编码&#34;即使类别在帖子源中指定为Coding,也有大写字母C.现在,我可以只是改变我的SASS以使用类的小写类别名称...但是我的类别名称会其他地方仍然是小写的,我不喜欢它们。

所以我想在Octopress中删除这个类别名称的下划线。但我不能为我的生活找出它实际发生的地方。 (对我不熟悉Ruby可能没什么帮助。)

1 个答案:

答案 0 :(得分:1)

Jekyll的downcase电话会产生小写类别:

https://github.com/jekyll/jekyll/blob/v2.5.3/lib/jekyll/post.rb#L83

def populate_categories
  categories_from_data = 
     Utils.pluralized_array_from_hash(data, 'category', 'categories')

  self.categories = (Array(categories) + 
                     categories_from_data).map {|c| c.to_s.downcase}.flatten.uniq
end

似乎没有任何其他方式来访问帖子中的类别数组。您需要自己修改或猴子修补Jekyll,或者只是使用Javascript或CSS(text-transform)重新大写。

似乎Octopress也支持插件,如果你想做一些自定义的Ruby黑客攻击,这可能是另一个解决方案。即创建一个大写的类别插件。