diff --git a/packages/theme/src/node/autoFrontmatter.ts b/packages/theme/src/node/autoFrontmatter.ts index 644dc5f0..b4052a59 100644 --- a/packages/theme/src/node/autoFrontmatter.ts +++ b/packages/theme/src/node/autoFrontmatter.ts @@ -10,7 +10,10 @@ import type { import type { NotesItem } from '@vuepress-plume/vuepress-plugin-notes-data' import { format } from 'date-fns' import { customAlphabet } from 'nanoid' -import type { PlumeThemeLocaleOptions } from '../shared/index.js' +import type { + PlumeThemePluginOptions, + PlumeThemeLocaleOptions +} from '../shared/index.js' const nanoid = customAlphabet('0123456789abcdefghijklmnopqrstuvwxyz', 8) const require = createRequire(process.cwd()) @@ -28,6 +31,7 @@ const normalizePath = (dir: string) => { export default function autoFrontmatter( app: App, + options: PlumeThemePluginOptions, localeOption: PlumeThemeLocaleOptions ): AutoFrontmatterOptions { const sourceDir = app.dir.source() @@ -86,8 +90,9 @@ export default function autoFrontmatter( return dirList.length > 0 ? dirList[dirList.length - 1] : '' } return { - include: ['**/*.md'], - frontmatter: [ + include: options.frontmatter.include ?? ['**/*.{md,MD}'], + exclude: options.frontmatter.exclude ?? ['.vuepress/**/*', 'node_modules'], + frontmatter: options.frontmatter.frontmatter ?? [ localesNotesDirs.length ? { // note 首页链接 diff --git a/packages/theme/src/node/plugins.ts b/packages/theme/src/node/plugins.ts index 428a6c2d..6beba4bd 100644 --- a/packages/theme/src/node/plugins.ts +++ b/packages/theme/src/node/plugins.ts @@ -55,7 +55,7 @@ export const setupPlugins = ( : undefined, } as any, }), - autoFrontmatterPlugin(autoFrontmatter(app, localeOptions)), + autoFrontmatterPlugin(autoFrontmatter(app, options, localeOptions)), blogDataPlugin({ include: localeOptions.blog?.include, exclude: [ diff --git a/packages/theme/src/shared/options/plugins.ts b/packages/theme/src/shared/options/plugins.ts index 74abdac3..8a3e5135 100644 --- a/packages/theme/src/shared/options/plugins.ts +++ b/packages/theme/src/shared/options/plugins.ts @@ -6,6 +6,7 @@ import type { CanIUsePluginOptions } from '@vuepress-plume/vuepress-plugin-caniu import type { CopyCodeOptions } from '@vuepress-plume/vuepress-plugin-copy-code' import type { CommentPluginOptions } from 'vuepress-plugin-comment2' import type { MarkdownEnhanceOptions } from 'vuepress-plugin-md-enhance' +import type { AutoFrontmatterOptions } from '@vuepress-plume/vuepress-plugin-auto-frontmatter' export interface PlumeThemePluginOptions { /** @@ -49,4 +50,6 @@ export interface PlumeThemePluginOptions { seo?: false baiduTongji?: false | BaiduTongjiOptions + + frontmatter?: AutoFrontmatterOptions }