Фильтрация постов по языку в блоге jekyll на GitHub Pages
Добавляю в свой блог перевод постов на разные языки. Перевод я реализовал, но не могу понять как мне на странице постов отображать сообщения только на одном языке. На данный момент у меня дублируются статьи на разных языках. Для начала, вот мой код, который связывает посты по атрибутах.
{% if page.layout != 'index' %}
{% assign posts=site.posts | where:"lang-ref", page.lang-ref | sort: 'lang' %}
{% if posts.size == 0 %}
{% assign posts=site.pages | where:"lang-ref", page.lang-ref | sort: 'lang' %}
{% endif %}
{% if posts.size > 1 %}
<footer class="lang-options">
<em>Read this page in a different language:</em>
<ul>
{% for post in posts %}
<a href="{{ site.base-url }}{{ post.url }}" class="{{ post.lang }}" title="View in {{post.lang}}">{{ post.lang }}</a>
{% endfor %}
</ul>
Вот как я вывожу посты на страницу:
{% for post in paginator.posts %}
<article class="post-preview">
<a href="{{ post.url | prepend: site.baseurl | replace: '//', '/' }}">
<h2 class="post-title">{{ post.title }}</h2>
{% if post.subtitle %}
<h3 class="post-subtitle">{{ post.subtitle }}</h3>
{% else %}
<h3 class="post-subtitle">{{ post.excerpt | strip_html | truncatewords: 15 }}</h3>
{% endif %}
</a>
<p class="post-meta">Posted by
{% if post.author %}
{{ post.author }}
{% else %}
{{ site.author }}
{% endif %}
on {{ post.date | date: '%B %d, %Y' }} · {% include read_time.html content=post.content %}
</p>
</article>
А вот так я пытаюсь фильтровать сообщения на странице. По идее этот код выводит сообщения на том языке та котором текущая страница.
<article class="post-preview">
{% assign posts = site.posts | where:"lang", page.lang %}
{% for post in posts %}
<a href="{{ post.url | prepend: site.baseurl | replace: '//', '/' }}">
<h2 class="post-title">{{ post.title }}</h2>
{% if post.subtitle %}
<h3 class="post-subtitle">{{ post.subtitle }}</h3>
{% else %}
<h3 class="post-subtitle">{{ post.excerpt | strip_html | truncatewords: 15 }}</h3>
{% endif %}
</a>
{% endfor %}
Но фильтрация не работает, и я я получаю ошибку.
Liquid Exception: undefined method `split' for nil:NilClass in posts/index.html
Ответы (1 шт):
Возможно кто-то так же сталкивался с такой проблемой фильтарции. Вот как я её решил:
{% assign sorted-posts = site.posts | where: "lang", page.lang %}
{% if sorted-posts.size > 0 %}
{% for post in sorted-posts %}
Так же сортировка на главной странице:
{% assign sorted-posts = site.posts | where: "lang", "en" %}
{% for post in sorted-posts limit: 5 %}
Стоит просто всем страницам присвоить язык и выводить посты только на языке главной страницы.