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
|
import type * as Preset from "@docusaurus/preset-classic";
import type { Config } from "@docusaurus/types";
import type * as OpenApiPlugin from "docusaurus-plugin-openapi-docs";
import { themes as prismThemes } from "prism-react-renderer";
const config: Config = {
title: "Karakeep Docs",
tagline: "Dinosaurs are cool",
favicon: "img/favicon.ico",
// Set the production url of your site here
url: "https://docs.karakeep.app",
// Set the /<baseUrl>/ pathname under which your site is served
// For GitHub pages deployment, it is often '/<projectName>/'
baseUrl: "/",
// GitHub pages deployment config.
// If you aren't using GitHub pages, you don't need these.
organizationName: "karakeep-app", // Usually your GitHub org/user name.
projectName: "karakeep", // Usually your repo name.
onBrokenLinks: "throw",
onBrokenMarkdownLinks: "warn",
// Even if you don't use internationalization, you can use this field to set
// useful metadata like html lang. For example, if your site is Chinese, you
// may want to replace "en" with "zh-Hans".
i18n: {
defaultLocale: "en",
locales: ["en"],
},
presets: [
[
"classic",
{
docs: {
sidebarPath: "./sidebars.ts",
sidebarItemsGenerator: async ({
defaultSidebarItemsGenerator,
...args
}) => {
const sidebarItems = await defaultSidebarItemsGenerator(args);
return sidebarItems.filter(
(item) => !(item.type == "category" && item.label === "API"),
);
},
editUrl: "https://github.com/karakeep-app/karakeep/tree/main/docs/",
routeBasePath: "/",
docItemComponent: "@theme/ApiItem",
},
blog: false,
theme: {
customCss: "./src/css/custom.css",
},
} satisfies Preset.Options,
],
],
plugins: [
[
"docusaurus-plugin-openapi-docs",
{
id: "api",
docsPluginId: "classic",
config: {
karakeep: {
specPath: "../packages/open-api/karakeep-openapi-spec.json",
outputDir: "docs/api",
sidebarOptions: {
groupPathsBy: "tag",
},
} satisfies OpenApiPlugin.Options,
},
},
],
],
themes: ["docusaurus-theme-openapi-docs"],
themeConfig: {
image: "img/opengraph-image.png",
navbar: {
title: "",
logo: {
alt: "Karakeep Logo",
src: "img/logo-full.svg",
srcDark: "img/logo-full-white.svg",
width: "120px",
},
items: [
{
type: "docsVersionDropdown",
position: "right",
},
{
href: "https://karakeep.app",
label: "Homepage",
position: "right",
},
{
href: "https://github.com/karakeep-app/karakeep",
label: "GitHub",
position: "right",
},
{
href: "https://discord.gg/NrgeYywsFh",
label: "Discord",
position: "right",
},
],
},
algolia: {
appId: 'V93C1M14G6',
// Public API key: it is safe to commit it
apiKey: '0eb8853d9740822fb9d21620d5515f35',
indexName: 'karakeep',
contextualSearch: true,
insights: true,
},
prism: {
theme: prismThemes.github,
darkTheme: prismThemes.dracula,
},
} satisfies Preset.ThemeConfig,
};
export default config;
|