Skip to content

Integrate Search (via Pagefind) #1108

@kaylumah

Description

@kaylumah
// 👇 Future Option: Use Pagefind to get matching URLs
        async function getMatchingUrlsFromPagefind(query, tag) {
            const pagefind = await import("/pagefind/pagefind.js");
            const search = query || "";
            console.log("search", search);
            const resultObj = await pagefind.search(search);

            let results = resultObj.results;
            console.log("results", results);

            const dataResults = await Promise.all(results.map(r => r.data()));
            console.log("dataResults", dataResults);

            for (const r of dataResults) {
                console.log("meta keys:", Object.keys(r.meta || {}));
                console.log("tags:", r.meta?.tags);
            }

            // filter based on meta.tags (after loading data)
            const filtered = tag
                ? dataResults.filter(d => d.meta?.tags?.includes(tag))
                : dataResults;
            return new Set(filtered.map(d => new URL(d.url, location.origin).pathname));
        }
        const matchingUrls = await getMatchingUrlsFromPagefind(query, tag);

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions