89 lines
1.3 KiB
TypeScript
89 lines
1.3 KiB
TypeScript
import type { AUTO_MODE, DARK_MODE, LIGHT_MODE } from '@constants/constants'
|
|
|
|
export type SiteConfig = {
|
|
title: string
|
|
subtitle: string
|
|
|
|
lang: string
|
|
|
|
themeColor: {
|
|
hue: number
|
|
fixed: boolean
|
|
}
|
|
banner: {
|
|
enable: boolean
|
|
src: string
|
|
position?: 'top' | 'center' | 'bottom'
|
|
credit: {
|
|
enable: boolean
|
|
text: string
|
|
url?: string
|
|
}
|
|
}
|
|
toc: {
|
|
enable: boolean
|
|
depth: 1 | 2 | 3
|
|
}
|
|
|
|
favicon: Favicon[]
|
|
}
|
|
|
|
export type Favicon = {
|
|
src: string
|
|
theme?: 'light' | 'dark'
|
|
sizes?: string
|
|
}
|
|
|
|
export enum LinkPreset {
|
|
Home = 0,
|
|
Archive = 1,
|
|
About = 2,
|
|
}
|
|
|
|
export type NavBarLink = {
|
|
name: string
|
|
url: string
|
|
external?: boolean
|
|
}
|
|
|
|
export type NavBarConfig = {
|
|
links: (NavBarLink | LinkPreset)[]
|
|
}
|
|
|
|
export type ProfileConfig = {
|
|
avatar?: string
|
|
name: string
|
|
bio?: string
|
|
links: {
|
|
name: string
|
|
url: string
|
|
icon: string
|
|
}[]
|
|
}
|
|
|
|
export type LicenseConfig = {
|
|
enable: boolean
|
|
name: string
|
|
url: string
|
|
}
|
|
|
|
export type LIGHT_DARK_MODE =
|
|
| typeof LIGHT_MODE
|
|
| typeof DARK_MODE
|
|
| typeof AUTO_MODE
|
|
|
|
export type BlogPostData = {
|
|
body: string
|
|
title: string
|
|
published: Date
|
|
description: string
|
|
tags: string[]
|
|
draft?: boolean
|
|
image?: string
|
|
category?: string
|
|
prevTitle?: string
|
|
prevSlug?: string
|
|
nextTitle?: string
|
|
nextSlug?: string
|
|
}
|