2016-06-22 7 views
1

私は、毎回yamlのタイトルフィールドに入力する必要なしに、私のブログ投稿のタイトルの大文字をJekyllで変更しようとしています。デフォルトでは、jekyllはファイル2016-02-22-my-blog-titleを「My Blog Title」というタイトルに変換し、「My blog title」にします。Jekyllでは、ファイル名をブログのポストタイトルに変換するための大文字の規則を変更するにはどうすればよいですか?

私はラインを_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の問題で指定されているときにこれをオーバーライドすることはできますか?

答えて

2

Jekyllが投稿のタイトルを生成する方法を無効にするプラグインを使用する必要があります。

これは、Jekyll Utilsモジュールを無効にすることによって実行できます。

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

ここでは、jekyllが_plugins内の* .rbファイルをすべて取り込むので、ここで見つかった関数 "titleize_slug"を上書きします:https:// github。 com/jekyll/jekyll/blob/master/lib/jekyll/utils.rb – cwRichardKim

1

この動作を変更するには、カスタムプラグインを使用する必要があります。 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.この投稿は2014年のものですから、上記のコードのいくつかは、Jekyll v3で動作するように微調整する必要があります。

+0

このメソッドは、ジキルUtilsのモジュールに今ある:

が含まファイルを_plugins/titleize_overrride.rbを作成します。 –

関連する問題