blog

jekyll ではじめる Static Web Site シリーズjekyllのタグを投稿数で並び替えて表示する

    • Ryuichi Nonaka
    この記事は書かれてから1年以上経過しており、内容が古い場合があります。

    jekyllで投稿数での多いタグ一覧を作る方法の紹介です。
    実際にこのブログで表示しているのがこれです。

    Tag order

    Liquidタグのsortフィルターが使えるかと思って試したけれど上手くいかなかったので結局フィルターを自作しました。

    Jekyllプラグイン

    プラグインは_pluginsディレクトリに保存するだけ。

    中身はtagの配列を渡して、何で並び替えるか、昇順か降順かの指定を行えるようにしています。rubyよくわかっていないのでこうした方が良いってのがあればコメントください。

    HTMLテンプレート

    テンプレート側はassignタグを使って並び替えたタグを格納します。

    <ul class="component-popular-tags">
          {% assign order_tags = site.tags | tag_order: 'count', 'DESC' %}
          {% for tag in order_tags limit:6 %}
          {% assign slug = tag[0] %}
          <li class="tag-item">
            <a href="{{ site.url }}{{ site.baseurl }}{{ site.tag_dir }}/{{ slug }}/" title="タグ:{{ slug }}">
              <span class="item-badge">{{ tag[1] | size }}</span>
              {{ slug }}
            </a>
          </li>
          {% endfor %}
    </ul>
    

    おそらくカテゴリーも同じ方法で出力できるようになると思います。
    ではでは。

    シリーズ

    1. Jekyll × Gruntでブログを作ってみた:環境構築編
    2. Jekyll × Gruntでブログを作ってみた:NodeモジュールとGruntタスク
    3. Jekyll × Gruntでブログを作ってみた:まずはJekyllだけ動かしてみる
    4. Jekyllの関連記事表示とGSLを使った処理時間の短縮
    5. jekyllでFontAwesomeアイコンを表示するLiquid Tagを作った
    6. jekyllのタグを投稿数で並び替えて表示する
    7. jekyllでタグ・カテゴリ・マンスリーアーカイブページを作る
    8. jekyllでプラグインを使った動的ページ生成

    コメント・フィードバック