如何在Eleventy中使用多个JSON数据源?
解决Eleventy多JSON数据源分页问题
要实现调用多个JSON文件做分页,不能直接在pagination.data里指定多个集合,得先把多个JSON数据合并成一个统一的集合,具体步骤如下:
确认JSON文件位置
把你的collection1.json和collection2.json放在Eleventy项目的_data目录下,Eleventy会自动将它们注册为全局数据。在配置文件中合并集合
在项目根目录的.eleventy.js里添加代码,将两个JSON数据合并成一个新的全局数据集合:
module.exports = function(eleventyConfig) { eleventyConfig.addGlobalData('combinedCollections', function() { // 展开两个集合并合并成一个数组 return [...this.collection1, ...this.collection2]; }); };
- 修改模板的分页配置
在gallery.njk的前置元数据中,使用合并后的集合作为分页数据源:
--- pagination: data: combinedCollections size: 1 alias: image permalink: "/gallery/{{ image.title | slug }}/" ---
这样配置后,模板就能遍历两个JSON文件里的所有条目,自动生成对应的画廊页面。如果两个JSON的字段结构不一致,要确保每个条目都包含title字段,否则slug过滤器会报错。
内容的提问来源于stack exchange,提问作者user3636873
相关产品推荐
相关产品推荐

