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

在Jekyll中,如何更改将文件名转换为博客文章标题的大小写规则?,jekyll,Jekyll,我试图在Jekyll中更改我博客文章标题的大小写,而不必每次都在yaml标题字段中键入。默认情况下,jekyll将文件2016-02-22-my-blog-title转换为标题“我的博客标题”,我希望它是“我的博客标题” 我注意到,我可以通过修改\u layouts/post.html和更改行来实现此行为 <a class="post-link" href="{{ post.url | prepend: site.baseurl }}">{{ post.title }}</a&

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

我注意到,我可以通过修改
\u layouts/post.html
和更改行来实现此行为

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



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

要更改此行为,必须使用自定义插件。他覆盖了
标题化的\u slug
方法

class Jekyll::Post

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

注意:这篇文章是从2014年开始的,因此上面的一些代码可能需要调整才能与Jekyll v3一起使用。

您必须使用一个插件来覆盖Jekyll如何为文章生成标题

这可以通过重写Jekyll-Utils模块来实现

创建包含以下内容的plugins/titleize\u override.rb文件:

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

此方法现在位于Jekyll Utils模块中。快速注意:您必须重新启动服务器才能启动此方法。其工作方式是jekyll获取_插件中的所有*.rb文件,因此这将覆盖此处找到的函数“titleize_slug”:
module Jekyll
  module Utils
    def titleize_slug(slug)
      slug.split(/[_-]/).join(' ').capitalize
    end
  end
end