我使用由 Sylvain Durand制作的 Jekyll 多语言设置来运行多种语言的 Jekyll 博客,而无需使用任何插件。
所有帖子都有以下标记:
---
title: Hello world!
lang: en
ref: hello
---
这些帖子使用正常的文件夹结构:
jekyll
|
-- posts
|
--name-of-post
--name-of-post-2
--name-of-post-3
我有一个名为en.md的页面,其中包含layout: home
和标记,可以正确显示英文帖子,并在home.htmllang: en
中使用以下代码
{% assign posts=site.posts | where:"lang", page.lang %}
<ul>
{% for post in posts %}
<li>
<a href="{{ post.url }}">{{ post.title }}</a>
</li>
{% endfor %}
</ul>
但我想按类别显示帖子,按语言过滤。
试图通过以下方式实现这一目标:
{% assign posts=site.categories | where:"lang", page.lang %}
<div class="categories">
{% for category in site.categories %}
<li><a name="{{ category | first }}">{{ category | first }}</a>
<ul>
{% for posts in category %}
{% for post in posts %}
<li><a href="{{ post.url }}">{{ post.title }}</a></li>
{% endfor %}
{% endfor %}
</ul>
</li>
{% endfor %}
</div>
当我构建时,显示以下消息
Liquid 异常:在 /_layouts/home.html 中没有将 String 隐式转换为 Integer
尝试了许多变体,但似乎没有一个有效。