Files
Cloud-Blog/app/types/nav.ts
2026-01-18 12:32:55 +08:00

98 lines
1.5 KiB
TypeScript

export interface NavLink {
name: string;
path: string;
icon?: string;
children?: NavLink[];
}
export interface SiteMeta {
title: string;
description?: string;
keywords?: string[];
author?: string;
url?: string;
email?: string;
lang?: string;
favicon?: string;
startTime?: string;
}
export interface TypedOptions {
enable: boolean;
typeSpeed?: number;
backSpeed?: number;
loop?: boolean;
backDelay?: number;
}
export interface Hero {
title?: string;
description?: string | string[];
typed?: TypedOptions;
}
export interface Profile {
avatar?: string;
birthday?: string;
}
export interface SocialLink {
name: string;
url: string;
}
export interface LineInfo {
name: string;
url: string;
ping?: boolean;
}
export interface Theme {
background?: string;
backgroundMobile?: string;
color?: string;
}
export interface Footer {
beian?: string;
beianLink?: string;
customHtml?: string;
hitokoto?: {
enable: boolean;
type?: string;
};
}
export interface TraceConfig {
enable?: boolean;
script?: string;
}
export interface CommentConfig {
twikoo?: {
enable?: boolean;
envId?: string;
};
}
export interface AdConfig {
enable?: boolean;
ads?: [{ body?: string; link?: string }];
}
export interface SiteConfig {
siteMeta: SiteMeta;
hero: Hero;
profile: Profile;
socialLinks: SocialLink[];
navbar: {
links: NavLink[];
};
lines?: LineInfo[];
theme?: Theme;
footer?: Footer;
traceConfig?: TraceConfig;
comment?: CommentConfig;
ad?: AdConfig;
}