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/src/css/custom.css | 40 ++++++++++++++++++++++++ subprojects/docs/src/pages/index.tsx | 19 ++++++++++++ subprojects/docs/src/plugins/swcMinifyPlugin.ts | 41 +++++++++++++++++++++++++ 3 files changed, 100 insertions(+) create mode 100644 subprojects/docs/src/css/custom.css create mode 100644 subprojects/docs/src/pages/index.tsx create mode 100644 subprojects/docs/src/plugins/swcMinifyPlugin.ts (limited to 'subprojects/docs/src') diff --git a/subprojects/docs/src/css/custom.css b/subprojects/docs/src/css/custom.css new file mode 100644 index 00000000..115d7ac9 --- /dev/null +++ b/subprojects/docs/src/css/custom.css @@ -0,0 +1,40 @@ +/* + * SPDX-FileCopyrightText: 2024 The Refinery Authors + * + * SPDX-License-Identifier: EPL-2.0 + */ + +@import '@fontsource-variable/open-sans/wdth.css'; +@import '@fontsource-variable/open-sans/wdth-italic.css'; +@import '@fontsource-variable/jetbrains-mono/wght.css'; +@import '@fontsource-variable/jetbrains-mono/wght-italic.css'; + +:root { + --ifm-font-family-base: 'Open Sans Variable', + 'Open Sans', + 'Roboto', + 'Helvetica', + 'Arial', + sans-serif; + --ifm-fony-family-monospace: 'JetBrains Mono Variable', + 'JetBrains Mono', + 'Cascadia Code', + 'Fira Code', + monospace; + --ifm-code-font-size: 95%; + --docusaurus-highlighted-code-line-bg: rgba(0, 0, 0, 0.1); +} + +[data-theme='dark'] { + --docusaurus-highlighted-code-line-bg: rgba(0, 0, 0, 0.3); +} + +code, +kbd { + font-feature-settings: 'liga', 'calt'; +} + +.navbar__title { + font-weight: 500; + font-size: 1.25rem; +} diff --git a/subprojects/docs/src/pages/index.tsx b/subprojects/docs/src/pages/index.tsx new file mode 100644 index 00000000..256d12ac --- /dev/null +++ b/subprojects/docs/src/pages/index.tsx @@ -0,0 +1,19 @@ +/* + * SPDX-FileCopyrightText: 2024 The Refinery Authors + * + * SPDX-License-Identifier: EPL-2.0 + */ + +import Layout from '@theme/Layout'; + +export default function Home() { + return ( + +
+
+

Refinery

+
+
+
+ ); +} diff --git a/subprojects/docs/src/plugins/swcMinifyPlugin.ts b/subprojects/docs/src/plugins/swcMinifyPlugin.ts new file mode 100644 index 00000000..ecac654b --- /dev/null +++ b/subprojects/docs/src/plugins/swcMinifyPlugin.ts @@ -0,0 +1,41 @@ +/* + * SPDX-FileCopyrightText: 2024 The Refinery Authors + * + * SPDX-License-Identifier: EPL-2.0 + */ + +import type { Plugin } from '@docusaurus/types'; +import TerserPlugin from 'terser-webpack-plugin'; + +/** + * A Docusarus plugin that replaces the built-in Javascript minifier with swc. + * + * See + * https://github.com/facebook/docusaurus/issues/4765#issuecomment-1679863984 + * but we use swc instead of esbuild. + * + * @returns The Docusarus plugin. + */ +export default function swcMinifyPlugin(): Plugin { + return { + name: 'refinery-swc-minify-plugin', + configureWebpack: (config) => ({ + mergeStrategy: { + 'optimization.minimizer': 'replace', + }, + optimization: { + minimizer: + config.optimization?.minimizer?.map((plugin) => { + // `instanceof` seems to be broken, because a different version of + // `TerserPlguin` is coming from Docusaurus than the one we import. + if (plugin?.constructor.name === TerserPlugin.name) { + return new TerserPlugin({ + minify: TerserPlugin.swcMinify, + }); + } + return plugin; + }) ?? [], + }, + }), + }; +} -- cgit v1.2.3-54-g00ecf