From c620c70c076aeabc3f5f912ec765da33bc5df0c7 Mon Sep 17 00:00:00 2001 From: Chung-Hsuan Tsai Date: Sat, 15 Nov 2025 17:25:33 +0800 Subject: [PATCH 1/4] feat: configure starlight integration and add logo assets --- .github/CODEOWNERS | 1 + astro.config.mjs | 62 ++++++++++++++++++++++++++++---------------- package.json | 1 + pnpm-lock.yaml | 8 ++++++ src/assets/logo.png | Bin 0 -> 101010 bytes src/styles/app.css | 3 +++ 6 files changed, 53 insertions(+), 22 deletions(-) create mode 100644 .github/CODEOWNERS create mode 100644 src/assets/logo.png create mode 100644 src/styles/app.css diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS new file mode 100644 index 0000000..558a512 --- /dev/null +++ b/.github/CODEOWNERS @@ -0,0 +1 @@ +* @iasthc \ No newline at end of file diff --git a/astro.config.mjs b/astro.config.mjs index 7563a5e..e8ade20 100644 --- a/astro.config.mjs +++ b/astro.config.mjs @@ -1,27 +1,45 @@ // @ts-check -import { defineConfig } from 'astro/config'; -import starlight from '@astrojs/starlight'; +import { defineConfig } from "astro/config"; +import starlight from "@astrojs/starlight"; // https://astro.build/config export default defineConfig({ - site: 'https://otterscale.com', - integrations: [ - starlight({ - title: 'My Docs', - social: [{ icon: 'github', label: 'GitHub', href: 'https://github.com/withastro/starlight' }], - sidebar: [ - { - label: 'Guides', - items: [ - // Each item here is one entry in the navigation menu. - { label: 'Example Guide', slug: 'guides/example' }, - ], - }, - { - label: 'Reference', - autogenerate: { directory: 'reference' }, - }, - ], - }), - ], + site: "https://otterscale.com", + integrations: [ + starlight({ + title: "OtterScale Docs", + logo: { + src: "./src/assets/logo.png", + }, + social: [ + { + icon: "github", + label: "GitHub", + href: "https://github.com/otterscale/otterscale", + }, + ], + editLink: { + baseUrl: + "https://github.com/otterscale/otterscale.github.io/edit/main/docs/", + }, + customCss: [ + "@fontsource/geist/400.css", + "@fontsource/geist/600.css", + "./src/styles/app.css", + ], + sidebar: [ + { + label: "Guides", + items: [ + // Each item here is one entry in the navigation menu. + { label: "Example Guide", slug: "guides/example" }, + ], + }, + { + label: "Reference", + autogenerate: { directory: "reference" }, + }, + ], + }), + ], }); diff --git a/package.json b/package.json index d857806..37fee98 100644 --- a/package.json +++ b/package.json @@ -11,6 +11,7 @@ }, "dependencies": { "@astrojs/starlight": "^0.36.2", + "@fontsource/geist": "^5.2.8", "astro": "^5.6.1", "sharp": "^0.34.2" } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index aa0dc93..1746808 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -11,6 +11,9 @@ importers: '@astrojs/starlight': specifier: ^0.36.2 version: 0.36.2(astro@5.15.7(@types/node@24.10.1)(rollup@4.53.2)(typescript@5.9.3)) + '@fontsource/geist': + specifier: ^5.2.8 + version: 5.2.8 astro: specifier: ^5.6.1 version: 5.15.7(@types/node@24.10.1)(rollup@4.53.2)(typescript@5.9.3) @@ -251,6 +254,9 @@ packages: '@expressive-code/plugin-text-markers@0.41.3': resolution: {integrity: sha512-SN8tkIzDpA0HLAscEYD2IVrfLiid6qEdE9QLlGVSxO1KEw7qYvjpbNBQjUjMr5/jvTJ7ys6zysU2vLPHE0sb2g==} + '@fontsource/geist@5.2.8': + resolution: {integrity: sha512-pI54klK6vz8fVpAVyV+iODGLEzw73cs1XJqV9PIXgW8MYMmBcwK6lKKaWqJrNHwEx8ppz9cuhussb6arXQ/PVQ==} + '@img/colour@1.0.0': resolution: {integrity: sha512-A5P/LfWGFSl6nsckYtjw9da+19jB8hkJ6ACTGcDfEJ0aE+l2n2El7dsVM7UVHZQ9s2lmYMWlrS21YLy2IR1LUw==} engines: {node: '>=18'} @@ -2020,6 +2026,8 @@ snapshots: dependencies: '@expressive-code/core': 0.41.3 + '@fontsource/geist@5.2.8': {} + '@img/colour@1.0.0': {} '@img/sharp-darwin-arm64@0.34.5': diff --git a/src/assets/logo.png b/src/assets/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..cdd69ffbb7f417b52f5c04ea046b88eb5e2f00c0 GIT binary patch literal 101010 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

+%_= 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 HoD!M<8!z?i literal 0 HcmV?d00001 diff --git a/src/styles/app.css b/src/styles/app.css new file mode 100644 index 0000000..992b96f --- /dev/null +++ b/src/styles/app.css @@ -0,0 +1,3 @@ +:root { + --sl-font: 'Geist', serif; +} \ No newline at end of file From a28cd30320d317025c525238febca302d35d5956 Mon Sep 17 00:00:00 2001 From: Chung-Hsuan Tsai Date: Sat, 15 Nov 2025 17:34:37 +0800 Subject: [PATCH 2/4] feat: add Prettier configuration and ignore files --- .prettierignore | 9 +++++++++ .prettierrc | 6 ++++++ 2 files changed, 15 insertions(+) create mode 100644 .prettierignore create mode 100644 .prettierrc diff --git a/.prettierignore b/.prettierignore new file mode 100644 index 0000000..7d74fe2 --- /dev/null +++ b/.prettierignore @@ -0,0 +1,9 @@ +# Package Managers +package-lock.json +pnpm-lock.yaml +yarn.lock +bun.lock +bun.lockb + +# Miscellaneous +/static/ diff --git a/.prettierrc b/.prettierrc new file mode 100644 index 0000000..36c4f22 --- /dev/null +++ b/.prettierrc @@ -0,0 +1,6 @@ +{ + "useTabs": true, + "singleQuote": true, + "trailingComma": "none", + "printWidth": 100 +} \ No newline at end of file From 58e21b39cf136189f4fd3576eef0f04748116de3 Mon Sep 17 00:00:00 2001 From: Chung-Hsuan Tsai Date: Sat, 15 Nov 2025 17:35:43 +0800 Subject: [PATCH 3/4] feat: integrate Tailwind CSS and update styles --- README.md | 14 +- astro.config.mjs | 79 ++++---- package.json | 6 +- pnpm-lock.yaml | 400 +++++++++++++++++++++++++++++++++++-- src/content/docs/index.mdx | 13 +- src/styles/app.css | 3 - src/styles/global.css | 13 ++ 7 files changed, 461 insertions(+), 67 deletions(-) delete mode 100644 src/styles/app.css create mode 100644 src/styles/global.css diff --git a/README.md b/README.md index 909d737..23d6b01 100644 --- a/README.md +++ b/README.md @@ -1,9 +1,9 @@ -# Starlight Starter Kit: Basics +# Starlight Starter Kit: Tailwind [![Built with Starlight](https://astro.badg.es/v2/built-with-starlight/tiny.svg)](https://starlight.astro.build) ``` -pnpm create astro@latest -- --template starlight +pnpm create astro@latest -- --template starlight/tailwind ``` > πŸ§‘β€πŸš€ **Seasoned astronaut?** Delete this file. Have fun! @@ -19,6 +19,8 @@ Inside of your Astro + Starlight project, you'll see the following folders and f β”‚ β”œβ”€β”€ assets/ β”‚ β”œβ”€β”€ content/ β”‚ β”‚ └── docs/ +β”‚ β”œβ”€β”€ styles/ +β”‚ β”‚ └── global.css β”‚ └── content.config.ts β”œβ”€β”€ astro.config.mjs β”œβ”€β”€ package.json @@ -31,13 +33,15 @@ Images can be added to `src/assets/` and embedded in Markdown with a relative li Static assets, like favicons, can be placed in the `public/` directory. +The project includes [Tailwind CSS](https://starlight.astro.build/guides/css-and-tailwind/#tailwind-css) for styling. Customize your design by modifying `src/styles/global.css`. + ## 🧞 Commands All commands are run from the root of the project, from a terminal: -| Command | Action | -| :------------------------ | :----------------------------------------------- | -| `pnpm install` | Installs dependencies | +| Command | Action | +| :--------------------- | :----------------------------------------------- | +| `pnpm install` | Installs dependencies | | `pnpm dev` | Starts local dev server at `localhost:4321` | | `pnpm build` | Build your production site to `./dist/` | | `pnpm preview` | Preview your build locally, before deploying | diff --git a/astro.config.mjs b/astro.config.mjs index e8ade20..bffb9d8 100644 --- a/astro.config.mjs +++ b/astro.config.mjs @@ -1,45 +1,44 @@ // @ts-check -import { defineConfig } from "astro/config"; -import starlight from "@astrojs/starlight"; +import { defineConfig } from 'astro/config'; +import starlight from '@astrojs/starlight'; +import tailwindcss from '@tailwindcss/vite'; // https://astro.build/config export default defineConfig({ - site: "https://otterscale.com", - integrations: [ - starlight({ - title: "OtterScale Docs", - logo: { - src: "./src/assets/logo.png", - }, - social: [ - { - icon: "github", - label: "GitHub", - href: "https://github.com/otterscale/otterscale", - }, - ], - editLink: { - baseUrl: - "https://github.com/otterscale/otterscale.github.io/edit/main/docs/", - }, - customCss: [ - "@fontsource/geist/400.css", - "@fontsource/geist/600.css", - "./src/styles/app.css", - ], - sidebar: [ - { - label: "Guides", - items: [ - // Each item here is one entry in the navigation menu. - { label: "Example Guide", slug: "guides/example" }, - ], - }, - { - label: "Reference", - autogenerate: { directory: "reference" }, - }, - ], - }), - ], + site: 'https://otterscale.com', + integrations: [ + starlight({ + title: 'OtterScale Docs', + logo: { + src: './src/assets/logo.png' + }, + social: [ + { + icon: 'github', + label: 'GitHub', + href: 'https://github.com/otterscale/otterscale' + } + ], + editLink: { + baseUrl: 'https://github.com/otterscale/otterscale.github.io/edit/main/docs/' + }, + sidebar: [ + { + label: 'Guides', + items: [ + // Each item here is one entry in the navigation menu. + { label: 'Example Guide', slug: 'guides/example' } + ] + }, + { + label: 'Reference', + autogenerate: { directory: 'reference' } + } + ], + customCss: ['./src/styles/global.css'] + }) + ], + vite: { + plugins: [tailwindcss()] + } }); diff --git a/package.json b/package.json index 37fee98..2d3bc37 100644 --- a/package.json +++ b/package.json @@ -11,8 +11,12 @@ }, "dependencies": { "@astrojs/starlight": "^0.36.2", + "@astrojs/starlight-tailwind": "^4.0.2", "@fontsource/geist": "^5.2.8", + "@fontsource/geist-mono": "^5.2.7", + "@tailwindcss/vite": "^4.0.7", "astro": "^5.6.1", - "sharp": "^0.34.2" + "sharp": "^0.34.2", + "tailwindcss": "^4.0.7" } } \ No newline at end of file diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 1746808..e9a3699 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -10,16 +10,28 @@ importers: dependencies: '@astrojs/starlight': specifier: ^0.36.2 - version: 0.36.2(astro@5.15.7(@types/node@24.10.1)(rollup@4.53.2)(typescript@5.9.3)) + version: 0.36.2(astro@5.15.7(@types/node@24.10.1)(jiti@2.6.1)(lightningcss@1.30.2)(rollup@4.53.2)(typescript@5.9.3)) + '@astrojs/starlight-tailwind': + specifier: ^4.0.2 + version: 4.0.2(@astrojs/starlight@0.36.2(astro@5.15.7(@types/node@24.10.1)(jiti@2.6.1)(lightningcss@1.30.2)(rollup@4.53.2)(typescript@5.9.3)))(tailwindcss@4.1.17) '@fontsource/geist': specifier: ^5.2.8 version: 5.2.8 + '@fontsource/geist-mono': + specifier: ^5.2.7 + version: 5.2.7 + '@tailwindcss/vite': + specifier: ^4.0.7 + version: 4.1.17(vite@6.4.1(@types/node@24.10.1)(jiti@2.6.1)(lightningcss@1.30.2)) astro: specifier: ^5.6.1 - version: 5.15.7(@types/node@24.10.1)(rollup@4.53.2)(typescript@5.9.3) + version: 5.15.7(@types/node@24.10.1)(jiti@2.6.1)(lightningcss@1.30.2)(rollup@4.53.2)(typescript@5.9.3) sharp: specifier: ^0.34.2 version: 0.34.5 + tailwindcss: + specifier: ^4.0.7 + version: 4.1.17 packages: @@ -45,6 +57,12 @@ packages: '@astrojs/sitemap@3.6.0': resolution: {integrity: sha512-4aHkvcOZBWJigRmMIAJwRQXBS+ayoP5z40OklTXYXhUDhwusz+DyDl+nSshY6y9DvkVEavwNcFO8FD81iGhXjg==} + '@astrojs/starlight-tailwind@4.0.2': + resolution: {integrity: sha512-SYN/6zq6hJO5tWqbQ2tWT9/jd8ubUkzkBCcF94vByC/ZJ20Mi5GPjFvAh89Yky/aIM+jXxT6W5q4p6l58GKHiQ==} + peerDependencies: + '@astrojs/starlight': '>=0.34.0' + tailwindcss: ^4.0.0 + '@astrojs/starlight@0.36.2': resolution: {integrity: sha512-QR8NfO7+7DR13kBikhQwAj3IAoptLLNs9DkyKko2M2l3PrqpcpVUnw1JBJ0msGDIwE6tBbua2UeBND48mkh03w==} peerDependencies: @@ -254,6 +272,9 @@ packages: '@expressive-code/plugin-text-markers@0.41.3': resolution: {integrity: sha512-SN8tkIzDpA0HLAscEYD2IVrfLiid6qEdE9QLlGVSxO1KEw7qYvjpbNBQjUjMr5/jvTJ7ys6zysU2vLPHE0sb2g==} + '@fontsource/geist-mono@5.2.7': + resolution: {integrity: sha512-xVPVFISJg/K0VVd+aQN0Y7X/sw9hUcJPyDWFJ5GpyU3bHELhoRsJkPSRSHXW32mOi0xZCUQDOaPj1sqIFJ1FGg==} + '@fontsource/geist@5.2.8': resolution: {integrity: sha512-pI54klK6vz8fVpAVyV+iODGLEzw73cs1XJqV9PIXgW8MYMmBcwK6lKKaWqJrNHwEx8ppz9cuhussb6arXQ/PVQ==} @@ -394,9 +415,22 @@ packages: cpu: [x64] os: [win32] + '@jridgewell/gen-mapping@0.3.13': + resolution: {integrity: sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==} + + '@jridgewell/remapping@2.3.5': + resolution: {integrity: sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==} + + '@jridgewell/resolve-uri@3.1.2': + resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} + engines: {node: '>=6.0.0'} + '@jridgewell/sourcemap-codec@1.5.5': resolution: {integrity: sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==} + '@jridgewell/trace-mapping@0.3.31': + resolution: {integrity: sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==} + '@mdx-js/mdx@3.1.1': resolution: {integrity: sha512-f6ZO2ifpwAQIpzGWaBQT2TXxPv6z3RBzQKpVftEWN78Vl/YweF1uwussDx8ECAXVtr3Rs89fKyG9YlzUs9DyGQ==} @@ -579,6 +613,96 @@ packages: '@swc/helpers@0.5.17': resolution: {integrity: sha512-5IKx/Y13RsYd+sauPb2x+U/xZikHjolzfuDgTAl/Tdf3Q8rslRvC19NKDLgAJQ6wsqADk10ntlv08nPFw/gO/A==} + '@tailwindcss/node@4.1.17': + resolution: {integrity: sha512-csIkHIgLb3JisEFQ0vxr2Y57GUNYh447C8xzwj89U/8fdW8LhProdxvnVH6U8M2Y73QKiTIH+LWbK3V2BBZsAg==} + + '@tailwindcss/oxide-android-arm64@4.1.17': + resolution: {integrity: sha512-BMqpkJHgOZ5z78qqiGE6ZIRExyaHyuxjgrJ6eBO5+hfrfGkuya0lYfw8fRHG77gdTjWkNWEEm+qeG2cDMxArLQ==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [android] + + '@tailwindcss/oxide-darwin-arm64@4.1.17': + resolution: {integrity: sha512-EquyumkQweUBNk1zGEU/wfZo2qkp/nQKRZM8bUYO0J+Lums5+wl2CcG1f9BgAjn/u9pJzdYddHWBiFXJTcxmOg==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [darwin] + + '@tailwindcss/oxide-darwin-x64@4.1.17': + resolution: {integrity: sha512-gdhEPLzke2Pog8s12oADwYu0IAw04Y2tlmgVzIN0+046ytcgx8uZmCzEg4VcQh+AHKiS7xaL8kGo/QTiNEGRog==} + engines: {node: '>= 10'} + cpu: [x64] + os: [darwin] + + '@tailwindcss/oxide-freebsd-x64@4.1.17': + resolution: {integrity: sha512-hxGS81KskMxML9DXsaXT1H0DyA+ZBIbyG/sSAjWNe2EDl7TkPOBI42GBV3u38itzGUOmFfCzk1iAjDXds8Oh0g==} + engines: {node: '>= 10'} + cpu: [x64] + os: [freebsd] + + '@tailwindcss/oxide-linux-arm-gnueabihf@4.1.17': + resolution: {integrity: sha512-k7jWk5E3ldAdw0cNglhjSgv501u7yrMf8oeZ0cElhxU6Y2o7f8yqelOp3fhf7evjIS6ujTI3U8pKUXV2I4iXHQ==} + engines: {node: '>= 10'} + cpu: [arm] + os: [linux] + + '@tailwindcss/oxide-linux-arm64-gnu@4.1.17': + resolution: {integrity: sha512-HVDOm/mxK6+TbARwdW17WrgDYEGzmoYayrCgmLEw7FxTPLcp/glBisuyWkFz/jb7ZfiAXAXUACfyItn+nTgsdQ==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [linux] + + '@tailwindcss/oxide-linux-arm64-musl@4.1.17': + resolution: {integrity: sha512-HvZLfGr42i5anKtIeQzxdkw/wPqIbpeZqe7vd3V9vI3RQxe3xU1fLjss0TjyhxWcBaipk7NYwSrwTwK1hJARMg==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [linux] + + '@tailwindcss/oxide-linux-x64-gnu@4.1.17': + resolution: {integrity: sha512-M3XZuORCGB7VPOEDH+nzpJ21XPvK5PyjlkSFkFziNHGLc5d6g3di2McAAblmaSUNl8IOmzYwLx9NsE7bplNkwQ==} + engines: {node: '>= 10'} + cpu: [x64] + os: [linux] + + '@tailwindcss/oxide-linux-x64-musl@4.1.17': + resolution: {integrity: sha512-k7f+pf9eXLEey4pBlw+8dgfJHY4PZ5qOUFDyNf7SI6lHjQ9Zt7+NcscjpwdCEbYi6FI5c2KDTDWyf2iHcCSyyQ==} + engines: {node: '>= 10'} + cpu: [x64] + os: [linux] + + '@tailwindcss/oxide-wasm32-wasi@4.1.17': + resolution: {integrity: sha512-cEytGqSSoy7zK4JRWiTCx43FsKP/zGr0CsuMawhH67ONlH+T79VteQeJQRO/X7L0juEUA8ZyuYikcRBf0vsxhg==} + engines: {node: '>=14.0.0'} + cpu: [wasm32] + bundledDependencies: + - '@napi-rs/wasm-runtime' + - '@emnapi/core' + - '@emnapi/runtime' + - '@tybys/wasm-util' + - '@emnapi/wasi-threads' + - tslib + + '@tailwindcss/oxide-win32-arm64-msvc@4.1.17': + resolution: {integrity: sha512-JU5AHr7gKbZlOGvMdb4722/0aYbU+tN6lv1kONx0JK2cGsh7g148zVWLM0IKR3NeKLv+L90chBVYcJ8uJWbC9A==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [win32] + + '@tailwindcss/oxide-win32-x64-msvc@4.1.17': + resolution: {integrity: sha512-SKWM4waLuqx0IH+FMDUw6R66Hu4OuTALFgnleKbqhgGU30DY20NORZMZUKgLRjQXNN2TLzKvh48QXTig4h4bGw==} + engines: {node: '>= 10'} + cpu: [x64] + os: [win32] + + '@tailwindcss/oxide@4.1.17': + resolution: {integrity: sha512-F0F7d01fmkQhsTjXezGBLdrl1KresJTcI3DB8EkScCldyKp3Msz4hub4uyYaVnk88BAS1g5DQjjF6F5qczheLA==} + engines: {node: '>= 10'} + + '@tailwindcss/vite@4.1.17': + resolution: {integrity: sha512-4+9w8ZHOiGnpcGI6z1TVVfWaX/koK7fKeSYF3qlYg2xpBtbteP2ddBxiarL+HVgfSJGeK5RIxRQmKm4rTJJAwA==} + peerDependencies: + vite: ^5.2.0 || ^6 || ^7 + '@types/debug@4.1.12': resolution: {integrity: sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==} @@ -846,6 +970,10 @@ packages: emoji-regex@8.0.0: resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} + enhanced-resolve@5.18.3: + resolution: {integrity: sha512-d4lC8xfavMeBjzGr2vECC3fsGXziXZQyJxD868h2M/mBI3PwAuODxAkLkq5HYuvrPYcUtiLzsTo8U3PgX3Ocww==} + engines: {node: '>=10.13.0'} + entities@6.0.1: resolution: {integrity: sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==} engines: {node: '>=0.12'} @@ -935,6 +1063,9 @@ packages: github-slugger@2.0.0: resolution: {integrity: sha512-IaOQ9puYtjrkq7Y0Ygl9KDZnrf/aiUJYUpVf89y8kyaxbRG7Y1SrX/jaumrv81vc61+kiMempujsM3Yw7w5qcw==} + graceful-fs@4.2.11: + resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} + h3@1.15.4: resolution: {integrity: sha512-z5cFQWDffyOe4vQ9xIqNfCZdV4p//vy6fBnr8Q1AWnVZ0teurKMG66rLj++TKwKPUP3u7iMUvrvKaEUiQw2QWQ==} @@ -1056,6 +1187,10 @@ packages: resolution: {integrity: sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw==} engines: {node: '>=16'} + jiti@2.6.1: + resolution: {integrity: sha512-ekilCSN1jwRvIbgeg/57YFh8qQDNbwDb9xT/qu2DAHbFFZUicIl4ygVaAvzveMhMVr3LnpSKTNnwt8PoOfmKhQ==} + hasBin: true + js-yaml@4.1.1: resolution: {integrity: sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==} hasBin: true @@ -1068,6 +1203,76 @@ packages: resolution: {integrity: sha512-dhG34DXATL5hSxJbIexCft8FChFXtmskoZYnoPWjXQuebWYCNkVeV3KkGegCK9CP1oswI/vQibS2GY7Em/sJJA==} engines: {node: '>= 8'} + lightningcss-android-arm64@1.30.2: + resolution: {integrity: sha512-BH9sEdOCahSgmkVhBLeU7Hc9DWeZ1Eb6wNS6Da8igvUwAe0sqROHddIlvU06q3WyXVEOYDZ6ykBZQnjTbmo4+A==} + engines: {node: '>= 12.0.0'} + cpu: [arm64] + os: [android] + + lightningcss-darwin-arm64@1.30.2: + resolution: {integrity: sha512-ylTcDJBN3Hp21TdhRT5zBOIi73P6/W0qwvlFEk22fkdXchtNTOU4Qc37SkzV+EKYxLouZ6M4LG9NfZ1qkhhBWA==} + engines: {node: '>= 12.0.0'} + cpu: [arm64] + os: [darwin] + + lightningcss-darwin-x64@1.30.2: + resolution: {integrity: sha512-oBZgKchomuDYxr7ilwLcyms6BCyLn0z8J0+ZZmfpjwg9fRVZIR5/GMXd7r9RH94iDhld3UmSjBM6nXWM2TfZTQ==} + engines: {node: '>= 12.0.0'} + cpu: [x64] + os: [darwin] + + lightningcss-freebsd-x64@1.30.2: + resolution: {integrity: sha512-c2bH6xTrf4BDpK8MoGG4Bd6zAMZDAXS569UxCAGcA7IKbHNMlhGQ89eRmvpIUGfKWNVdbhSbkQaWhEoMGmGslA==} + engines: {node: '>= 12.0.0'} + cpu: [x64] + os: [freebsd] + + lightningcss-linux-arm-gnueabihf@1.30.2: + resolution: {integrity: sha512-eVdpxh4wYcm0PofJIZVuYuLiqBIakQ9uFZmipf6LF/HRj5Bgm0eb3qL/mr1smyXIS1twwOxNWndd8z0E374hiA==} + engines: {node: '>= 12.0.0'} + cpu: [arm] + os: [linux] + + lightningcss-linux-arm64-gnu@1.30.2: + resolution: {integrity: sha512-UK65WJAbwIJbiBFXpxrbTNArtfuznvxAJw4Q2ZGlU8kPeDIWEX1dg3rn2veBVUylA2Ezg89ktszWbaQnxD/e3A==} + engines: {node: '>= 12.0.0'} + cpu: [arm64] + os: [linux] + + lightningcss-linux-arm64-musl@1.30.2: + resolution: {integrity: sha512-5Vh9dGeblpTxWHpOx8iauV02popZDsCYMPIgiuw97OJ5uaDsL86cnqSFs5LZkG3ghHoX5isLgWzMs+eD1YzrnA==} + engines: {node: '>= 12.0.0'} + cpu: [arm64] + os: [linux] + + lightningcss-linux-x64-gnu@1.30.2: + resolution: {integrity: sha512-Cfd46gdmj1vQ+lR6VRTTadNHu6ALuw2pKR9lYq4FnhvgBc4zWY1EtZcAc6EffShbb1MFrIPfLDXD6Xprbnni4w==} + engines: {node: '>= 12.0.0'} + cpu: [x64] + os: [linux] + + lightningcss-linux-x64-musl@1.30.2: + resolution: {integrity: sha512-XJaLUUFXb6/QG2lGIW6aIk6jKdtjtcffUT0NKvIqhSBY3hh9Ch+1LCeH80dR9q9LBjG3ewbDjnumefsLsP6aiA==} + engines: {node: '>= 12.0.0'} + cpu: [x64] + os: [linux] + + lightningcss-win32-arm64-msvc@1.30.2: + resolution: {integrity: sha512-FZn+vaj7zLv//D/192WFFVA0RgHawIcHqLX9xuWiQt7P0PtdFEVaxgF9rjM/IRYHQXNnk61/H/gb2Ei+kUQ4xQ==} + engines: {node: '>= 12.0.0'} + cpu: [arm64] + os: [win32] + + lightningcss-win32-x64-msvc@1.30.2: + resolution: {integrity: sha512-5g1yc73p+iAkid5phb4oVFMB45417DkRevRbt/El/gKXJk4jid+vPFF/AXbxn05Aky8PapwzZrdJShv5C0avjw==} + engines: {node: '>= 12.0.0'} + cpu: [x64] + os: [win32] + + lightningcss@1.30.2: + resolution: {integrity: sha512-utfs7Pr5uJyyvDETitgsaqSyjCb2qNRAtuqUeWIAKztsOYdcACf2KtARYXg2pSvhkt+9NfoaNY7fxjl6nuMjIQ==} + engines: {node: '>= 12.0.0'} + longest-streak@3.1.0: resolution: {integrity: sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==} @@ -1525,6 +1730,13 @@ packages: style-to-object@1.0.12: resolution: {integrity: sha512-ddJqYnoT4t97QvN2C95bCgt+m7AAgXjVnkk/jxAfmp7EAB8nnqqZYEbMd3em7/vEomDb2LAQKAy1RFfv41mdNw==} + tailwindcss@4.1.17: + resolution: {integrity: sha512-j9Ee2YjuQqYT9bbRTfTZht9W/ytp5H+jJpZKiYdP/bpnXARAuELt9ofP0lPnmHjbga7SNQIxdTAXCmtKVYjN+Q==} + + tapable@2.3.0: + resolution: {integrity: sha512-g9ljZiwki/LfxmQADO3dEY1CbpmXT5Hm2fJ+QaGKwSXUylMybePR7/67YW7jOrrvjEgL1Fmz5kzyAjWVWLlucg==} + engines: {node: '>=6'} + tiny-inflate@1.0.3: resolution: {integrity: sha512-pkY1fj1cKHb2seWDy0B16HeWyczlJA9/WW3u3c4z/NiWDsO3DOU5D7nhTLE9CF0yXv/QZFY7sEJmj24dK+Rrqw==} @@ -1823,12 +2035,12 @@ snapshots: transitivePeerDependencies: - supports-color - '@astrojs/mdx@4.3.10(astro@5.15.7(@types/node@24.10.1)(rollup@4.53.2)(typescript@5.9.3))': + '@astrojs/mdx@4.3.10(astro@5.15.7(@types/node@24.10.1)(jiti@2.6.1)(lightningcss@1.30.2)(rollup@4.53.2)(typescript@5.9.3))': dependencies: '@astrojs/markdown-remark': 6.3.8 '@mdx-js/mdx': 3.1.1 acorn: 8.15.0 - astro: 5.15.7(@types/node@24.10.1)(rollup@4.53.2)(typescript@5.9.3) + astro: 5.15.7(@types/node@24.10.1)(jiti@2.6.1)(lightningcss@1.30.2)(rollup@4.53.2)(typescript@5.9.3) es-module-lexer: 1.7.0 estree-util-visit: 2.0.0 hast-util-to-html: 9.0.5 @@ -1852,17 +2064,22 @@ snapshots: stream-replace-string: 2.0.0 zod: 3.25.76 - '@astrojs/starlight@0.36.2(astro@5.15.7(@types/node@24.10.1)(rollup@4.53.2)(typescript@5.9.3))': + '@astrojs/starlight-tailwind@4.0.2(@astrojs/starlight@0.36.2(astro@5.15.7(@types/node@24.10.1)(jiti@2.6.1)(lightningcss@1.30.2)(rollup@4.53.2)(typescript@5.9.3)))(tailwindcss@4.1.17)': + dependencies: + '@astrojs/starlight': 0.36.2(astro@5.15.7(@types/node@24.10.1)(jiti@2.6.1)(lightningcss@1.30.2)(rollup@4.53.2)(typescript@5.9.3)) + tailwindcss: 4.1.17 + + '@astrojs/starlight@0.36.2(astro@5.15.7(@types/node@24.10.1)(jiti@2.6.1)(lightningcss@1.30.2)(rollup@4.53.2)(typescript@5.9.3))': dependencies: '@astrojs/markdown-remark': 6.3.8 - '@astrojs/mdx': 4.3.10(astro@5.15.7(@types/node@24.10.1)(rollup@4.53.2)(typescript@5.9.3)) + '@astrojs/mdx': 4.3.10(astro@5.15.7(@types/node@24.10.1)(jiti@2.6.1)(lightningcss@1.30.2)(rollup@4.53.2)(typescript@5.9.3)) '@astrojs/sitemap': 3.6.0 '@pagefind/default-ui': 1.4.0 '@types/hast': 3.0.4 '@types/js-yaml': 4.0.9 '@types/mdast': 4.0.4 - astro: 5.15.7(@types/node@24.10.1)(rollup@4.53.2)(typescript@5.9.3) - astro-expressive-code: 0.41.3(astro@5.15.7(@types/node@24.10.1)(rollup@4.53.2)(typescript@5.9.3)) + astro: 5.15.7(@types/node@24.10.1)(jiti@2.6.1)(lightningcss@1.30.2)(rollup@4.53.2)(typescript@5.9.3) + astro-expressive-code: 0.41.3(astro@5.15.7(@types/node@24.10.1)(jiti@2.6.1)(lightningcss@1.30.2)(rollup@4.53.2)(typescript@5.9.3)) bcp-47: 2.1.0 hast-util-from-html: 2.0.3 hast-util-select: 6.0.4 @@ -2026,6 +2243,8 @@ snapshots: dependencies: '@expressive-code/core': 0.41.3 + '@fontsource/geist-mono@5.2.7': {} + '@fontsource/geist@5.2.8': {} '@img/colour@1.0.0': {} @@ -2124,8 +2343,25 @@ snapshots: '@img/sharp-win32-x64@0.34.5': optional: true + '@jridgewell/gen-mapping@0.3.13': + dependencies: + '@jridgewell/sourcemap-codec': 1.5.5 + '@jridgewell/trace-mapping': 0.3.31 + + '@jridgewell/remapping@2.3.5': + dependencies: + '@jridgewell/gen-mapping': 0.3.13 + '@jridgewell/trace-mapping': 0.3.31 + + '@jridgewell/resolve-uri@3.1.2': {} + '@jridgewell/sourcemap-codec@1.5.5': {} + '@jridgewell/trace-mapping@0.3.31': + dependencies: + '@jridgewell/resolve-uri': 3.1.2 + '@jridgewell/sourcemap-codec': 1.5.5 + '@mdx-js/mdx@3.1.1': dependencies: '@types/estree': 1.0.8 @@ -2289,6 +2525,74 @@ snapshots: dependencies: tslib: 2.8.1 + '@tailwindcss/node@4.1.17': + dependencies: + '@jridgewell/remapping': 2.3.5 + enhanced-resolve: 5.18.3 + jiti: 2.6.1 + lightningcss: 1.30.2 + magic-string: 0.30.21 + source-map-js: 1.2.1 + tailwindcss: 4.1.17 + + '@tailwindcss/oxide-android-arm64@4.1.17': + optional: true + + '@tailwindcss/oxide-darwin-arm64@4.1.17': + optional: true + + '@tailwindcss/oxide-darwin-x64@4.1.17': + optional: true + + '@tailwindcss/oxide-freebsd-x64@4.1.17': + optional: true + + '@tailwindcss/oxide-linux-arm-gnueabihf@4.1.17': + optional: true + + '@tailwindcss/oxide-linux-arm64-gnu@4.1.17': + optional: true + + '@tailwindcss/oxide-linux-arm64-musl@4.1.17': + optional: true + + '@tailwindcss/oxide-linux-x64-gnu@4.1.17': + optional: true + + '@tailwindcss/oxide-linux-x64-musl@4.1.17': + optional: true + + '@tailwindcss/oxide-wasm32-wasi@4.1.17': + optional: true + + '@tailwindcss/oxide-win32-arm64-msvc@4.1.17': + optional: true + + '@tailwindcss/oxide-win32-x64-msvc@4.1.17': + optional: true + + '@tailwindcss/oxide@4.1.17': + optionalDependencies: + '@tailwindcss/oxide-android-arm64': 4.1.17 + '@tailwindcss/oxide-darwin-arm64': 4.1.17 + '@tailwindcss/oxide-darwin-x64': 4.1.17 + '@tailwindcss/oxide-freebsd-x64': 4.1.17 + '@tailwindcss/oxide-linux-arm-gnueabihf': 4.1.17 + '@tailwindcss/oxide-linux-arm64-gnu': 4.1.17 + '@tailwindcss/oxide-linux-arm64-musl': 4.1.17 + '@tailwindcss/oxide-linux-x64-gnu': 4.1.17 + '@tailwindcss/oxide-linux-x64-musl': 4.1.17 + '@tailwindcss/oxide-wasm32-wasi': 4.1.17 + '@tailwindcss/oxide-win32-arm64-msvc': 4.1.17 + '@tailwindcss/oxide-win32-x64-msvc': 4.1.17 + + '@tailwindcss/vite@4.1.17(vite@6.4.1(@types/node@24.10.1)(jiti@2.6.1)(lightningcss@1.30.2))': + dependencies: + '@tailwindcss/node': 4.1.17 + '@tailwindcss/oxide': 4.1.17 + tailwindcss: 4.1.17 + vite: 6.4.1(@types/node@24.10.1)(jiti@2.6.1)(lightningcss@1.30.2) + '@types/debug@4.1.12': dependencies: '@types/ms': 2.1.0 @@ -2368,12 +2672,12 @@ snapshots: astring@1.9.0: {} - astro-expressive-code@0.41.3(astro@5.15.7(@types/node@24.10.1)(rollup@4.53.2)(typescript@5.9.3)): + astro-expressive-code@0.41.3(astro@5.15.7(@types/node@24.10.1)(jiti@2.6.1)(lightningcss@1.30.2)(rollup@4.53.2)(typescript@5.9.3)): dependencies: - astro: 5.15.7(@types/node@24.10.1)(rollup@4.53.2)(typescript@5.9.3) + astro: 5.15.7(@types/node@24.10.1)(jiti@2.6.1)(lightningcss@1.30.2)(rollup@4.53.2)(typescript@5.9.3) rehype-expressive-code: 0.41.3 - astro@5.15.7(@types/node@24.10.1)(rollup@4.53.2)(typescript@5.9.3): + astro@5.15.7(@types/node@24.10.1)(jiti@2.6.1)(lightningcss@1.30.2)(rollup@4.53.2)(typescript@5.9.3): dependencies: '@astrojs/compiler': 2.13.0 '@astrojs/internal-helpers': 0.7.4 @@ -2429,8 +2733,8 @@ snapshots: unist-util-visit: 5.0.0 unstorage: 1.17.2 vfile: 6.0.3 - vite: 6.4.1(@types/node@24.10.1) - vitefu: 1.1.1(vite@6.4.1(@types/node@24.10.1)) + vite: 6.4.1(@types/node@24.10.1)(jiti@2.6.1)(lightningcss@1.30.2) + vitefu: 1.1.1(vite@6.4.1(@types/node@24.10.1)(jiti@2.6.1)(lightningcss@1.30.2)) xxhash-wasm: 1.1.0 yargs-parser: 21.1.1 yocto-spinner: 0.2.3 @@ -2596,6 +2900,11 @@ snapshots: emoji-regex@8.0.0: {} + enhanced-resolve@5.18.3: + dependencies: + graceful-fs: 4.2.11 + tapable: 2.3.0 + entities@6.0.1: {} es-module-lexer@1.7.0: {} @@ -2723,6 +3032,8 @@ snapshots: github-slugger@2.0.0: {} + graceful-fs@4.2.11: {} + h3@1.15.4: dependencies: cookie-es: 1.2.2 @@ -2967,6 +3278,8 @@ snapshots: dependencies: is-inside-container: 1.0.0 + jiti@2.6.1: {} + js-yaml@4.1.1: dependencies: argparse: 2.0.1 @@ -2975,6 +3288,55 @@ snapshots: klona@2.0.6: {} + lightningcss-android-arm64@1.30.2: + optional: true + + lightningcss-darwin-arm64@1.30.2: + optional: true + + lightningcss-darwin-x64@1.30.2: + optional: true + + lightningcss-freebsd-x64@1.30.2: + optional: true + + lightningcss-linux-arm-gnueabihf@1.30.2: + optional: true + + lightningcss-linux-arm64-gnu@1.30.2: + optional: true + + lightningcss-linux-arm64-musl@1.30.2: + optional: true + + lightningcss-linux-x64-gnu@1.30.2: + optional: true + + lightningcss-linux-x64-musl@1.30.2: + optional: true + + lightningcss-win32-arm64-msvc@1.30.2: + optional: true + + lightningcss-win32-x64-msvc@1.30.2: + optional: true + + lightningcss@1.30.2: + dependencies: + detect-libc: 2.1.2 + optionalDependencies: + lightningcss-android-arm64: 1.30.2 + lightningcss-darwin-arm64: 1.30.2 + lightningcss-darwin-x64: 1.30.2 + lightningcss-freebsd-x64: 1.30.2 + lightningcss-linux-arm-gnueabihf: 1.30.2 + lightningcss-linux-arm64-gnu: 1.30.2 + lightningcss-linux-arm64-musl: 1.30.2 + lightningcss-linux-x64-gnu: 1.30.2 + lightningcss-linux-x64-musl: 1.30.2 + lightningcss-win32-arm64-msvc: 1.30.2 + lightningcss-win32-x64-msvc: 1.30.2 + longest-streak@3.1.0: {} lru-cache@10.4.3: {} @@ -3865,6 +4227,10 @@ snapshots: dependencies: inline-style-parser: 0.2.6 + tailwindcss@4.1.17: {} + + tapable@2.3.0: {} + tiny-inflate@1.0.3: {} tinyexec@1.0.2: {} @@ -3996,7 +4362,7 @@ snapshots: '@types/unist': 3.0.3 vfile-message: 4.0.3 - vite@6.4.1(@types/node@24.10.1): + vite@6.4.1(@types/node@24.10.1)(jiti@2.6.1)(lightningcss@1.30.2): dependencies: esbuild: 0.25.12 fdir: 6.5.0(picomatch@4.0.3) @@ -4007,10 +4373,12 @@ snapshots: optionalDependencies: '@types/node': 24.10.1 fsevents: 2.3.3 + jiti: 2.6.1 + lightningcss: 1.30.2 - vitefu@1.1.1(vite@6.4.1(@types/node@24.10.1)): + vitefu@1.1.1(vite@6.4.1(@types/node@24.10.1)(jiti@2.6.1)(lightningcss@1.30.2)): optionalDependencies: - vite: 6.4.1(@types/node@24.10.1) + vite: 6.4.1(@types/node@24.10.1)(jiti@2.6.1)(lightningcss@1.30.2) web-namespaces@2.0.1: {} diff --git a/src/content/docs/index.mdx b/src/content/docs/index.mdx index e6ed51f..6de5eb6 100644 --- a/src/content/docs/index.mdx +++ b/src/content/docs/index.mdx @@ -3,6 +3,16 @@ title: Welcome to Starlight description: Get started building your docs site with Starlight. template: splash # Remove or comment out this line to display the site sidebar on this page. hero: + title: | + Welcome to Starlight with + + Tailwind + tagline: Congrats on setting up a new Starlight project! image: file: ../../assets/houston.webp @@ -25,8 +35,7 @@ import { Card, CardGrid } from '@astrojs/starlight/components'; Edit `src/content/docs/index.mdx` to see this page change. - Delete `template: splash` in `src/content/docs/index.mdx` to display a - sidebar on this page. + Delete `template: splash` in `src/content/docs/index.mdx` to display a sidebar on this page. Add Markdown or MDX files to `src/content/docs` to create new pages. diff --git a/src/styles/app.css b/src/styles/app.css deleted file mode 100644 index 992b96f..0000000 --- a/src/styles/app.css +++ /dev/null @@ -1,3 +0,0 @@ -:root { - --sl-font: 'Geist', serif; -} \ No newline at end of file diff --git a/src/styles/global.css b/src/styles/global.css new file mode 100644 index 0000000..c4a53d1 --- /dev/null +++ b/src/styles/global.css @@ -0,0 +1,13 @@ +@layer base, starlight, theme, components, utilities; + +@import '@astrojs/starlight-tailwind'; +@import 'tailwindcss/theme.css' layer(theme); +@import 'tailwindcss/utilities.css' layer(utilities); + +@import '@fontsource/geist'; +@import '@fontsource/geist-mono'; + +@theme { + --font-sans: 'Geist', sans-serif; + --font-mono: 'Geist Mono', monospace; +} From 0d4760edb948fa3ace6dbdf7a715f79c7009e128 Mon Sep 17 00:00:00 2001 From: Chung-Hsuan Tsai Date: Sat, 15 Nov 2025 18:00:44 +0800 Subject: [PATCH 4/4] feat: enhance Starlight integration with OpenAPI support and update styles --- astro.config.mjs | 29 ++++++- package.json | 1 + pnpm-lock.yaml | 156 +++++++++++++++++++++++++++++++++++++ src/content/docs/index.mdx | 16 ++-- src/styles/global.css | 15 ++++ 5 files changed, 206 insertions(+), 11 deletions(-) diff --git a/astro.config.mjs b/astro.config.mjs index bffb9d8..067635a 100644 --- a/astro.config.mjs +++ b/astro.config.mjs @@ -2,13 +2,14 @@ import { defineConfig } from 'astro/config'; import starlight from '@astrojs/starlight'; import tailwindcss from '@tailwindcss/vite'; +import starlightOpenAPI, { openAPISidebarGroups } from 'starlight-openapi'; // https://astro.build/config export default defineConfig({ site: 'https://otterscale.com', integrations: [ starlight({ - title: 'OtterScale Docs', + title: 'OtterScale', logo: { src: './src/assets/logo.png' }, @@ -19,6 +20,17 @@ export default defineConfig({ href: 'https://github.com/otterscale/otterscale' } ], + defaultLocale: 'root', + locales: { + root: { + label: 'English', + lang: 'en' + }, + 'zh-hant': { + label: '繁體中文', + lang: 'zh-Hant' + } + }, editLink: { baseUrl: 'https://github.com/otterscale/otterscale.github.io/edit/main/docs/' }, @@ -33,9 +45,20 @@ export default defineConfig({ { label: 'Reference', autogenerate: { directory: 'reference' } - } + }, + ...openAPISidebarGroups ], - customCss: ['./src/styles/global.css'] + customCss: ['./src/styles/global.css'], + plugins: [ + // Generate the OpenAPI documentation pages. + starlightOpenAPI([ + { + base: 'api', + schema: + 'https://raw.githubusercontent.com/otterscale/otterscale/refs/heads/main/api/openapi.yaml' + } + ]) + ] }) ], vite: { diff --git a/package.json b/package.json index 2d3bc37..80f3cc2 100644 --- a/package.json +++ b/package.json @@ -17,6 +17,7 @@ "@tailwindcss/vite": "^4.0.7", "astro": "^5.6.1", "sharp": "^0.34.2", + "starlight-openapi": "^0.21.1", "tailwindcss": "^4.0.7" } } \ No newline at end of file diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index e9a3699..f587b7c 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -29,12 +29,19 @@ importers: sharp: specifier: ^0.34.2 version: 0.34.5 + starlight-openapi: + specifier: ^0.21.1 + version: 0.21.1(@astrojs/markdown-remark@6.3.8)(@astrojs/starlight@0.36.2(astro@5.15.7(@types/node@24.10.1)(jiti@2.6.1)(lightningcss@1.30.2)(rollup@4.53.2)(typescript@5.9.3)))(astro@5.15.7(@types/node@24.10.1)(jiti@2.6.1)(lightningcss@1.30.2)(rollup@4.53.2)(typescript@5.9.3))(openapi-types@12.1.3) tailwindcss: specifier: ^4.0.7 version: 4.1.17 packages: + '@apidevtools/json-schema-ref-parser@13.0.5': + resolution: {integrity: sha512-xfh4xVJD62gG6spIc7lwxoWT+l16nZu1ELyU8FkjaP/oD2yP09EvLAU6KhtudN9aML2Khhs9pY6Slr7KGTES3w==} + engines: {node: '>= 16'} + '@astrojs/compiler@2.13.0': resolution: {integrity: sha512-mqVORhUJViA28fwHYaWmsXSzLO9osbdZ5ImUfxBarqsYdMlPbqAqGJCxsNzvppp1BEzc1mJNjOVvQqeDN8Vspw==} @@ -72,6 +79,10 @@ packages: resolution: {integrity: sha512-UFBgfeldP06qu6khs/yY+q1cDAaArM2/7AEIqQ9Cuvf7B1hNLq0xDrZkct+QoIGyjq56y8IaE2I3CTvG99mlhQ==} engines: {node: 18.20.8 || ^20.3.0 || >=22.0.0} + '@babel/code-frame@7.27.1': + resolution: {integrity: sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==} + engines: {node: '>=6.9.0'} + '@babel/helper-string-parser@7.27.1': resolution: {integrity: sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==} engines: {node: '>=6.9.0'} @@ -278,6 +289,10 @@ packages: '@fontsource/geist@5.2.8': resolution: {integrity: sha512-pI54klK6vz8fVpAVyV+iODGLEzw73cs1XJqV9PIXgW8MYMmBcwK6lKKaWqJrNHwEx8ppz9cuhussb6arXQ/PVQ==} + '@humanwhocodes/momoa@2.0.4': + resolution: {integrity: sha512-RE815I4arJFtt+FVeU1Tgp9/Xvecacji8w/V6XtXsWWH/wz/eNkNbhb+ny/+PlVZjV0rxQpRSQKNKE3lcktHEA==} + engines: {node: '>=10.10.0'} + '@img/colour@1.0.0': resolution: {integrity: sha512-A5P/LfWGFSl6nsckYtjw9da+19jB8hkJ6ACTGcDfEJ0aE+l2n2El7dsVM7UVHZQ9s2lmYMWlrS21YLy2IR1LUw==} engines: {node: '>=18'} @@ -470,6 +485,22 @@ packages: cpu: [x64] os: [win32] + '@readme/better-ajv-errors@2.4.0': + resolution: {integrity: sha512-9WODaOAKSl/mU+MYNZ2aHCrkoRSvmQ+1YkLj589OEqqjOAhbn8j7Z+ilYoiTu/he6X63/clsxxAB4qny9/dDzg==} + engines: {node: '>=18'} + peerDependencies: + ajv: 4.11.8 - 8 + + '@readme/openapi-parser@4.1.2': + resolution: {integrity: sha512-lAFH88r/CHs5VZDUocEda0OSMSQsr6801sziIjOKyVA+0hSFN+BPuelPF5XvkMROHecnPd+XEJN1iNQqCgER/g==} + engines: {node: '>=20'} + peerDependencies: + openapi-types: '>=7' + + '@readme/openapi-schemas@3.1.0': + resolution: {integrity: sha512-9FC/6ho8uFa8fV50+FPy/ngWN53jaUu4GRXlAjcxIRrzhltJnpKkBG2Tp0IDraFJeWrOpk84RJ9EMEEYzaI1Bw==} + engines: {node: '>=18'} + '@rollup/pluginutils@5.3.0': resolution: {integrity: sha512-5EdhGZtnu3V88ces7s53hhfK5KSASnJZv8Lulpc04cWO3REESroJXg73DFsOmgbU2BhwV0E20bu2IDZb3VKW4Q==} engines: {node: '>=14.0.0'} @@ -721,6 +752,9 @@ packages: '@types/js-yaml@4.0.9': resolution: {integrity: sha512-k4MGaQl5TGo/iipqb2UDG2UwjXziSWkh0uysQelTlJpX1qGlpUZYm8PnO4DxG1qBomtJUdYJ6qR6xdIah10JLg==} + '@types/json-schema@7.0.15': + resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} + '@types/mdast@4.0.4': resolution: {integrity: sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==} @@ -761,6 +795,17 @@ packages: engines: {node: '>=0.4.0'} hasBin: true + ajv-draft-04@1.0.0: + resolution: {integrity: sha512-mv00Te6nmYbRp5DCwclxtt7yV/joXJPGS7nM+97GdxvuttCOfgI3K4U25zboyeX0O+myI8ERluxQe5wljMmVIw==} + peerDependencies: + ajv: ^8.5.0 + peerDependenciesMeta: + ajv: + optional: true + + ajv@8.17.1: + resolution: {integrity: sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==} + ansi-align@3.0.1: resolution: {integrity: sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==} @@ -1032,6 +1077,9 @@ packages: fast-deep-equal@3.1.3: resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} + fast-uri@3.1.0: + resolution: {integrity: sha512-iPeeDKJSWf4IEOasVVrknXpaBV0IApz/gp7S2bb7Z4Lljbl2MGJRqInZiUrQwV16cpzw/D3S5j5Julj/gT52AA==} + fdir@6.5.0: resolution: {integrity: sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==} engines: {node: '>=12.0.0'} @@ -1191,10 +1239,20 @@ packages: resolution: {integrity: sha512-ekilCSN1jwRvIbgeg/57YFh8qQDNbwDb9xT/qu2DAHbFFZUicIl4ygVaAvzveMhMVr3LnpSKTNnwt8PoOfmKhQ==} hasBin: true + js-tokens@4.0.0: + resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} + js-yaml@4.1.1: resolution: {integrity: sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==} hasBin: true + json-schema-traverse@1.0.0: + resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==} + + jsonpointer@5.0.1: + resolution: {integrity: sha512-p/nXbhSEcu3pZRdkW1OfJhpsVtW1gd4Wa1fnQc9YLiTfAjn0312eMKimbdIQzuZl9aa9xUGaRlP9T/CJE/ditQ==} + engines: {node: '>=0.10.0'} + kleur@3.0.3: resolution: {integrity: sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==} engines: {node: '>=6'} @@ -1203,6 +1261,10 @@ packages: resolution: {integrity: sha512-dhG34DXATL5hSxJbIexCft8FChFXtmskoZYnoPWjXQuebWYCNkVeV3KkGegCK9CP1oswI/vQibS2GY7Em/sJJA==} engines: {node: '>= 8'} + leven@3.1.0: + resolution: {integrity: sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==} + engines: {node: '>=6'} + lightningcss-android-arm64@1.30.2: resolution: {integrity: sha512-BH9sEdOCahSgmkVhBLeU7Hc9DWeZ1Eb6wNS6Da8igvUwAe0sqROHddIlvU06q3WyXVEOYDZ6ykBZQnjTbmo4+A==} engines: {node: '>= 12.0.0'} @@ -1501,6 +1563,9 @@ packages: oniguruma-to-es@4.3.3: resolution: {integrity: sha512-rPiZhzC3wXwE59YQMRDodUwwT9FZ9nNBwQQfsd1wfdtlKEyCdRV0avrTcSZ5xlIvGRVPd/cx6ZN45ECmS39xvg==} + openapi-types@12.1.3: + resolution: {integrity: sha512-N4YtSYJqghVu4iek2ZUvcN/0aqH1kRDuNqzcycDxhOUpg7GdvLa2F3DgS6yBNhInhv2r/6I0Flkn7CqL8+nIcw==} + p-limit@6.2.0: resolution: {integrity: sha512-kuUqqHNUqoIWp/c467RI4X6mmyuojY5jGutNU0wVTmEOOfcuwLqyMVoAi9MKi2Ak+5i9+nhmrK4ufZE8069kHA==} engines: {node: '>=18'} @@ -1644,6 +1709,10 @@ packages: remark-stringify@11.0.0: resolution: {integrity: sha512-1OSmLd3awB/t8qdoEOMazZkNsfVTeY4fTsgzcQFdXNq8ToTN4ZGwrMnlda4K6smTFKD+GRV6O48i6Z4iKgPPpw==} + require-from-string@2.0.2: + resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==} + engines: {node: '>=0.10.0'} + restructure@3.0.2: resolution: {integrity: sha512-gSfoiOEA0VPE6Tukkrr7I0RBdE0s7H1eFCDBk05l1KIQT1UIKNc5JZy6jdyW6eYH3aR3g5b3PuL77rq0hvwtAw==} @@ -1702,6 +1771,14 @@ packages: space-separated-tokens@2.0.2: resolution: {integrity: sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==} + starlight-openapi@0.21.1: + resolution: {integrity: sha512-hHefUWQuLz26Fc8B0XOrdxOnOmJkKzyAssqEfDSZTC76GH05eT5/fCuJ76lq9N3uEjHmCKb6vWPlr7EbLbJQEg==} + engines: {node: '>=18.17.1'} + peerDependencies: + '@astrojs/markdown-remark': '>=6.0.1' + '@astrojs/starlight': '>=0.34.0' + astro: '>=5.5.0' + stream-replace-string@2.0.0: resolution: {integrity: sha512-TlnjJ1C0QrmxRNrON00JvaFFlNh5TTG00APw23j74ET7gkQpTASi6/L2fuiav8pzK715HXtUeClpBTw2NPSn6w==} @@ -1892,6 +1969,10 @@ packages: uploadthing: optional: true + url-template@3.1.1: + resolution: {integrity: sha512-4oszoaEKE/mQOtAmdMWqIRHmkxWkUZMnXFnjQ5i01CuRSK3uluxcH1MRVVVWmhlnzT1SCDfKxxficm2G37qzCA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + util-deprecate@1.0.2: resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} @@ -2005,6 +2086,11 @@ packages: snapshots: + '@apidevtools/json-schema-ref-parser@13.0.5': + dependencies: + '@types/json-schema': 7.0.15 + js-yaml: 4.1.1 + '@astrojs/compiler@2.13.0': {} '@astrojs/internal-helpers@0.7.4': {} @@ -2114,6 +2200,12 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/code-frame@7.27.1': + dependencies: + '@babel/helper-validator-identifier': 7.28.5 + js-tokens: 4.0.0 + picocolors: 1.1.1 + '@babel/helper-string-parser@7.27.1': {} '@babel/helper-validator-identifier@7.28.5': {} @@ -2247,6 +2339,8 @@ snapshots: '@fontsource/geist@5.2.8': {} + '@humanwhocodes/momoa@2.0.4': {} + '@img/colour@1.0.0': {} '@img/sharp-darwin-arm64@0.34.5': @@ -2414,6 +2508,28 @@ snapshots: '@pagefind/windows-x64@1.4.0': optional: true + '@readme/better-ajv-errors@2.4.0(ajv@8.17.1)': + dependencies: + '@babel/code-frame': 7.27.1 + '@babel/runtime': 7.28.4 + '@humanwhocodes/momoa': 2.0.4 + ajv: 8.17.1 + jsonpointer: 5.0.1 + leven: 3.1.0 + picocolors: 1.1.1 + + '@readme/openapi-parser@4.1.2(openapi-types@12.1.3)': + dependencies: + '@apidevtools/json-schema-ref-parser': 13.0.5 + '@readme/better-ajv-errors': 2.4.0(ajv@8.17.1) + '@readme/openapi-schemas': 3.1.0 + '@types/json-schema': 7.0.15 + ajv: 8.17.1 + ajv-draft-04: 1.0.0(ajv@8.17.1) + openapi-types: 12.1.3 + + '@readme/openapi-schemas@3.1.0': {} + '@rollup/pluginutils@5.3.0(rollup@4.53.2)': dependencies: '@types/estree': 1.0.8 @@ -2613,6 +2729,8 @@ snapshots: '@types/js-yaml@4.0.9': {} + '@types/json-schema@7.0.15': {} + '@types/mdast@4.0.4': dependencies: '@types/unist': 3.0.3 @@ -2647,6 +2765,17 @@ snapshots: acorn@8.15.0: {} + ajv-draft-04@1.0.0(ajv@8.17.1): + optionalDependencies: + ajv: 8.17.1 + + ajv@8.17.1: + dependencies: + fast-deep-equal: 3.1.3 + fast-uri: 3.1.0 + json-schema-traverse: 1.0.0 + require-from-string: 2.0.2 + ansi-align@3.0.1: dependencies: string-width: 4.2.3 @@ -3002,6 +3131,8 @@ snapshots: fast-deep-equal@3.1.3: {} + fast-uri@3.1.0: {} + fdir@6.5.0(picomatch@4.0.3): optionalDependencies: picomatch: 4.0.3 @@ -3280,14 +3411,22 @@ snapshots: jiti@2.6.1: {} + js-tokens@4.0.0: {} + js-yaml@4.1.1: dependencies: argparse: 2.0.1 + json-schema-traverse@1.0.0: {} + + jsonpointer@5.0.1: {} + kleur@3.0.3: {} klona@2.0.6: {} + leven@3.1.0: {} + lightningcss-android-arm64@1.30.2: optional: true @@ -3852,6 +3991,8 @@ snapshots: regex: 6.0.1 regex-recursion: 6.0.2 + openapi-types@12.1.3: {} + p-limit@6.2.0: dependencies: yocto-queue: 1.2.2 @@ -4074,6 +4215,8 @@ snapshots: mdast-util-to-markdown: 2.1.2 unified: 11.0.5 + require-from-string@2.0.2: {} + restructure@3.0.2: {} retext-latin@4.0.0: @@ -4192,6 +4335,17 @@ snapshots: space-separated-tokens@2.0.2: {} + starlight-openapi@0.21.1(@astrojs/markdown-remark@6.3.8)(@astrojs/starlight@0.36.2(astro@5.15.7(@types/node@24.10.1)(jiti@2.6.1)(lightningcss@1.30.2)(rollup@4.53.2)(typescript@5.9.3)))(astro@5.15.7(@types/node@24.10.1)(jiti@2.6.1)(lightningcss@1.30.2)(rollup@4.53.2)(typescript@5.9.3))(openapi-types@12.1.3): + dependencies: + '@astrojs/markdown-remark': 6.3.8 + '@astrojs/starlight': 0.36.2(astro@5.15.7(@types/node@24.10.1)(jiti@2.6.1)(lightningcss@1.30.2)(rollup@4.53.2)(typescript@5.9.3)) + '@readme/openapi-parser': 4.1.2(openapi-types@12.1.3) + astro: 5.15.7(@types/node@24.10.1)(jiti@2.6.1)(lightningcss@1.30.2)(rollup@4.53.2)(typescript@5.9.3) + github-slugger: 2.0.0 + url-template: 3.1.1 + transitivePeerDependencies: + - openapi-types + stream-replace-string@2.0.0: {} string-width@4.2.3: @@ -4345,6 +4499,8 @@ snapshots: ofetch: 1.5.1 ufo: 1.6.1 + url-template@3.1.1: {} + util-deprecate@1.0.2: {} vfile-location@5.0.3: diff --git a/src/content/docs/index.mdx b/src/content/docs/index.mdx index 6de5eb6..2d36f01 100644 --- a/src/content/docs/index.mdx +++ b/src/content/docs/index.mdx @@ -1,28 +1,28 @@ --- -title: Welcome to Starlight +title: A unified platform for simplified compute, storage, and networking. description: Get started building your docs site with Starlight. template: splash # Remove or comment out this line to display the site sidebar on this page. hero: title: | - Welcome to Starlight with - - Tailwind + One Platform, infinite possibilities. - tagline: Congrats on setting up a new Starlight project! + tagline: A unified platform for simplified compute, storage, and networking. image: file: ../../assets/houston.webp actions: - text: Example Guide link: /guides/example/ icon: right-arrow - - text: Read the Starlight docs - link: https://starlight.astro.build - icon: external + - text: GitHub + link: https://github.com/otterscale/otterscale + icon: github variant: minimal --- diff --git a/src/styles/global.css b/src/styles/global.css index c4a53d1..9cae479 100644 --- a/src/styles/global.css +++ b/src/styles/global.css @@ -10,4 +10,19 @@ @theme { --font-sans: 'Geist', sans-serif; --font-mono: 'Geist Mono', monospace; + + /* Generated accent color palettes. */ + --color-accent-200: #b3c7ff; + --color-accent-600: #364bff; + --color-accent-900: #182775; + --color-accent-950: #131e4f; + /* Generated gray color palettes. */ + --color-gray-100: #f5f6f8; + --color-gray-200: #eceef2; + --color-gray-300: #c0c2c7; + --color-gray-400: #888b96; + --color-gray-500: #545861; + --color-gray-700: #353841; + --color-gray-800: #24272f; + --color-gray-900: #17181c; }