Может ли цикл «Жидкость для» создать размерный массив для записей на странице коллекции, используя frontmatter в Jekyll? - PullRequest
0 голосов
/ 28 сентября 2019

Цикл заполняет не только конкретную коллекцию, которую я написал для цикла.Я пробовал Может ли жидкость для цикла содержать переменную страницы

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

  1. domestic-насилие.html
  2. drug-offense.html
  3. dui.html
  4. xxx

Сборник практик

FS: /legal/collections/_practices

  1. civil-law.html
  2. Criminal-law.html
  3. 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.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...