diff --git a/src/helpers/ArticleHelper.ts b/src/helpers/ArticleHelper.ts index 0c668202..4e8acbc0 100644 --- a/src/helpers/ArticleHelper.ts +++ b/src/helpers/ArticleHelper.ts @@ -502,7 +502,9 @@ export class ArticleHelper { */ public static async updateDates(article: ParsedFrontMatter) { const contentType = await ArticleHelper.getContentType(article); - const dateFields = contentType.fields.filter((field) => field.type === 'datetime'); + const dateFields = contentType.fields.filter( + (field) => field.type === 'datetime' && !field.isPublishDate + ); for (const dateField of dateFields) { if (article?.data[dateField.name]) { diff --git a/src/parsers/ParserEngines.ts b/src/parsers/ParserEngines.ts index 97191921..59c72a0d 100644 --- a/src/parsers/ParserEngines.ts +++ b/src/parsers/ParserEngines.ts @@ -40,7 +40,10 @@ export const Engines = { return toml.parse(value); }, stringify: (value: any) => { - return toml.stringify(value); + const result = toml.stringify(value); + // Preserve the original datetime format by removing unnecessary zero milliseconds + // e.g. 2025-09-12T10:00:00.000Z -> 2025-09-12T10:00:00Z + return result.replace(/(\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2})\.000([Z+-][\d:]*)?\b/g, '$1$2'); } }, yaml: {