refactor: refactor article list component and routing logic, optimize multilingual article display

This commit is contained in:
radishzzz 2025-03-11 09:52:49 +00:00
parent e5165dd740
commit ff1673da9c
19 changed files with 609 additions and 690 deletions

View file

@ -2,23 +2,24 @@ import { defineCollection, z } from 'astro:content'
const postsCollection = defineCollection({
schema: z.object({
// Basic
title: z.string(),
published: z.date(),
// Optional
updated: z.date().optional(),
tags: z.array(z.string()).optional().default([]),
description: z.string().optional().default(''),
image: z.string().optional().default(''),
// Advanced
pin: z.number().int().min(0).max(99).optional().default(0),
toc: z.boolean().optional().default(false),
draft: z.boolean().optional().default(false),
toc: z.boolean().optional().default(false),
lang: z.string().optional().default(''),
abbrlink: z.string().optional().default('').refine(
abbrlink => !abbrlink || /^[a-z0-9\-]*$/.test(abbrlink),
{ message: 'Abbrlink can only contain letters, numbers, hyphens and underscores' },
{ message: 'Abbrlink can only contain lowercase letters, numbers and hyphens' },
),
// Auto-generated
minutes: z.number().optional(),
image: z.string().optional().default(''),
description: z.string().optional().default(''),
}),
})