diff options
Diffstat (limited to 'subprojects/docs/docusaurus.config.ts')
-rw-r--r-- | subprojects/docs/docusaurus.config.ts | 86 |
1 files changed, 86 insertions, 0 deletions
diff --git a/subprojects/docs/docusaurus.config.ts b/subprojects/docs/docusaurus.config.ts new file mode 100644 index 00000000..d0f1b33a --- /dev/null +++ b/subprojects/docs/docusaurus.config.ts | |||
@@ -0,0 +1,86 @@ | |||
1 | /* | ||
2 | * Copyright (c) Facebook, Inc. and its affiliates. | ||
3 | * Copyright (c) 2024 The Refinery Authors <https://refinery.tools/> | ||
4 | * | ||
5 | * SPDX-License-Identifier: MIT AND EPL-2.0 | ||
6 | */ | ||
7 | |||
8 | import type { Options as PagesOptions } from '@docusaurus/plugin-content-pages'; | ||
9 | import type { Options as ClassicThemeOptions } from '@docusaurus/theme-classic'; | ||
10 | import type { UserThemeConfig } from '@docusaurus/theme-common'; | ||
11 | import type { Config } from '@docusaurus/types'; | ||
12 | import { Config as SwcConfig } from '@swc/core'; | ||
13 | import smartypants from 'remark-smartypants'; | ||
14 | |||
15 | const markdownOptions = { | ||
16 | remarkPlugins: [[smartypants, { dashes: 'oldschool' }]], | ||
17 | }; | ||
18 | |||
19 | export default { | ||
20 | title: 'Refinery', | ||
21 | url: 'https://refinery.tools', | ||
22 | baseUrl: '/', | ||
23 | baseUrlIssueBanner: false, | ||
24 | trailingSlash: true, | ||
25 | staticDirectories: ['static'], | ||
26 | plugins: [ | ||
27 | [ | ||
28 | '@docusaurus/plugin-content-pages', | ||
29 | markdownOptions satisfies PagesOptions, | ||
30 | ], | ||
31 | '@docusaurus/plugin-sitemap', | ||
32 | './src/plugins/swcMinifyPlugin.ts', | ||
33 | ], | ||
34 | themes: [ | ||
35 | [ | ||
36 | '@docusaurus/theme-classic', | ||
37 | { | ||
38 | customCss: [require.resolve('./src/css/custom.css')], | ||
39 | } satisfies ClassicThemeOptions, | ||
40 | ], | ||
41 | ], | ||
42 | themeConfig: { | ||
43 | colorMode: { | ||
44 | respectPrefersColorScheme: true, | ||
45 | }, | ||
46 | navbar: { | ||
47 | title: 'Refinery', | ||
48 | hideOnScroll: true, | ||
49 | }, | ||
50 | footer: { | ||
51 | copyright: ` | ||
52 | Copyright © 2021-2024 | ||
53 | <a href="https://github.com/graphs4value/refinery/blob/main/CONTRIBUTORS.md" target="_blank">The Refinery Authors</a>. | ||
54 | Available under the | ||
55 | <a href="https://www.eclipse.org/legal/epl-2.0/" target="_blank">Eclipse Public License - v 2.0</a>. | ||
56 | `, | ||
57 | }, | ||
58 | } satisfies UserThemeConfig, | ||
59 | webpack: { | ||
60 | // Speed up builds by using a native Javascript loader. | ||
61 | // See: https://github.com/facebook/docusaurus/issues/4765#issuecomment-841135926 | ||
62 | // But we follow the Docusaurus upstream from | ||
63 | // https://github.com/facebook/docusaurus/blob/791da2e4a1a53aa6309887059e3f112fcb35bec4/website/docusaurus.config.ts#L152-L171 | ||
64 | // and use swc instead of esbuild. | ||
65 | jsLoader: (isServer) => ({ | ||
66 | loader: require.resolve('swc-loader'), | ||
67 | options: { | ||
68 | jsc: { | ||
69 | parser: { | ||
70 | syntax: 'typescript', | ||
71 | tsx: true, | ||
72 | }, | ||
73 | transform: { | ||
74 | react: { | ||
75 | runtime: 'automatic', | ||
76 | }, | ||
77 | }, | ||
78 | target: 'es2022', | ||
79 | }, | ||
80 | module: { | ||
81 | type: isServer ? 'commonjs' : 'es6', | ||
82 | }, | ||
83 | } satisfies SwcConfig, | ||
84 | }), | ||
85 | }, | ||
86 | } satisfies Config; | ||