Генератор статических сайтов с поддержкой данных?

Я выбираю генератор статических сайтов и пока не могу найти тот, который подходит для моего конкретного случая использования. Вот упрощенная версия того, что я ищу:

За исключением нескольких страниц, каждая страница выглядит примерно так:

<html>
  <head>
    <title><!-- Title differs based on page --></title>
  </head>
  <body>
    <ul>
      <!-- List entries here differ based on the page -->
    </ul>
  </body>
</html>

Насколько я могу судить, "стандартным" способом сделать это в генераторе статических сайтов было бы создание файла шаблона для всего HTML, а затем создание файла страницы (с использованием указанного шаблона) для каждой конкретной страницы. Мне кажется, что это излишне загромождает каталог разработки, когда все страницы одинаковы, за исключением отображаемых данных.

Я бы хотел, чтобы это было полностью управляемо данными. То есть я хотел бы создать файл шаблона на основе вышеизложенного, а затем файл данных что-то вроде этого:

TemplateToUse = 'MyTemplateFile.html'

DataObjects =
[
  {
    OutputFilename = 'Page1.html',
    PageData = {
      Title = 'Page 1',
      ListEntries = [ ... ]
    }
  },
  {
    OutputFilename = 'Page2.html',
    PageData = {
      Title = 'Page 2',
      ListEntries = [ ... ]
    }
  },
]

Генератор статического сайта будет использовать его и выводить каждую страницу, передавая данные в шаблон для каждой из них. Какие генераторы статических сайтов поддерживают такой рабочий процесс?

Похоже, что генераторы Jekyll справятся с этой задачей, но меня больше интересует то, что 1) статически типизировано и 2) требует меньше настраиваемого кода.

1 ответ

Решение

Хотя я не нашел столь же мощного варианта со статической типизацией, похоже, что функциональность Jekyll's Collections - это именно то, что вы ищете. Вы создаете файл для каждого "DataObject", упомянутого в вопросе, и Jekyll просматривает их и генерирует страницы.

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