В Jekyll, как изменить правила использования заглавных букв для преобразования имени файла в заголовок записи блога?
Я пытаюсь изменить заглавные буквы заголовков своих постов в 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?
2 ответа
Вы должны использовать плагин, который переопределяет, как Jekyll генерирует заголовок для постов.
Это можно сделать, переопределив модуль Jekyll Utils.
Создайте файл _plugins/titleize_overrride.rb, содержащий:
module Jekyll
module Utils
def titleize_slug(slug)
slug.split(/[_-]/).join(' ').capitalize
end
end
end
Чтобы изменить это поведение, вам придется использовать собственный плагин. Пол Херрон показывает пример в своем блоге, где он переопределяет titleized_slug
метод.
class Jekyll::Post
def titleized_slug
self.slug.split(/[_-]/).join(' ').capitalize
end
end
NB Пост написан в 2014 году, поэтому для работы с Jekyll v3, возможно, потребуется немного изменить приведенный выше код.