我有这段代码用Jekyll生成我的档案链接
<div class="col-lg-4">
<h3>Archives</h3>
<ul>
{% for post in site.posts %}
{% assign thisyear = post.date | date: "%B %Y" %}
{% assign prevyear = post.previous.date | date: "%B %Y" %}
{% assign counter = counter | plus: 1 %}
{% if thisyear != prevyear %}
<li><a href="/archive/#{{ post.date | date:"%B %Y" | }}">{{ thisyear }} ({{ counter }})</a></li>
{% assign counter = 0 %}
{% endif %}
{% endfor %}
</ul>
</div>
正如您所看到的,它将呈现类似“2015年5月(3)”的内容。我正在努力实现“Mai 2015(3)”之类的东西。
以下是一个更简单的循环:
<div class="col-lg-4">
<h3>Derniers articles</h3>
<ul class="posts">
{% for post in site.posts limit:10 %}
<li>
<span>
{{ post.date | date: '%d' }}
{% assign m = post.date | date: "%-m" %}
{% case m %}
{% when '1' %}janvier
{% when '2' %}février
{% when '3' %}mars
{% when '4' %}avril
{% when '5' %}mai
{% when '6' %}juin
{% when '7' %}juillet
{% when '8' %}août
{% when '9' %}septembre
{% when '10' %}octobre
{% when '11' %}novembre
{% when '12' %}décembre
{% endcase %}
{{ post.date | date: '%Y' }}
</span> »
<a href="{{ BASE_PATH }}{{ post.url }}">
{{ post.title }}</a>
</li>
{% endfor %}
</ul>
</div>
此代码将呈现“15 janvier 2015”,而不是“2015年1月15日”。
到目前为止,我没有设法合并这两个循环来创建我想要实现的目标。有什么想法吗?
修改 使用该代码取得了一些进展: 但是存在一个大问题,它只会呈现一个月而不是所有月份。 所以现在它呈现
Mai 2015 (4)
而不是
Mai 2015 (1)
Juin 2015 (1)
Juillet 2015 (2)
<ul>
{% for post in site.posts %}
{% assign thisyear = post.date | date: "%Y" %}
{% assign prevyear = post.previous.date | date: "%Y" %}
{% assign m = post.date | date: "%-m" %}
{% assign counter = counter | plus: 1 %}
{% if thisyear != prevyear %}
<li><a href="/archive/#{{ post.date | date:"%B %Y" | }}">{% case m %}
{% when '1' %}janvier
{% when '2' %}février
{% when '3' %}Mars
{% when '4' %}avril
{% when '5' %}mai
{% when '6' %}juin
{% when '7' %}juillet
{% when '8' %}août
{% when '9' %}septembre
{% when '10' %}octobre
{% when '11' %}novembre
{% when '12' %}décembre
{% endcase %}{{ thisyear }} ({{ counter }})</a></li>
{% assign counter = 0 %}
{% endif %}
{% endfor %}
</ul>
答案 0 :(得分:0)
使用{% if thisyear != prevyear %}
,您只能按年份进行分组。
您需要按月和年分组。
您打印IF:
(thismonth != prevmonth)
(thisyear != prevyear and thismonth == prevmonth)
这有效:
<ul>
{% for post in site.posts %}
{% assign thisyear = post.date | date: "%Y" %}
{% assign thismonth = post.date | date: "%-m" %}
{% assign prevyear = post.previous.date | date: "%Y" %}
{% assign prevmonth = post.previous.date | date: "%-m" %}
{% assign counter = counter | plus: 1 %}
{% if (thismonth != prevmonth) or (thisyear != prevyear and thismonth == prevmonth) %}
<li><a href="/archive/#{{ post.date | date:"%B %Y" | }}">
{% case thismonth %}
[ month in french here ]
{% endcase %}
{{ thisyear }} ({{ counter }})
</a></li>
{% assign counter = 0 %}
{% endif %}
{% endfor %}
</ul>