Initial Commit

This commit is contained in:
2026-05-27 23:29:53 +01:00
commit fbc70f96e6
10000 changed files with 1102152 additions and 0 deletions

View File

@@ -0,0 +1,32 @@
# syntax=docker/dockerfile:1.7
#
# Build container for @suaveplan/docs.
#
# This image holds the Docusaurus toolchain (Node 22 LTS + npm + docusaurus
# deps). It is run via docker-compose to consume a snapshot of the repo's
# markdown content (mounted as `/work/docs`) and produce the static build
# output (mounted as `/work/build` -> host `apps/docs/build/`).
#
# The Bun bytecode-compiled runtime server lives outside this image.
FROM node:22-bookworm-slim
ENV DEBIAN_FRONTEND=noninteractive
ENV NODE_ENV=production
ENV NPM_CONFIG_FUND=false
ENV NPM_CONFIG_AUDIT=false
WORKDIR /work
# Toolchain deps first so the layer caches when only content changes.
COPY package.json ./
RUN npm install --no-save --omit=optional
# Site configuration — these change rarely, content changes often.
COPY docusaurus.config.ts sidebars.ts ./
COPY src ./src
COPY tsconfig.json ./
# Output to a subdirectory of the mounted volume so Docusaurus can rmdir
# its own output between runs without touching the bind mount itself.
CMD ["npx", "docusaurus", "build", "--out-dir", "/work/build/site"]

View File

@@ -0,0 +1,67 @@
import type { Config } from "@docusaurus/types";
import type * as Preset from "@docusaurus/preset-classic";
import { themes as prismThemes } from "prism-react-renderer";
const config: Config = {
title: "SuavePlan",
tagline: "Enterprise-grade monorepo, rebuilt bottom-up",
favicon: "img/favicon.ico",
url: "https://docs.suaveplan.com",
baseUrl: "/",
organizationName: "SuavePlan",
projectName: "genesis",
onBrokenLinks: "warn",
onBrokenMarkdownLinks: "warn",
// Use plain CommonMark rather than MDX so spec files containing
// ICU-style `{var}` braces and bare HTML-like tokens render as
// literals instead of being treated as JSX expressions.
markdown: {
format: "md",
},
i18n: {
defaultLocale: "en",
locales: ["en"],
},
presets: [
[
"classic",
{
docs: {
path: "docs",
routeBasePath: "/",
sidebarPath: "./sidebars.ts",
},
blog: false,
theme: {
customCss: "./src/css/custom.css",
},
} satisfies Preset.Options,
],
],
themeConfig: {
navbar: {
title: "SuavePlan",
items: [
{
type: "docSidebar",
sidebarId: "main",
position: "left",
label: "Docs",
},
],
},
prism: {
theme: prismThemes.github,
darkTheme: prismThemes.dracula,
additionalLanguages: ["bash", "json", "yaml", "toml"],
},
} satisfies Preset.ThemeConfig,
};
export default config;

View File

@@ -0,0 +1,35 @@
{
"name": "@suaveplan/docs-builder",
"version": "0.1.0",
"private": true,
"description": "Containerized Docusaurus build environment for @suaveplan/docs",
"scripts": {
"build": "docusaurus build",
"serve": "docusaurus serve --port 6043",
"clear": "docusaurus clear"
},
"dependencies": {
"@docusaurus/core": "^3.10.0",
"@docusaurus/preset-classic": "^3.10.0",
"@mdx-js/react": "^3.0.0",
"clsx": "^2.1.1",
"prism-react-renderer": "^2.4.0",
"react": "19.2.0",
"react-dom": "19.2.0"
},
"devDependencies": {
"@docusaurus/module-type-aliases": "^3.10.0",
"@docusaurus/types": "^3.10.0"
},
"browserslist": {
"production": [">0.5%", "not dead", "not op_mini all"],
"development": [
"last 3 chrome version",
"last 3 firefox version",
"last 5 safari version"
]
},
"engines": {
"node": ">=20"
}
}

View File

@@ -0,0 +1,7 @@
import type { SidebarsConfig } from "@docusaurus/plugin-content-docs";
const sidebars: SidebarsConfig = {
main: [{ type: "autogenerated", dirName: "." }],
};
export default sidebars;

View File

@@ -0,0 +1,13 @@
:root {
--ifm-color-primary: #2e7d8f;
--ifm-color-primary-dark: #2a7081;
--ifm-color-primary-darker: #286a7a;
--ifm-color-primary-darkest: #205864;
--ifm-color-primary-light: #328a9d;
--ifm-color-primary-lighter: #3590a4;
--ifm-color-primary-lightest: #3da4ba;
--ifm-code-font-size: 95%;
}
[data-theme="dark"] {
--ifm-color-primary: #61c4d8;
}

View File

@@ -0,0 +1,8 @@
{
"extends": "@docusaurus/tsconfig",
"compilerOptions": {
"baseUrl": ".",
"noEmit": true
},
"include": ["src/", "docusaurus.config.ts", "sidebars.ts"]
}