У меня есть две пользовательские коллекции на веб-сайте 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"
}