| | |
| | | import { PerfTimer } from "../perf" |
| | | import { QuartzFilterPlugin } from "../plugins/types" |
| | | import { BuildCtx } from "../util/ctx" |
| | | import { PerfTimer } from "../util/perf" |
| | | import { ProcessedContent } from "../plugins/vfile" |
| | | |
| | | export function filterContent(plugins: QuartzFilterPlugin[], content: ProcessedContent[], verbose: boolean): ProcessedContent[] { |
| | | export function filterContent(ctx: BuildCtx, content: ProcessedContent[]): ProcessedContent[] { |
| | | const { cfg, argv } = ctx |
| | | const perf = new PerfTimer() |
| | | const initialLength = content.length |
| | | for (const plugin of plugins) { |
| | | const updatedContent = content.filter(plugin.shouldPublish) |
| | | for (const plugin of cfg.plugins.filters) { |
| | | const updatedContent = content.filter((item) => plugin.shouldPublish(ctx, item)) |
| | | |
| | | if (verbose) { |
| | | const diff = content.filter(x => !updatedContent.includes(x)) |
| | | if (argv.verbose) { |
| | | const diff = content.filter((x) => !updatedContent.includes(x)) |
| | | for (const file of diff) { |
| | | console.log(`[filter:${plugin.name}] ${file[1].data.slug}`) |
| | | } |