From f862867a07fb09085a28bf134eb42276fde26540 Mon Sep 17 00:00:00 2001 From: Kristóf Marussy Date: Mon, 8 Apr 2024 16:20:58 +0200 Subject: docs: add Docusaurus website Also refactor Yarn buildscripts. --- subprojects/docs/docusaurus.config.ts | 86 +++++++++++++++++++++++++++++++++++ 1 file changed, 86 insertions(+) create mode 100644 subprojects/docs/docusaurus.config.ts (limited to 'subprojects/docs/docusaurus.config.ts') 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 @@ +/* + * Copyright (c) Facebook, Inc. and its affiliates. + * Copyright (c) 2024 The Refinery Authors + * + * SPDX-License-Identifier: MIT AND EPL-2.0 + */ + +import type { Options as PagesOptions } from '@docusaurus/plugin-content-pages'; +import type { Options as ClassicThemeOptions } from '@docusaurus/theme-classic'; +import type { UserThemeConfig } from '@docusaurus/theme-common'; +import type { Config } from '@docusaurus/types'; +import { Config as SwcConfig } from '@swc/core'; +import smartypants from 'remark-smartypants'; + +const markdownOptions = { + remarkPlugins: [[smartypants, { dashes: 'oldschool' }]], +}; + +export default { + title: 'Refinery', + url: 'https://refinery.tools', + baseUrl: '/', + baseUrlIssueBanner: false, + trailingSlash: true, + staticDirectories: ['static'], + plugins: [ + [ + '@docusaurus/plugin-content-pages', + markdownOptions satisfies PagesOptions, + ], + '@docusaurus/plugin-sitemap', + './src/plugins/swcMinifyPlugin.ts', + ], + themes: [ + [ + '@docusaurus/theme-classic', + { + customCss: [require.resolve('./src/css/custom.css')], + } satisfies ClassicThemeOptions, + ], + ], + themeConfig: { + colorMode: { + respectPrefersColorScheme: true, + }, + navbar: { + title: 'Refinery', + hideOnScroll: true, + }, + footer: { + copyright: ` + Copyright © 2021-2024 + The Refinery Authors. + Available under the + Eclipse Public License - v 2.0. + `, + }, + } satisfies UserThemeConfig, + webpack: { + // Speed up builds by using a native Javascript loader. + // See: https://github.com/facebook/docusaurus/issues/4765#issuecomment-841135926 + // But we follow the Docusaurus upstream from + // https://github.com/facebook/docusaurus/blob/791da2e4a1a53aa6309887059e3f112fcb35bec4/website/docusaurus.config.ts#L152-L171 + // and use swc instead of esbuild. + jsLoader: (isServer) => ({ + loader: require.resolve('swc-loader'), + options: { + jsc: { + parser: { + syntax: 'typescript', + tsx: true, + }, + transform: { + react: { + runtime: 'automatic', + }, + }, + target: 'es2022', + }, + module: { + type: isServer ? 'commonjs' : 'es6', + }, + } satisfies SwcConfig, + }), + }, +} satisfies Config; -- cgit v1.2.3-70-g09d2