-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy paththeme.config.tsx
138 lines (127 loc) · 3.03 KB
/
theme.config.tsx
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
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
import Image from "next/image"
import { useConfig, DocsThemeConfig } from "nextra-theme-docs"
import { Blog, Comments, Footer } from "./components"
import { useRouter } from "nextra/hooks"
import Link from "next/link"
const config: DocsThemeConfig = {
feedback: {
useLink: () => "https://discord.gg/73jbP8pVsr",
},
editLink: { component: () => null },
// i18n
i18n: [
{
locale: "en",
name: "English",
},
{
locale: "fr",
name: "Français",
},
],
// Main theme
head: function Head() {
const config = useConfig()
const title =
config.filePath !== "pages/en/index.mdx" &&
config.filePath !== "pages/fr/index.mdx"
? `${config.title} - Forgen`
: "Forgen"
return (
<>
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta property="og:title" content={config.frontMatter.title ?? title} />
<meta
property="og:description"
content={
config.frontMatter.description ??
"A craftsmanship approach of building web applications"
}
/>
<meta
property="og:image"
content={config.frontMatter.image ?? "/logo.png"}
/>
{config.frontMatter.publishDate && (
<meta
property="og:publish_date"
content={config.frontMatter.publishDate}
/>
)}
<link
rel="apple-touch-icon"
sizes="180x180"
href="/apple-touch-icon.png"
/>
<link
rel="icon"
type="image/png"
sizes="32x32"
href="/favicon-32x32.png"
/>
<link
rel="icon"
type="image/png"
sizes="16x16"
href="/favicon-16x16.png"
/>
<title>{title}</title>
</>
)
},
logo: function Logo() {
const { locale } = useRouter()
return (
<div className="w-24">
<Link href={`/${locale}`}>
<Image src="/logo.png" height={24} width={24} alt="Forgen" />
</Link>
</div>
)
},
logoLink: false,
main: function Main(props: { children: React.ReactNode }) {
const config = useConfig()
if (config.filePath.match(/^pages\/([a-z]+)\/blog\/(?!index\.mdx$)(.+)$/)) {
return (
<div>
<Blog.Cover />
<Blog.Details />
{props.children}
<Comments />
</div>
)
}
return props.children
},
search: {
placeholder: function Placeholder() {
const { locale } = useRouter()
switch (locale) {
case "fr":
return "Rechercher Forgen..."
default:
return "Search Forgen..."
}
},
},
sidebar: {
defaultMenuCollapseLevel: 1,
},
footer: {
component: <Footer />,
},
notFound: {
content: function NotFound() {
return "Hello"
},
},
// External links
chat: {
link: "https://discord.gg/73jbP8pVsr",
},
project: {
link: "https://github.com/forgen-org",
},
}
export default config