diff --git a/theme/src/node/autoFrontmatter/generator.ts b/theme/src/node/autoFrontmatter/generator.ts index 06cf7039..57d1835e 100644 --- a/theme/src/node/autoFrontmatter/generator.ts +++ b/theme/src/node/autoFrontmatter/generator.ts @@ -1,4 +1,4 @@ -import { fs } from 'vuepress/utils' +import { fs, hash } from 'vuepress/utils' import chokidar from 'chokidar' import { createFilter } from 'create-filter' import grayMatter from 'gray-matter' @@ -99,11 +99,16 @@ async function generator(file: AutoFrontmatterMarkdownFile): Promise { const formatter = current?.frontmatter || generate.global const { data, content } = grayMatter(file.content) + const beforeHash = hash(data) + for (const key in formatter) { const value = await formatter[key](data[key], file, data) data[key] = value ?? data[key] } + if (beforeHash === hash(data)) + return + try { const yaml = isEmptyObject(data) ? ''