在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>

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合作。

最新更新