我正在尝试更改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问题中指定标题时覆盖它?
答案 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一起使用。