数据支持的静态站点生成器?
Data-backed static site generator?
我正在选择静态站点生成器,但尚未找到满足我的特定用例的。这是我正在寻找的简化版本:
除了少数几页,每一页都是这样的:
<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) 需要较少的自定义代码。
虽然我还没有找到同样强大的静态类型选项,但看起来 Jekyll 的 Collections 功能正是您正在寻找的。您为问题中提到的每个“DataObject”创建一个文件,Jekyll 运行它们并生成页面。
我正在选择静态站点生成器,但尚未找到满足我的特定用例的。这是我正在寻找的简化版本:
除了少数几页,每一页都是这样的:
<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) 需要较少的自定义代码。
虽然我还没有找到同样强大的静态类型选项,但看起来 Jekyll 的 Collections 功能正是您正在寻找的。您为问题中提到的每个“DataObject”创建一个文件,Jekyll 运行它们并生成页面。