2014-01-06 5 views
13

私は何とかしがみつき、正しい方法を見つけられません。ジキル&リキッド:投稿数のある出力カテゴリリスト?

各カテゴリの投稿の数を含むカテゴリリストを出力したいとします。

私はここまでだ:https://paste.xinu.at/dOLtod/

を私は本当の数を得ることができたことはありません。私は非常に多くの方法を試してみましたが、例えば、各投稿を調べて、すべてのカテゴリをチェックしました({{category |最初 }}。ここで

は、カウントなしのコードです:

<ul class="dropdown-menu"> 
    {% for category in site.categories %} 
     <li class="camelize_me"> 
      <a href="/tags/{{category | first}}/"> 
       {{category | first }} 
       <span class="badge"> 
       <!-- Post count here --> 
       </span> 
      </a> 
     </li> 
    {% endfor %} 
</ul> 

は誰のアイデアは、これが終わらなければなりませんか?

+2

答えがある場合は、編集としてではなく回答として投稿してください。 – Darkhogg

+0

私の評判のため投稿してから約8時間はできません。ここで私は新しいので、私は誰も持っていません。私は試してみましたが、後で回答として追加します。 ;) – koffeingeladen

答えて

22

私は、各カテゴリの投稿数だけでなく、クリックされた特定のカテゴリの投稿に移動するコードスニペットを作成しました。

<ul class="tag-box inline"> 
{% assign tags_list = site.categories %} 
    {% if tags_list.first[0] == null %} 
    {% for tag in tags_list %} 
     <li><a href="#{{ tag }}">{{ tag | capitalize }} <span>{{ site.tags[tag].size }}</span></a></li> 
    {% endfor %} 
    {% else %} 
    {% for tag in tags_list %} 
     <li><a href="#{{ tag[0] }}">{{ tag[0] | capitalize }} <span>{{ tag[1].size }}</span></a></li> 
    {% endfor %} 
    {% endif %} 
{% assign tags_list = nil %} 
</ul> 

{% for tag in site.categories %} 
    <h2 id="{{ tag[0] }}">{{ tag[0] | capitalize }}</h2> 
    <ul class="post-list"> 
    {% assign pages_list = tag[1] %} 
    {% for post in pages_list %} 
     {% if post.title != null %} 
     {% if group == null or group == post.group %} 
     <li><a href="{{ site.url }}{{ post.url }}">{{ post.title }}<span class="entry-date"><time datetime="{{ post.date | date_to_xmlschema }}" itemprop="datePublished">{{ post.date | date: "%B %d, %Y" }}</time></a></li> 
     {% endif %} 
     {% endif %} 
    {% endfor %} 
    {% assign pages_list = nil %} 
    {% assign group = nil %} 
    </ul> 
{% endfor %} 
+0

カテゴリを並べ替える方法はありますか?私は '{%assign tags_list = site.categories | sort: "title"%} 'しかし、成功しません。 –

+0

は、上記のようにjekyll3でスクリプトを実行しますか? – Sunil

12

解決方法:{{ category | last }}にすべての投稿があるので、{{ category | last | size }}はカウントを表示します。私はIRCの助けを受けました。 :)

+0

それは動作します! Liquid Documentから何の解決策も見つけられませんでした。しかし、私はここにそれを見つける!みんなありがとう! – shen

1

カテゴリを並べ替えるHossainの回答よりも改善が進んでいます。 Jekyllでテスト済み3.3.1:

<h1 class='tag'>Blog Posts Sorted By Category</h1> 
{% assign sorted_categories = site.categories | sort {|left, right| left[0] <=> right[0]} %} 
{% for tag in sorted_categories %} 
    <h2 class='tag' id="{{ tag[0] }}">{{ tag[0] | capitalize }}</h2> 
    <ul class="post-list"> 
    {% assign pages_list = tag[1] %} 
    {% for post in pages_list %} 
     {% if post.title != null %} 
     {% if group == null or group == post.group %} 
     <li><a href="{{ site.url }}{{ post.url }}"> 
      <span class="entry-date"><time datetime="{{ post.date | date_to_xmlschema }}" itemprop="datePublished">{{ post.date | date: "%B %d, %Y" }}</time></span> 
      &bull; 
      {{ post.title }} 
     </a></li> 
     {% endif %} 
     {% endif %} 
    {% endfor %} 
    {% assign pages_list = nil %} 
    {% assign group = nil %} 
    </ul> 
{% endfor %} 
+0

私は大文字小文字の前に大文字小文字を区別する並べ替えを行うことに言及することが重要だと思います。だからあなたが「アップル、バナナ、ゼブラ」のカテゴリを持っているなら、それはあなたが望むものではないかもしれない「アップル、ゼブラ、バナナ」として分類されます。 – kimbaudi

+0

これは本当です。私は自分のタグで大文字と小文字を使い分けています。たとえば、AWS、AI、その他のすべてのタグは大文字にします。うまくいきます! –

関連する問題