我正在选择静态站点生成器,但还没有找到满足我特定用例的生成器。这是我正在寻找的东西的一个简化版本:
除了几页之外,每一页看起来都是这样的:
<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的Generators可以完成这项任务,但我更感兴趣的是1)静态类型的东西,2)需要较少的自定义代码。
发布于 2020-08-04 06:03:59
虽然我还没有找到一个同样强大的、静态类型的选项,但看起来Jekyll的Collections功能正是您想要的。您为问题中提到的每个"DataObject“创建一个文件,Jekyll将遍历这些文件并生成页面。
https://stackoverflow.com/questions/63200366
复制相似问题