11ty рендеринг одного сообщения на файл данных
Я хочу, чтобы 11ty генерировала одну страницу для каждого файла данных, а не создавала несколько файлов путем итерации данных в файле данных. Это возможно?
Мой пример использования: у меня есть несколько описаний вакансий в yaml
формат: одна страница yaml на задание. Итак, я хочу создать страницу для каждого файла данных.
Я понимаю, что могу поместить все данные yaml на передний план на странице без содержимого, но это неправильно, поскольку у меня есть только данные.
Спасибо за любые указатели.
2 ответа
Да, вы можете использовать коллекции в сочетании с разбивкой на страницы для создания одного выходного файла для каждого задания. Ключ использует размер пагинации 1, таким образом, вам нужна только одна страница в каталоге вашего сайта, и она будет создавать одну страницу вывода для каждого задания. Это описано в разделе "Создание страниц из данных".
В примере в связанной статье документации используется один файл данных (possums.json
) и разбивает на страницы объект, который одиннадцать создает для этого файла. Если у вас есть один файл данных на элемент (задание в вашем случае), вы можете добиться того же, поместив все эти файлы данных в родительский каталог внутри каталога _data и перебрав его. Ключевым моментом здесь является понимание того, как eleventy обрабатывает вложенные каталоги в каталоге глобальных данных и что вы можете использовать разбиение на страницы с объектом.
Итак, если ваши файлы заданий yaml структурированы следующим образом:
_data/jobs/job1.yaml
_data/jobs/job2.yaml
_data/jobs/job3.yaml
Вы должны иметь возможность разбивать их на страницы следующим образом (адаптировано из примера в документации, возможно, придется немного отрегулировать, чтобы он работал с вашим контентом):
pagination:
data: jobs
size: 1
alias: job
resolve: values
permalink: "jobs/{{ job.name | slug }}/"
это кажется правильным :) поместите туда файлы и сделайте свои страницы за секунды. Если все, что вам нужно, это преобразовать их в страницы, это самый быстрый способ. Коллекции предоставят вам списки и так далее.