11ty рендеринг одного сообщения на файл данных - PullRequest
2 голосов
/ 02 августа 2020

Я хочу, чтобы 11ty генерировала одну страницу для каждого файла данных, а не создавала несколько файлов путем итерации данных в файле данных. Возможно ли это?

В моем случае у меня есть несколько описаний вакансий в формате yaml: одна страница yaml на задание. Итак, я хочу сгенерировать страницу для каждого файла данных.

Я понимаю, что могу поместить все данные yaml на передний план на странице без содержимого, но это неправильно, поскольку у меня есть только данные.

Спасибо за любые указатели.

1 Ответ

2 голосов
/ 03 августа 2020

Да, вы можете использовать коллекции в сочетании с разбивкой на страницы для создания одного выходного файла для каждого задания. Ключ использует размер пагинации 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 }}/"
...