aboutsummaryrefslogtreecommitdiffstats
path: root/subprojects/docs/docusaurus.config.ts
diff options
context:
space:
mode:
Diffstat (limited to 'subprojects/docs/docusaurus.config.ts')
-rw-r--r--subprojects/docs/docusaurus.config.ts86
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
8import type { Options as PagesOptions } from '@docusaurus/plugin-content-pages';
9import type { Options as ClassicThemeOptions } from '@docusaurus/theme-classic';
10import type { UserThemeConfig } from '@docusaurus/theme-common';
11import type { Config } from '@docusaurus/types';
12import { Config as SwcConfig } from '@swc/core';
13import smartypants from 'remark-smartypants';
14
15const markdownOptions = {
16 remarkPlugins: [[smartypants, { dashes: 'oldschool' }]],
17};
18
19export 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 &copy; 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;