Цикл заполняет не только конкретную коллекцию, которую я написал для цикла.Я пробовал Может ли жидкость для цикла содержать переменную страницы
Frontmatter страницы
---
collection: criminal
---
Вот мой config.yml, настраивающий коллекции:
config.yml
# Collections
collections:
practices:
output: true
permalink: /legal-practice/:title:output_ext
civil:
output: true
permalink: /legal-practice/civil-law/:title:output_ext
criminal:
output: true
permalink: /legal-practice/criminal-law/:title:output_ext
attorney:
output: true
permalink: /lawyers/:title:output_ext
collections_dir: collections
Криминальная коллекция
FS: /legal/collections/_criminal
- domestic-насилие.html
- drug-offense.html
- dui.html
- xxx
Сборник практик
FS: /legal/collections/_practices
- civil-law.html
- Criminal-law.html
- xxx
Файл, к которому я обращаюсь, /legal-practice/criminal-law.html
, который имеет frontmatter
определение collection: criminal
Включение JSON + LD определяет CollectionPage
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "CollectionPage",
"name": "{{page.title}}",
"about": { "@id": "{{page.wikidata}}" },
"mainEntity": {
"@type": "ItemList",
"itemListElement": [
{% for item in site[page.collection] %}
{
"@type": "article",
"name": "{{ item.title }}",
"@id": "{{site.url}}{{ item.permalink }}",
"mainEntity": { "@id": "{{site.url}}{{ item.permalink }}/#article" }
{% if forloop.last %} } {% else %} }, {% endif %}
{% endfor %}
]
},
"image":
{
"@type": "ImageObject",
"width": {{ page.img_width | default: site.img_width }},
"height": {{ page.img_height | default: site.img_height }},
"url": "{{ page.img_url | default: site.img_url }}"
},
"url": "{{ site.url }}{{ page.url }}",
"description": {{ page.summary | strip_newlines | strip | strip_html | remove: "\n\n" | jsonify }},
"mainEntityOfPage":
{
"@type": "CollectionPage",
"hasPart":
{
"@type": "SiteNavigationElement",
"xpath": "/html/body/nav"
},
"breadcrumb":
{
"@type": "BreadcrumbList",
"itemListElement":
[
{
"@type": "ListItem",
"position": "1",
"item":
{
"@id": "{{ site.url | append: "/index.html" }}",
"name": "Home"
}
},
{% assign crumbs = page.url | split: '/' %}
{% assign crumbs_total = crumbs | size | minus: 1 %}
{% for crumb in crumbs offset: 1 %}
{% if forloop.index == crumbs_total %}
{
"@type": "ListItem",
"position": {{ crumbs_total | plus:1 }},
"item":
{
"@id": "{{ site.url }}{{ page.url }}",
"name": {{ page.crumbtitle | jsonify }}
}
}
{% else %}
{
"@type": "ListItem",
"position": {{ crumbs_total }},
"item":
{
"@id": "{% assign crumb_limit = forloop.index | plus: 1 %}{% for crumb in crumbs limit: crumb_limit %}{{ crumb | append: '/' }}{% endfor %}",
"name": "{{ crumb | replace:'-',' ' | upcase }}"
}
},
{% endif %}
{% endfor %}
]
}
}
}
</script>
Результаты
Что зацикливается,вместо этого - массив FS: /legal/collections/_practices
вместо _criminal .Цель цикла JSON изменяется на каждой странице любой коллекции, содержащей список элементов.Так обстоит дело для _criminal
.Я буду продолжать делать `JSON + LD действительным.Я просто застрял в цикле for.