123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 |
- // .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());
- // });
- // };
|