Jekyll存档链接用另一种语言而不是英语

时间:2015-07-17 16:16:56

标签: html jekyll liquid templating

我有这段代码用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> &raquo;
               <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 }}&nbsp;({{ counter }})</a></li>
            {% assign counter = 0 %}
          {% endif %}
        {% endfor %}
    </ul>

1 个答案:

答案 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 }}&nbsp;({{ counter }})
    </a></li>
    {% assign counter = 0 %}
  {% endif %}
{% endfor %}
</ul>