// .eleventy.js const Fuse = require('fuse.js') const fs = require('fs') module.exports = function (eleventyConfig) { eleventyConfig.addPassthroughCopy("js"); eleventyConfig.addFilter('searchIndex', async function (collection) { const index = await Promise.all(collection.map(async item => ({ title: item.data.title, content: await item.template.inputContent, url: item.url, }))); const fuse = new Fuse(index, { keys: ['title', 'content'] }); const data = fuse.getIndex() // fs.writeFileSync('_site/search-index.json', JSON.stringify(data.toJSON())) // console.log(JSON.stringify(data.toJSON())) fs.writeFileSync('_site/search-index.json', JSON.stringify(data.docs)) // console.log((data.docs)) return data.toJSON() }); eleventyConfig.addCollection('searchIndex', async function (collection) { return await eleventyConfig.getFilter('searchIndex')(collection.getAll()); }); }; // // .eleventy.js // const Fuse = require('fuse.js'); // module.exports = function (eleventyConfig) { // eleventyConfig.addPassthroughCopy("js"); // eleventyConfig.addFilter('searchIndex', function (collection) { // const index = collection.map(item => ({ // title: item.data.title, // content: item.template.inputContent, // url: item.url, // })); // const fuse = new Fuse(index, { keys: ['title', 'content'] }); // console.log(fuse) // return fuse.toJSON(); // }); // eleventyConfig.addCollection('searchIndex', function (collection) { // return eleventyConfig.getFilter('searchIndex')(collection.getAll()); // }); // };