Weighs the soul of incoming HTTP requests to stop AI crawlers
1import { themes as prismThemes } from 'prism-react-renderer';
2import type { Config } from '@docusaurus/types';
3import type * as Preset from '@docusaurus/preset-classic';
4
5// This runs in Node.js - Don't use client-side code here (browser APIs, JSX...)
6
7const config: Config = {
8 title: 'Anubis',
9 tagline: 'Weigh the soul of incoming HTTP requests to protect your website!',
10 favicon: 'img/favicon.ico',
11
12 // Set the production url of your site here
13 url: 'https://anubis.techaro.lol',
14 // Set the /<baseUrl>/ pathname under which your site is served
15 // For GitHub pages deployment, it is often '/<projectName>/'
16 baseUrl: '/',
17
18 // GitHub pages deployment config.
19 // If you aren't using GitHub pages, you don't need these.
20 organizationName: 'TecharoHQ', // Usually your GitHub org/user name.
21 projectName: 'anubis', // Usually your repo name.
22
23 onBrokenLinks: 'throw',
24 onBrokenMarkdownLinks: 'warn',
25
26 // Even if you don't use internationalization, you can use this field to set
27 // useful metadata like html lang. For example, if your site is Chinese, you
28 // may want to replace "en" with "zh-Hans".
29 i18n: {
30 defaultLocale: 'en',
31 locales: ['en'],
32 },
33
34 markdown: {
35 mermaid: true,
36 },
37 themes: ['@docusaurus/theme-mermaid'],
38
39 presets: [
40 [
41 'classic',
42 {
43 blog: {
44 showReadingTime: true,
45 feedOptions: {
46 type: ['rss', 'atom', "json"],
47 xslt: true,
48 },
49 editUrl: 'https://github.com/TecharoHQ/anubis/tree/main/docs/',
50 onInlineTags: 'warn',
51 onInlineAuthors: 'warn',
52 onUntruncatedBlogPosts: 'throw',
53 },
54 docs: {
55 sidebarPath: './sidebars.ts',
56 editUrl: 'https://github.com/TecharoHQ/anubis/tree/main/docs/',
57 },
58 theme: {
59 customCss: './src/css/custom.css',
60 },
61 } satisfies Preset.Options,
62 ],
63 ],
64
65 themeConfig: {
66 colorMode: {
67 respectPrefersColorScheme: true,
68 },
69 // Replace with your project's social card
70 image: 'img/social-card.jpg',
71 navbar: {
72 title: 'Anubis',
73 logo: {
74 alt: 'A happy jackal woman with brown hair and red eyes',
75 src: 'img/favicon.webp',
76 },
77 items: [
78 { to: '/blog', label: 'Blog', position: 'left' },
79 {
80 type: 'docSidebar',
81 sidebarId: 'tutorialSidebar',
82 position: 'left',
83 label: 'Docs',
84 },
85 {
86 to: '/docs/admin/botstopper',
87 label: "Unbranded Version",
88 position: "left"
89 },
90 {
91 href: 'https://github.com/TecharoHQ/anubis',
92 label: 'GitHub',
93 position: 'right',
94 },
95 {
96 href: 'https://github.com/sponsors/Xe',
97 label: "Sponsor the Project",
98 position: 'right'
99 },
100 ],
101 },
102 footer: {
103 style: 'dark',
104 links: [
105 {
106 title: 'Docs',
107 items: [
108 {
109 label: 'Intro',
110 to: '/docs/',
111 },
112 {
113 label: "Installation",
114 to: "/docs/admin/installation",
115 },
116 ],
117 },
118 {
119 title: 'Community',
120 items: [
121 {
122 label: 'GitHub Discussions',
123 href: 'https://github.com/TecharoHQ/anubis/discussions',
124 },
125 {
126 label: 'Bluesky',
127 href: 'https://bsky.app/profile/techaro.lol',
128 },
129 ],
130 },
131 {
132 title: 'More',
133 items: [
134 {
135 label: 'Blog',
136 to: '/blog',
137 },
138 {
139 label: 'GitHub',
140 href: 'https://github.com/TecharoHQ/anubis',
141 },
142 ],
143 },
144 ],
145 copyright: `Copyright © ${new Date().getFullYear()} Techaro. Made with ❤️ in 🇨🇦.`,
146 },
147 prism: {
148 theme: prismThemes.github,
149 darkTheme: prismThemes.dracula,
150 magicComments: [
151 {
152 className: 'code-block-diff-add-line',
153 line: 'diff-add'
154 },
155 {
156 className: 'code-block-diff-remove-line',
157 line: 'diff-remove'
158 }
159 ],
160 },
161 } satisfies Preset.ThemeConfig,
162};
163
164export default config;