starshard/peafowl
Template
1
Fork 0
mirror of https://github.com/starshardstudio/peafowl.git synced 2024-11-25 06:24:20 +00:00
peafowl/_plugins/fileData.ts
2024-07-01 16:44:56 +02:00

22 lines
No EOL
673 B
TypeScript

import {Page} from "lume/core/file.ts"
import Site from "lume/core/site.ts";
export type FileDataOptions = {
query: string,
urlizer: (data: Lume.Data) => string,
contentizer: (data: Lume.Data) => string,
}
export default function fileData({query, urlizer, contentizer}: FileDataOptions) {
return (site: Site) => {
site.addEventListener("beforeSave", () => {
const datas: Lume.Data[] = site.search.pages(query)
for(const data of datas) {
site.pages.push(Page.create({
url: urlizer(data),
content: contentizer(data),
}))
}
})
}
}