我正在尝试更改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>
to
<a class="post-link" href="{{ post.url | prepend: site.baseurl }}">{{ post.title | downcase | capitalize}}</a>
但是,这使得在需要时在YAML字段中添加自定义标题来覆盖资本化规则。例如,不可能使不是标题的第一个单词的专有名词。是否可以更改如何从文件名生成默认标题,同时仍允许在yaml fron Matter中指定标题时覆盖它?
您必须使用覆盖jekyll如何生成帖子标题的插件。
这可以通过覆盖Jekyll Utils模块来完成。
创建 _PLUGINS/titleize_overrrrid.rb 包含文件:
module Jekyll
module Utils
def titleize_slug(slug)
slug.split(/[_-]/).join(' ').capitalize
end
end
end
要更改此行为,您必须使用自定义插件。保罗·赫伦(Paul Herron)在他的博客上展示了一个榜样,他覆盖了titleized_slug
方法。
class Jekyll::Post
def titleized_slug
self.slug.split(/[_-]/).join(' ').capitalize
end
end
n.b。该帖子是从2014年开始的,因此上述代码可能需要进行调整以与Jekyll V3合作。