@astrojs/starlight
Version:
Build beautiful, high-performance documentation websites with Astro
19 lines (16 loc) • 724 B
text/typescript
import { z } from 'astro/zod';
export const HeadConfigSchema = () =>
z
.array(
z.object({
/** Name of the HTML tag to add to `<head>`, e.g. `'meta'`, `'link'`, or `'script'`. */
tag: z.enum(['title', 'base', 'link', 'style', 'meta', 'script', 'noscript', 'template']),
/** Attributes to set on the tag, e.g. `{ rel: 'stylesheet', href: '/custom.css' }`. */
attrs: z.record(z.union([z.string(), z.boolean(), z.undefined()])).optional(),
/** Content to place inside the tag (optional). */
content: z.string().optional(),
})
)
.default([]);
export type HeadUserConfig = z.input<ReturnType<typeof HeadConfigSchema>>;
export type HeadConfig = z.output<ReturnType<typeof HeadConfigSchema>>;