0

我正在选择一个静态站点生成器,但还没有找到一个满足我特定用例的。这是我正在寻找的简化版本:

除了几页外,每一页看起来都是这样的:

<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) 需要较少自定义代码的东西更感兴趣。

4

1 回答 1

0

虽然我还没有找到同样强大的静态类型选项,但看起来 Jekyll 的Collections功能正是您正在寻找的。您为问题中提到的每个“DataObject”创建一个文件,Jekyll 会运行它们并生成页面。

于 2020-08-03T22:03:58.743 回答