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 }}/"

это кажется правильным :) поместите туда файлы и сделайте свои страницы за секунды. Если все, что вам нужно, это преобразовать их в страницы, это самый быстрый способ. Коллекции предоставят вам списки и так далее.

Другие вопросы по тегам