feat: add optional 'updated' front matter for more precise updated time

This commit is contained in:
草师傅 2025-08-19 21:16:09 +08:00
parent 65fb7cf638
commit 81ddec2e15
Signed by: gb
GPG key ID: 43330A030E2D6478
2 changed files with 13 additions and 12 deletions

View file

@ -1,14 +1,15 @@
import { z, reference } from 'astro:content';
import {z, reference} from 'astro:content';
// @ts-ignore
export const posts = ({ image }) => z.object({
title: z.string(),
description: z.string().optional(),
draft: z.boolean().optional().default(false),
summary: z.string().optional(),
date: z.coerce.date(),
categories: z.union([z.array(z.string()), z.string()]).transform(val => Array.isArray(val) ? val : [val]).default(['uncategorized']),
tags: z.array(z.string()).optional(),
cover: image().optional(),
author: z.union([z.array(reference('authors')), reference('authors')]).optional(),
export const posts = ({image}) => z.object({
title: z.string(),
description: z.string().optional(),
draft: z.boolean().optional().default(false),
summary: z.string().optional(),
date: z.coerce.date(),
updated: z.coerce.date().optional(),
categories: z.union([z.array(z.string()), z.string()]).transform(val => Array.isArray(val) ? val : [val]).default(['uncategorized']),
tags: z.array(z.string()).optional(),
cover: image().optional(),
author: z.union([z.array(reference('authors')), reference('authors')]).optional(),
});

View file

@ -37,7 +37,7 @@ const wordcount = remarkPluginFrontmatter.wordcount;
const lastUpdated = remarkPluginFrontmatter.lastModified;
const pubDate = new Date(entry.data.date).toISOString().split('T')[0]
const lastUpdatedDate = new Date(lastUpdated).toISOString().split('T')[0]
const lastUpdatedDate = entry.data.updated ? new Date(entry.data.updated).toISOString().split('T')[0] : new Date(lastUpdated).toISOString().split('T')[0];
// Get author data
const authorData = await Promise.all((author).map((singleAuthor) => getEntry(singleAuthor).then(authorEntry => authorEntry?.data)))