В 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, возможно, потребуется немного изменить приведенный выше код.

Другие вопросы по тегам