Improved markdown rendering, allow hiding components

This commit is contained in:
Endeavorance 2025-03-20 16:51:34 -04:00
parent d200d48903
commit a9a979c5f8
10 changed files with 598 additions and 100 deletions

View file

@ -18,6 +18,7 @@ import { z } from "zod";
const Base = z.object({
$define: z.string(),
$hidden: z.boolean().default(false),
id: z.string(), // TODO: Validate ID shapes
name: z.string().default("Unnamed Component"),
description: z.string().default("No description provided"),
@ -306,9 +307,13 @@ function parseSpeciesDefinition(obj: unknown): ParsedComponent {
};
}
export function parsePlaybillComponent(obj: unknown): ParsedComponent {
export function parsePlaybillComponent(obj: unknown): ParsedComponent | null {
const baseParse = Base.parse(obj);
if (baseParse.$hidden) {
return null;
}
const type = parseComponentType(baseParse.$define);
const schema = SchemaMapping[type];
const component = schema.parse(obj);