Я пытаюсь создать соответствующий пост-файл для моего сайта Jekyll. Сайт основан на концепции участников, достопримечательностей и парков (каждый в виде коллекций). Каждый пост имеет много-много отношений. Я пытаюсь объединить массив каждого из атрибутов страницы (участников, достопримечательностей и парков) через массив oop и найти сообщения с общим количеством тегов.
Это довольно просто, но я Застревая с одним разделом, не у всех сообщений есть поля членов, достопримечательностей и парков, поэтому они возвращают nil
, но для фильтра concat требуется массив. Я пытаюсь установить для переменной по умолчанию значение []
, но оно всегда устанавливается на nil
. Есть идеи?
Вот код:
<ul class="row">
{% assign pageTags = [] %}{% if page.tags.first %}{% assign pageTags = page.tags %}{% endif %}
{% assign pageAttractions = [] %}{% if page.attractions.first %}{% assign pageAttractions = page.attractions %}{% endif %}
{% assign pageMembers = [] %}{% if page.members.first %}{% assign pageMembers = page.members %}{% endif %}
{% assign pageParks = [] %}{% if page.parks.first %}{% assign pageParks = page.parks %}{% endif %}
{% assign pageTagList = pageTags | concat: pageAttractions | concat: pageMembers | concat: pageParks %}
{% for post in site.documents %}
{% assign sameTagCount = 0 %}
{% assign commonTags = '' %}
{% assign postTags = [] %}{% if post.tags %}{% assign postTags = post.tags %}{% endif %}
{% assign postAttractions = [] %}{% if post.attractions %}{% assign postAttractions = post.attractions %}{% endif %}
{% assign postMembers = [] %}{% if post.members %}{% assign postMembers = post.members %}{% endif %}
{% assign postParks = [] %}{% if post.parks %}{% assign postParks = post.parks %}{% endif %}
{% assign postTageList = postTags | concat: postAttractions | concat: postMembers | concat postParks %}
{% if post.hidden == true %}
{% break %}
{% endif %}
{% for tag in postTageList %}
{% if post.url != page.url %}
{% if pageTagList contains tag %}
{% assign sameTagCount = sameTagCount | plus: 1 %}
{% capture tagmarkup %} <span class="label label-default">{{ tag }}</span> {% endcapture %}
{% assign commonTags = commonTags | append: tagmarkup %}
{% endif %}
{% endif %}
{% endfor %}
{% if sameTagCount >= minCommonTags %}
<li class="col-lg-4 col-md-12">
<div class="main-image">
<a href="{{ post.url }}" class="image" style="background-image: url('{{ post.image }}');"></a>
</div>
<h5>{{ post.categories | first }}</h5>
<h3><a href="{{ post.url }}">{{ post.title | replace: 'Review', '' }}</a></h3>
<p>
{% if post.description %}
{{ post.description }}
{% else %}
{{ post.content | markdownify | strip_html | truncatewords: 20 }}
{% endif %}
</p>
<p>
<a href="{{ post.url }}" class="large">Read Article →</a>
</p>
</li>
{% assign maxRelatedCounter = maxRelatedCounter | plus: 1 %}
{% if maxRelatedCounter >= maxRelated %}
{% break %}
{% endif %}
{% endif %}
{% endfor %}
</ul>
Репо можно посмотреть здесь: https://github.com/dtsn/jungleskipper/blob/feature/members/_includes/related-posts.html