【问题标题】:Preventing category downcasing in octopress防止octopress中的类别缩小
【发布时间】:2014-12-29 06:43:41
【问题描述】:

我使用 Octopress 已经有一段时间了,但我已经很久没有对上游进行更改了。我刚刚创建了一个新的本地分支来执行此操作,合并过程非常轻松,但我遇到的一个问题是我的类别名称现在到处都小写了。这不会发生,这对我来说是个问题,因为我根据每个帖子的类别对链接进行不同的着色,使用以下内容:

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

# ...

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

在这里,category_class 最终类似于“类别编码”,即使该类别在帖子源中指定为 Coding,大写 C。现在,我可以更改我的 SASS为类使用小写的类别名称......但是我的类别名称在其他地方仍然是小写的,我不希望它们是。

所以我想删除整个 Octopress 中类别名称的这种小写形式。但我无法终生弄清楚它实际上发生在哪里。 (我不了解 Ruby 可能无济于事。)

【问题讨论】:

标签: ruby jekyll octopress


【解决方案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 黑客攻击,这可能是另一种解决方案。 IE。创建一个大写的类别插件。

【讨论】:

    猜你喜欢
    • 2023-02-10
    • 1970-01-01
    • 2016-11-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-10
    • 1970-01-01
    相关资源
    最近更新 更多