static-cms/packages/docs/src/interface.ts
Daniel Lautzenheiser 799c7e6936
feat: v4.0.0 (#1016)
Co-authored-by: Denys Konovalov <kontakt@denyskon.de>
Co-authored-by: Mathieu COSYNS <64072917+Mathieu-COSYNS@users.noreply.github.com>
2024-01-03 15:14:09 -05:00

161 lines
3.3 KiB
TypeScript

import type { GrayMatterFile } from 'gray-matter';
export interface FileMatter {
readonly fileName: string;
readonly fullPath: string;
readonly matterResult: GrayMatterFile<string>;
}
export interface FooterLink {
readonly text: string;
readonly url: string;
}
export interface SiteConfig {
readonly base_url: string;
readonly repo_url: string;
readonly site_title: string;
readonly site_description: string;
readonly site_image: string;
readonly site_keywords: string[];
readonly footer: {
buttons: FooterLink[];
links: FooterLink[];
};
}
export interface Overview {
title: string;
description: string;
}
export interface GetStarted {
readonly title: string;
readonly url: string;
}
export interface CallToAction {
readonly title: string;
readonly subtitle: string;
readonly button_text: string;
readonly url: string;
}
export interface FeatureIntro {
title: string;
subtitle1: string;
subtitle2: string;
}
export interface Feature {
title: string;
description: string;
image: string;
}
export interface HomepageData {
readonly title: string;
readonly subtitle: string;
readonly get_started: GetStarted;
readonly overviews: Overview[];
readonly features_intro: FeatureIntro;
readonly features: Feature[];
readonly call_to_action: CallToAction;
}
export interface Release {
readonly date: string;
readonly version: string;
readonly type: 'major' | 'minor' | 'patch' | 'pre';
readonly description?: string;
}
export interface DocsData {
readonly group: string;
readonly title: string;
readonly weight: number;
readonly slug: string;
readonly beta?: boolean;
readonly deprecated?: boolean;
}
export interface DocsPageHeading {
readonly title: string;
readonly anchor: string;
}
export interface DocsPage {
readonly fullPath: string;
readonly headings: DocsPageHeading[];
readonly textContent: string;
readonly content: string;
readonly data: DocsData;
}
export interface DocsGroupLink {
readonly title: string;
readonly slug: string;
readonly beta: boolean;
readonly deprecated: boolean;
}
export interface DocsGroup {
readonly name: string;
readonly title: string;
readonly links: DocsGroupLink[];
}
export interface MenuGroup {
readonly name: string;
readonly title: string;
}
export interface Menu {
readonly docs: MenuGroup[];
}
export interface CommunityLink {
readonly title: string;
readonly description: string;
readonly url: string;
}
export interface CommunityLinksSection {
readonly title: string;
readonly links: CommunityLink[];
}
export interface CommunityData {
readonly title: string;
readonly subtitle: string;
readonly sections: CommunityLinksSection[];
}
export interface MenuLink {
readonly title: string;
readonly url: string;
readonly beta?: boolean;
readonly deprecated?: boolean;
readonly target?: '_blank';
}
export interface MenuLinkSubGroup {
readonly title: string;
readonly links: MenuLink[];
}
export interface MenuLinkGroup {
readonly title: string;
readonly path: string;
readonly groups: MenuLinkSubGroup[];
}
export type MenuItem = MenuLinkGroup | MenuLink;
export interface SearchablePage {
readonly title: string;
readonly url: string;
readonly headings: DocsPageHeading[];
readonly textContent: string;
}