Я перестраиваю свой текущий сайт в Jekyll и пытаюсь настроить структуру вокруг модели контента, используя объекты (файлы в коллекции), которые имеют атрибуты (пары ключ/значение в фронте YAML). Простые концептуальные материалы, предназначенные для демонстрации эффективного моделирования контента для моей команды.
Все, что на сайте, которое используется повторно, становится объектом, с типом объекта, определенным конкретной коллекцией, содержащей его файл. Итак, у меня есть коллекция "сервисов" для сервисов, предлагаемых компанией, коллекция "клиенты" и коллекция "люди" с файлом для каждого человека.
Проблема, с которой я сталкиваюсь, ссылается на конкретный элемент в коллекции. Например, я хочу, чтобы у моих сообщений были авторы. Я нашел массу решений для этого, используя _data, но я хочу, чтобы мои авторы имели страницы и коллекции, автоматически выводит страницу для каждого человека. Я смог получить _data для создания страниц, но у меня нет контроля над порядком, в котором перечислены элементы, тогда как для коллекции есть множество способов контролировать порядок.
Мое текущее решение кажется взломанным. Я даю каждому человеку идентификатор, равный "firstname-lastname", поэтому в фронте YAML он сказал бы id: steve-hickey
. Затем я использую следующий код, чтобы перебирать каждого человека на сайте и возвращать любые, которые соответствуют идентификатору автора, указанному в сообщении.
Шаблон макета сообщения:
---
layout: default
---
<header class="intro post-header">
<h1>{{ page.title }}</h1>
{% assign people = site.people | where:"id", page.author-id %}
{% for person in people %}
<p>Written by <a href="/about/{{ page.author-id }}/">{{ person.first-name }} {{ person.last-name }}</a> on <p>{{ page.date | date: '%B %d, %Y' }}</p></p>
{% endfor %}
</header>
<div class="post-body">
{{ content }}
</div>
Post front-matter:
---
title: User Offboarding
layout: post
nav-area: blog
author-id: steve-hickey
---
Личный файл из коллекции людей:
---
id: steve-hickey
first-name: Steve
last-name: Hickey
job: User Experience Strategist & AUX Director
layout: person
nav-area: about
portrait-url:
---
Кажется, должен быть способ идентифицировать конкретный файл или объект на основе уникального атрибута, который он уже имеет, например, его имя или URL-адрес. Таким образом, я могу просто указать на конкретный объект вместо того, чтобы оценивать все их для уникального свойства, которое я должен написать. Но после 3 дней поиска я не могу найти хороший ответ на этот вопрос.