Джекилл - Как мне включить детали переднего плана из элемента коллекции, учитывая его путь к файлу? - PullRequest
0 голосов
/ 28 февраля 2020

У меня есть две пользовательские коллекции на веб-сайте Jekyll: events и venues.

Я обнаружил, что CMS Forestry.io имеет довольно приятный пользовательский интерфейс, позволяющий редактору контента выберите существующий venue при создании нового event (после чего он добавляет "/_venues/chosen-file-name.md" к основному содержанию события) .

/_events/2020-02-25-an-example.md выглядит так:

---
layout: event
title: An event
published: true
startdatetime: 2020-02-28
venue: _venues/2020-02-25-best-club-ever.md
---

/_venues/2020-02-25-best-club-ever.md выглядит так:

---
title: Best Club Ever
address: 123 Sesame Street
---

Вопрос:

Какой самый простой и эффективный способ в Jekyll включает, чтобы получить такие факты, как "Best Club Ever" и "123 Sesame Street", с учетом строки "/_venues/2020-02-25-best-club-ever.md"?


Context:

Я пытаюсь написать параметризованное включение /_includes/venue_by_param_schema_json_object.json, которое потребляет переменную включения venue_handle с содержимым, подобным /_venues/2020-02-25-best-club-ever.md, и помогает мне отобразить место Schema.org для места проведения.

Я могу получить привет c "привет мир "на работу: я могу позвонить {% include venue_by_param_schema_json_object.json venue_handle=page.venue %} со страницы рендеринга /_events/2020-02-25-an-example.md и получить это содержимое на странице, которую видит зритель:

{
    "@type": "Place",
    "name": "_venues/2020-02-25-best-club-ever.md",
    "address": "Placeholder"
}

Если это /_includes/venue_by_param_schema_json_object.json:

{
    "@type": "Place",
    "name": "{{ include.venue_handle }}",
    "address": "Placeholder"
}

Но, конечно же, я действительно хочу построить /_includes/venue_by_param_schema_json_object.json, чтобы быть более динамичным c и отображать значения из начального вопроса 2020-02-25-best-club-ever - что-то вроде :

{% assign the_venue = SOMEHOW-FETCH-CONTENTS-OF-{{ include.venue_handle }} %}
{
    "@type": "Place",
    "name": "{{ the_venue.title }}",
    "address": "{{ the_venue.address }}"
}

Так что я могу сделать:

{
    "@type": "Place",
    "name": "Best Club Ever",
    "address": "123 Sesame Street"
}
...