Jekyll中如何修改文件名转换为博客post标题的大小写规则?
In Jekyll, how to change the capitalization rules for converting a file name into a blog post title?
我正在尝试在 Jekyll 中更改我的博客文章标题的大写,而不必每次都在 yaml 标题字段中键入它。默认情况下,jekyll 将文件 2016-02-22-my-blog-title
转换为标题 "My Blog Title",我希望它是 "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 matter 中指定标题时仍然允许覆盖它?
要更改此行为,您必须使用自定义插件。 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。 post 是 2014 年的,所以上面的一些代码可能需要调整才能与 Jekyll v3 一起使用。
您必须使用一个插件来覆盖 Jekyll 生成帖子标题的方式。
这可以通过覆盖 Jekyll Utils 模块来完成。
创建一个 _plugins/titleize_overrride.rb 文件包含:
module Jekyll
module Utils
def titleize_slug(slug)
slug.split(/[_-]/).join(' ').capitalize
end
end
end
我正在尝试在 Jekyll 中更改我的博客文章标题的大写,而不必每次都在 yaml 标题字段中键入它。默认情况下,jekyll 将文件 2016-02-22-my-blog-title
转换为标题 "My Blog Title",我希望它是 "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 matter 中指定标题时仍然允许覆盖它?
要更改此行为,您必须使用自定义插件。 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。 post 是 2014 年的,所以上面的一些代码可能需要调整才能与 Jekyll v3 一起使用。
您必须使用一个插件来覆盖 Jekyll 生成帖子标题的方式。
这可以通过覆盖 Jekyll Utils 模块来完成。
创建一个 _plugins/titleize_overrride.rb 文件包含:
module Jekyll
module Utils
def titleize_slug(slug)
slug.split(/[_-]/).join(' ').capitalize
end
end
end