问题
I'm making an "archive" if you will of all the posts on my site. I want to gather all the posts from a year. This code works fine, however; I want it to generate the <h2>2014</h2>
when needed.
Basically, if year is 2014, render <h2>2014</h2>
and make a <ul>
of all the posts (with category of journal) from that given year.
If anyone knows of any .rb
plugins that archive by year, let me know!
<h2>2014</h2>
{% for post in site.categories.journal %}
{% capture year %}{{post.date | date: "%Y"}}{% endcapture %}
{% if year == "2014" %}
<ul class="posts-in-year">
<li><p><a href="{{ post.url | prepend: site.baseurl }}">{{ post.title }}</a> — {{ post.date | date: "%B %d" }}</p></li>
</ul>
{% endif %}
{% endfor %}
回答1:
What about:
{% for post in site.categories.journal %}
{% capture year %}{{post.date | date: "%Y"}}{% endcapture %}
{% if year == "2014" %}
<h2>{% year %}</h2>
<ul class="posts-in-year">
<li><p><a href="{{ post.url | prepend: site.baseurl }}">{{ post.title }}</a> — {{ post.date | date: "%B %d" }}</p></li>
</ul>
{% endif %}
{% endfor %}
回答2:
You can add a year field in your posts and then
<h2>2014</h2>
<ul class="posts-in-year">
{% for post in (site.categories.journal | where: "year","2014" | sort: 'date') %}
<li><p><a href="{{ post.url | prepend: site.baseurl }}">
{{ post.title }}</a> — {{ post.date | date: "%B %d" }}</p>
</li>
{% endfor %}
</ul>
回答3:
<h2>2014</h2>
<ul class="posts-in-year">
{% for post in site.categories.journal %}
{% capture year %}{{post.date | date: "%Y"}}{% endcapture %}
{% if year == "2014" %}
<li><p><a href="{{ post.url | prepend: site.baseurl }}">{{ post.title }}</a> — {{ post.date | date: "%B %d" }}</p></li>
{% endif %}
{% endfor %}
来源:https://stackoverflow.com/questions/24179283/get-jekyll-posts-by-year