diff --git a/packages/plugin-blog-data/src/node/prepareBlogData.ts b/packages/plugin-blog-data/src/node/prepareBlogData.ts index ed045732..445cb3ec 100644 --- a/packages/plugin-blog-data/src/node/prepareBlogData.ts +++ b/packages/plugin-blog-data/src/node/prepareBlogData.ts @@ -31,6 +31,9 @@ export const preparedBlogData = async ( let pages = app.pages.filter((page) => { return page.filePathRelative && pageFilter(page.filePathRelative) }) + if (options.pageFilter) { + pages = pages.filter(options.pageFilter) + } if (options.sortBy) { pages = pages.sort((prev, next) => { if (options.sortBy === 'createTime') { diff --git a/packages/plugin-blog-data/src/shared/index.ts b/packages/plugin-blog-data/src/shared/index.ts index adcc2d67..8ab5f1f9 100644 --- a/packages/plugin-blog-data/src/shared/index.ts +++ b/packages/plugin-blog-data/src/shared/index.ts @@ -1,9 +1,12 @@ +import type { Page } from '@vuepress/core' + export interface BlogDataPluginOptions { include?: string | string[] exclude?: string | string[] sortBy?: 'createTime' | false | ((prev: T, next: T) => boolean) excerpt?: boolean extendBlogData?: (page: T) => Record + pageFilter?: (page: Page) => boolean } export type BlogPostData = BlogPostDataItem[]