From aac815799fadbf473f3e92ca0acb09047d7d4846 Mon Sep 17 00:00:00 2001 From: Thomas Neil James Shadwell Date: Mon, 9 Dec 2024 14:12:57 +0900 Subject: [PATCH] Begin on code to automatically generate article routes. --- .../zemn.me/components/Article/types/BUILD.bazel | 2 ++ .../components/Article/types/article_types.tsx | 15 +++++++++++++++ 2 files changed, 17 insertions(+) diff --git a/project/zemn.me/components/Article/types/BUILD.bazel b/project/zemn.me/components/Article/types/BUILD.bazel index 38f6818a3a..37ace76f5e 100644 --- a/project/zemn.me/components/Article/types/BUILD.bazel +++ b/project/zemn.me/components/Article/types/BUILD.bazel @@ -8,6 +8,8 @@ ts_project( "//:base_defs", "//:node_modules/@types/react", "//:node_modules/@types/react-dom", + "//:node_modules/zod", + "//ts/time", ], ) diff --git a/project/zemn.me/components/Article/types/article_types.tsx b/project/zemn.me/components/Article/types/article_types.tsx index f59c89954b..21cd76bf5d 100644 --- a/project/zemn.me/components/Article/types/article_types.tsx +++ b/project/zemn.me/components/Article/types/article_types.tsx @@ -1,4 +1,19 @@ import { ReactElement } from "react" +import { z } from "zod" + +import { nativeDateFromUnknownSimpleDate } from "#root/ts/time/date.js" + +export const articleFrontmatter = z.object({ + title: z.string().optional(), + subtitle: z.string().optional(), + date: nativeDateFromUnknownSimpleDate.optional(), + tags: z.string().array().optional(), + url_safe_name: z.string().optional() +}); + +export interface ArticleProps { + frontmatter: z.TypeOf +} export interface ArticleProps { readonly title?: string