これに頭をかいてください-感謝します。
すべてのジキル投稿のリストをカテゴリ別に整理して表示したい。 Line 3が正しくないことは知っていますが、それがどうあるべきかわかりません。何か案は?ありがとう!
{% for category in site.categories %}
<h3>{{ category | first }}</h3>
{% for post in page.categories.category %}
{{ post.title }}<br>
{% endfor %}
{% endfor %}
とった!個々の投稿をリストする前に中間投稿ループが必要でした
<ul>
{% for category in site.categories %}
<li><a name="{{ category | first }}">{{ category | first }}</a>
<ul>
{% for post in category.last %}
<li><a href="{{ post.url }}">{{ post.title }}</a></li>
{% endfor %}
</ul>
</li>
{% endfor %}
</ul>
fyi、誰かが1つのカテゴリの投稿をリストしたいだけなら、これは機能します(カテゴリが投稿のリストを返すので上記の例とは異なります...
<p>Posts in category "basic" are:</p>
<ul>
{% for post in site.categories.basic %}
{% if post.url %}
<li><a href="{{ post.url }}">{{ post.title }}</a></li>
{% endif %}
{% endfor %}
</ul>
現在、これに使用できる公式プラグインがあります。 jekyll-archives
.
それを利用するために、
jekyll-archives
をGemfile
および_config.yml
ファイルに追加します。
必要に応じて、次のような構成を追加します。
jekyll-archives:
enabled: all
layouts:
year: archive/year
month: archive/month
day: archive/day
tag: archive/tag
category: archive/category
permalinks:
year: '/:year/'
month: '/:year/:month/'
day: '/:year/:month/:day/'
tag: '/tags/:name/'
category: '/category/:name/'
layouts
は、archive type
に応じて以下のページ属性を利用できます。
year
、month
、day
、 tag
、category
)Nil
page.type
に応じて、日付と月のフィールドを解析する必要があります)以下は、年に基づいたアーカイブのサンプルレイアウトです。
<h1>Archive of posts from {{ page.date | date: "%Y" }}</h1>
<ul class="posts">
{% for post in page.posts %}
<li>
<span class="post-date">{{ post.date | date: "%b %-d, %Y" }}</span>
<a class="post-link" href="{{ post.url | prepend: site.baseurl }}">{{ post.title }}</a>
</li>
{% endfor %}
</ul>
<h5>Categories</h5>
{% for category in site.categories %}
{% assign cat = category[0] %}
<h6><a href="#">{{ cat }}</a></h6>
{% for post in site.categories[cat] %}
<a href="{{ post.url }}">{{ post.title }}</a> <small>{{ post.date }}</small>
{% endfor %}
{% endfor %}
ソートを使用する答えは次のとおりです(便利です!)。
{% comment %}
#
# Change date order by adding '| reversed'
# To sort by title or other variables use {% assign sorted_posts = category[1] | sort: 'title' %}
#
{% endcomment %}
{% assign sorted_cats = site.categories | sort %}
{% for category in sorted_cats %}
{% assign sorted_posts = category[1] | reversed %}
<h2 id="{{category[0] | uri_escape | downcase }}">{{category[0] | capitalize}}</H2>
<ul>
{% for post in sorted_posts %}
<li><a href="{{ site.url }}{{ site.baseurl }}{{ post.url }}">{{ post.title }}</a></li>
{% endfor %}
</ul>
{% endfor %}
これは私のものではなく、 here から取得したものです。
すぐに正確な構文を思い出すことはできませんが、次のコードのようにカテゴリ名を取得して、各カテゴリの投稿を取得できるようにする必要があります...
{% for category in site.categories %}
{% assign cat_name = category[0] %}
{% for post in site.categories.cat_name %}
...
{% endfor%}
{% endfor %}