forked from yokinist/yokinist.me
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathindex.ts
76 lines (71 loc) · 1.71 KB
/
index.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
/* eslint-disable camelcase */
import type Gitalk from 'gitalk';
import type { ReactCusdis } from 'react-cusdis';
export type PostType = 'Post' | 'Page';
export type PostStatus = 'Idea' | 'Published' | 'Revise' | 'Published';
export type Post = {
id: string;
createdTime: string;
fullWidth: boolean;
title?: string;
slug?: string;
outer_link?: string;
summary?: string;
tags?: string[];
date: {
start_date?: string;
};
status?: [PostStatus];
type?: [PostType];
};
export type TagObj = { [key: string]: number };
export type BlogConfig = {
title: string;
author: string;
email: string;
link: string;
description: string;
lang: 'en-US' | 'zh-CN' | 'zh-HK' | 'zh-TW' | 'ja-JP' | 'es-ES';
appearance: 'dark' | 'light';
font: 'sans-serif' | 'serif';
lightBackground: `#${string}`;
darkBackground: `#${string}`;
path: string;
profileSlug: string;
since: number;
postsPerPage: number;
sortByDate: boolean;
showAbout: boolean;
showArchive: boolean;
autoCollapsedNavBar: boolean;
ogImageGenerateURL: string;
socialLink: string;
seo: {
keywords: string[];
googleSiteVerification: string;
};
notionPageId: string;
notionAccessToken: string;
analytics: {
provider: 'ga' | 'ackee';
ackeeConfig: {
tracker: string;
dataAckeeServer: string;
domainId: string;
};
gaConfig: {
measurementId: `G-${string}`;
};
};
comment: {
provider: 'gitalk' | 'utterances' | 'cusdis' | '';
gitalkConfig: Gitalk.GitalkOptions;
utterancesConfig: {
repo: string;
};
cusdisConfig: Parameters<typeof ReactCusdis>[0]['attrs'] & {
scriptSrc: string;
};
};
isProd: 'development' | 'preview' | 'production';
};