feat: Add event collection and event page structure
All checks were successful
SteamWarCI Build successful
All checks were successful
SteamWarCI Build successful
- Introduced a new events collection in config.ts with schema validation. - Created a new event markdown file for the WarGear event. - Updated German translations to include new event-related strings. - Modified PageLayout to support a wide layout option. - Enhanced announcements page to improve tag filtering and post rendering. - Implemented dynamic event pages with detailed event information and fight plans. - Added an index page for events to list all upcoming events.
This commit is contained in:
@@ -20,6 +20,7 @@
|
||||
import { defineCollection, reference, z } from "astro:content";
|
||||
import { docsLoader } from "@astrojs/starlight/loaders";
|
||||
import { docsSchema } from "@astrojs/starlight/schema";
|
||||
import { EventViewConfigSchema } from "@components/event/types";
|
||||
|
||||
export const pagesSchema = z.object({
|
||||
title: z.string().min(1).max(80),
|
||||
@@ -109,6 +110,19 @@ export const publics = defineCollection({
|
||||
}),
|
||||
});
|
||||
|
||||
export const events = defineCollection({
|
||||
type: "content",
|
||||
schema: ({ image }) =>
|
||||
z.object({
|
||||
eventId: z.number().positive(),
|
||||
image: image().optional(),
|
||||
mode: reference("modes").optional(),
|
||||
hideTeamSize: z.boolean().optional().default(false),
|
||||
verwantwortlich: z.string().optional(),
|
||||
viewConfig: EventViewConfigSchema.optional(),
|
||||
}),
|
||||
});
|
||||
|
||||
export const collections = {
|
||||
pages: pages,
|
||||
help: help,
|
||||
@@ -118,4 +132,5 @@ export const collections = {
|
||||
announcements: announcements,
|
||||
publics: publics,
|
||||
docs: defineCollection({ loader: docsLoader(), schema: docsSchema() }),
|
||||
events: events,
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user