43 lines
831 B
TypeScript
43 lines
831 B
TypeScript
|
// types shared between server and client
|
||
|
|
||
|
export interface LocaleConfig {
|
||
|
lang: string;
|
||
|
title?: string;
|
||
|
description?: string;
|
||
|
head?: HeadConfig[];
|
||
|
label?: string;
|
||
|
selectText?: string;
|
||
|
}
|
||
|
|
||
|
export interface SiteData<ThemeConfig = any> {
|
||
|
base: string;
|
||
|
lang: string;
|
||
|
title: string;
|
||
|
description: string;
|
||
|
head: HeadConfig[];
|
||
|
themeConfig: ThemeConfig;
|
||
|
locales: Record<string, LocaleConfig>;
|
||
|
}
|
||
|
|
||
|
export type HeadConfig =
|
||
|
| [string, Record<string, string>]
|
||
|
| [string, Record<string, string>, string];
|
||
|
|
||
|
export interface PageData {
|
||
|
relativePath: string;
|
||
|
title: string;
|
||
|
description: string;
|
||
|
headers: Header[];
|
||
|
frontmatter: Record<string, any>;
|
||
|
lastUpdated: number;
|
||
|
content?: string;
|
||
|
html?: string;
|
||
|
}
|
||
|
|
||
|
export interface Header {
|
||
|
level: number;
|
||
|
title: string;
|
||
|
slug: string;
|
||
|
content: string;
|
||
|
}
|