Я пытаюсь создать (простое, невзвешенное) облако тегов с жидкостью на моем сайте jekyll.Облако тегов отображается нормально, когда я использую этот код:
{% assign sitetags = "" %}
{% for page in site.pages %}
{% for tag in page.tags %}
{% unless sitetags contains tag %}
{% assign sitetags = sitetags | append:tag | append:', ' %}
{% endunless %}
{% endfor %}
{% endfor %}
{% assign sitetags = sitetags | split:', ' | sort %}
{% for tag in sitetags %}
{% capture tag_name %}{{ tag }}{% endcapture %}
<div>
<a href="/tag/{{ tag_name }}">{{ tag_name }}</a>
</div>
{% endfor %}
Однако есть одна проблема: если имя тега содержится в другом теге, оно не будет отображаться в облаке тегов.Например, «искусство» содержится в «истории искусства», поэтому оно не отображается.Чтобы разобраться с этим, я попытался это исправить, однако, это не работает.Вот мой код:
{% assign sitetags = "" %}
{% for page in site.pages %}
{% for tag in page.tags %}
{% if sitetags contains tag %}
{% assign sitetags = sitetags | split:', ' %}
{% assign truetag = true %}
{% for taggo in sitetags %}
{% if taggo != tag %}
{% continue %}
{% else %}
{% assign truetag = false %}
{% break %}
{% endif %}
{% endfor %}
{% if truetag == true %}
{% assign sitetags = sitetags | append:tag | append:', ' %}
{% endif %}
{% else %}
{% assign sitetags = sitetags | append:tag | append:', ' %}
{% endif %}
{% endfor %}
{% endfor %}
{% assign sitetags = sitetags | split:', ' | sort %}
{% for tag in sitetags %}
{% capture tag_name %}{{ tag }}{% endcapture %}
<div>
<a href="/tag/{{ tag }}">{{ tag }}</a>
</div>
{% endfor %}
Причина, по которой я пытаюсь сделать это таким образом, а не просто использовать site.tags, заключается в том, что у меня есть статьи / эссе в других каталогах, которые я пытаюсь включить.Когда я использую site.tags, он включает только теги, которые есть в сообщениях блога, но не в эссе.По сути, на моем сайте есть как обычные записи в блоге в / _blog, так и эссе в другом месте, но я хочу объединить все теги в одном облаке тегов.
Буду очень признателен за советы о том, чтоЯ делаю неправильно или как это исправить.Спасибо!