在Jekyll中,如何更改将文件名转换为博客文章标题的大小写规则?

时间:2016-06-22 18:29:09

标签: jekyll

我正在尝试更改Jekyll中博客帖子标题的大小写,而不必每次都在yaml标题字段中输入它。默认情况下,jekyll会将文件2016-02-22-my-blog-title转换为标题"我的博客标题",我希望它是"我的博客标题"。

我注意到我可以通过修改_layouts/post.html和更改行

来实现此行为
<a class="post-link" href="{{ post.url | prepend: site.baseurl }}">{{ post.title }}</a>

<a class="post-link" href="{{ post.url | prepend: site.baseurl }}">{{ post.title | downcase | capitalize}}</a>

但是,这使得无法通过在需要时向yaml字段添加自定义标题来覆盖大小写规则。例如,不可能将不是标题第一个单词的专有名词大写。是否可以更改从文件名生成默认标题的方式,同时仍然允许在yaml fron问题中指定标题时覆盖它?

2 个答案:

答案 0 :(得分:2)

你必须使用一个插件来覆盖Jekyll如何为帖子生成标题。

这可以通过覆盖Jekyll Utils模块来完成。

创建 _plugins / titleize_overrride.rb 文件,其中包含:

module Jekyll
  module Utils
    def titleize_slug(slug)
      slug.split(/[_-]/).join(' ').capitalize
    end
  end
end

答案 1 :(得分:1)

要更改此行为,您必须使用自定义插件。 Paul Herron shows an example on his blog他覆盖了titleized_slug方法。

class Jekyll::Post

  def titleized_slug
    self.slug.split(/[_-]/).join(' ').capitalize
  end
end

N.B。帖子是从2014年开始的,因此上面的一些代码可能需要调整才能与Jekyll v3一起使用。