3

新しい Jekyll/Octopress サイトがあります。

いくつかのカスタマイズを行いました。カテゴリを作成するために、category_list_tag.rb ファイル (Dan Watson から) を plugins フォルダーに追加し、category_generator.rb と category_list_tag.rb を複製して、tag_generator.rb と tag_list_tag.rb を作成しました。

投稿を「グループ化」する方法が複数あり、サイドバーではすべてうまく機能します。

各投稿の下部に、問題の投稿と同じタグを持つ投稿のリストを表示したいと思います。

私はまだ初心者であり、これらすべてを学んでおり、以下を一緒にハックすることができました:

YAML Front Matter には、次のものがあります。

---
title: "Preface"
date: 2012-09-02 18:30
layout: post

categories:
- Section 1

tags:
- Author
- About
- Publisher
---

インクルード ファイルでは、各投稿の最後に次のように記述します。

<ul class="inline">
  {% for tag in site.tags %} 
    <li><a href="{{ url_root }}#{{ tag[0] }}-ref">{{ tag[0] }} <span>({{ tag[1].size }})</span></a></li>
  {% endfor %}
</ul>

<ul class="posts inline">
  {% for tag in site.tags %}
  <h5 id="{{ tag[0] }}-ref">{{ tag[0] }}</h5>

  {% for post in tag[1] %}
    <li><a href="{{ post.url }}" title="{{ post.title }}">{{ post.title }}</a></li>
  {% endfor %}

  {% endfor %}
</ul>

もちろん、これはすべてのタグによってリストされたすべての投稿を表示します。これは素晴らしいことですが、私が望むものではありません。

これを書き直して、現在の投稿と同じタグが付いた投稿のみが投稿の最後にリストされるようにするにはどうすればよいですか?

これは本当に私を悩ませています、そして私はそれをきちんと考え抜くことができないようです.

更新: 上記のコード スニペットを次のように変更することで、問題の一部を解決しました。

{% for tag in page.tags %}
<h5 id="{{ tag }}-ref">{{ tag }}</h5>
  {% for post in site.posts reversed %}
  <li><a href="{{ post.url }}" title="{{ post.title }}">{{ post.title }}</a></li>
  {% endfor %}
{% endfor %}

しかし、それは正しくありません...タグの見出しには、各投稿に関連付けられたタグがリストされます。これは私が望むものですが、各タグの見出しの下には、そのタグに関連付けられた投稿だけでなく、すべての投稿が一覧表示されます...うーん。

正しい方向に私を向けることができれば、事前に感謝します。

4

1 に答える 1

3

うーん、次の行に沿って何かを試すことができます:

{% for tag in page.tags %}
  <h5 id="{{ tag }}-ref">{{ tag }}</h5>

  {% for post in site.posts reversed %}

    {% if post.tags contains tag %}
      <li><a href="{{ post.url }}" title="{{ post.title }}">{{ post.title }}</a></li>
    {% endif %}

  {% endfor %}

{% endfor %}

タグが投稿のタグ配列に存在するかどうかを確認します。そうであれば、その<li>...</li>部分を印刷します。

それが役立つことを願っています! :)

于 2013-01-06T04:31:00.250 に答える