2012-04-28 11 views
6

私のジキルのブログでは、いくつかの投稿にはタイトルがないようにしたいと思います。投稿がタイトルを必要としないようにJekyllコードベースを変更するにはどうすればよいですか?ジキルのタイトルなしの投稿

+0

ソースをダウンロードしてみて、記事の内容を調べてみましたか? – huon

+1

私はRubyをほとんど知りません! –

+0

それは大丈夫です、私はあなたが欲しいものをやるために十分に拾うことができると確信しています(私はRubyもあまり知らない)。詳細については、ファイル名が 'year-month-day-title'の形式である必要はないということを意味しますか?それとも、あなたは郵便の前の問題で 'タイトル:...'が必要ないのですか? – huon

答えて

8

タイトルを削除するためにjekyllコードベースを変更する必要はありません。これは、適切な液体フィルターとタグを用いて異なるレイアウトを使用して行うことができます。

個別の投稿ページについては、{{ page.title }}液体タグを持たない新しいレイアウトファイル(例:「_layouts/no-title-post.html」)を作成するだけです。 _postsソースファイルで、YAMLのフロントマントを設定して呼び出します。 YAML前付に必要とされていません:「タイトル」ことをここ

--- 
layout: no-title-post 
--- 

注:たとえば。 jekyllがそれを必要とする場合、その値はファイル名から自動的に作成されます。たとえば、 "_posts/2012-04-29-a-new-post.md"のタイトル変数は "新しい投稿"に自動的に設定されます。あなたのテンプレートがタイトルタグを呼び出さない場合、それは重要ではありません。正面に「タイトル:」を含めることができ、それは単に表示されません。

リスティング/インデックスページにタイトルなしのページを表示することもできます。投稿のレイアウトを確認して、タイトルを表示するかどうかを決定します。その場合

{% for post in paginator.posts %} 
    {% if post.layout != 'no-title-post' %} 
    <h1><a href="{{ post.url }}">{{ post.title }}</a></h1> 
    {% endif %} 

    <div class="postContent"> 
    {{ post.content }} 
    </div> 
{% endfor %} 

、ページ自体へのリンク:たとえば、すべてのページに「no-タイトルポスト」レイアウトを持って除くものにタイトルを表示するために、あなたはこのような何かをするだろうまた除去される。ページのアドレス指定が必要な場合は、リンクを別の場所に追加する必要があります。

1

私は、私はこれは本当に簡単な解決策につまずいた、同じ疑問を持っていた:

{% if post.title %} 
    <h1><a href="{{ post.url }}">{{ post.title }}</a></h1> 
{% endif %} 

そしてポストファイル自体にあなたが空title変数のままになります

--- 
layout: post 
title:  
--- 

この一方、タイトルが空の場合、h1は印刷されません。このメソッドは、ほとんどの場合タイトルを持たない引用型などのポストタイプに特に便利です。

defaults: 
    - 
    scope: 
     type: "posts" 
    values: 
     layout: "post" 
     title: "" 

は、その後、あなたが空の文字列に対してタイトルを比較することができます:

2

edemundoのソリューションは、3

は、私はデフォルトとして空のタイトルを使っジキルとすべてのケースではもはや機能しません。たとえば、レイアウトでは次のようになります。

{% if post.title == "" %} 
    {{ post.content | strip_html | truncatewords:5 }} 
{% else %} 
    {{ post.title }} 
{% endif %} 

自動タイトル生成が好きな場合は、フロントマターとして使用できます:

--- 
title: "" 
--- 
+0

これはジキル/ポールインストールで非常にうまく機能しました。 – gvoysey

関連する問題