From 437a1b16ebafdafdbdbe0f474e4fefbd7977ae79 Mon Sep 17 00:00:00 2001 From: richardscull <106016833+richardscull@users.noreply.github.com> Date: Mon, 23 Mar 2026 13:58:04 +0200 Subject: [PATCH 1/2] feat: Add starlight-links-validator --- astro.config.mjs | 4 ++-- bun.lock | 25 ++++++++++++++++++++++++- package.json | 1 + 3 files changed, 27 insertions(+), 3 deletions(-) diff --git a/astro.config.mjs b/astro.config.mjs index 636b67e..a1e708f 100644 --- a/astro.config.mjs +++ b/astro.config.mjs @@ -5,7 +5,7 @@ import mermaid from 'astro-mermaid'; import starlightThemeRapide from 'starlight-theme-rapide'; import starlightImageZoom from 'starlight-image-zoom'; import starlightScrollToTop from 'starlight-scroll-to-top'; - +import starlightLinksValidator from 'starlight-links-validator'; // https://astro.build/config export default defineConfig({ @@ -54,7 +54,7 @@ export default defineConfig({ }, ], description: 'Documentation for the Sunrise osu! server project, including setup guides and configuration options.', - plugins: [starlightThemeRapide(), starlightImageZoom(), starlightScrollToTop()], + plugins: [starlightLinksValidator(), starlightThemeRapide(), starlightImageZoom(), starlightScrollToTop(), ], customCss: [ './src/styles/custom.css' ], diff --git a/bun.lock b/bun.lock index 48e1672..bd08192 100644 --- a/bun.lock +++ b/bun.lock @@ -9,6 +9,7 @@ "mermaid": "^11.12.2", "sharp": "^0.34.2", "starlight-image-zoom": "^0.13.2", + "starlight-links-validator": "0.19.2", "starlight-scroll-to-top": "^0.4.0", "starlight-theme-rapide": "^0.5.2", }, @@ -347,6 +348,8 @@ "@types/node": ["@types/node@17.0.45", "", {}, "sha512-w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw=="], + "@types/picomatch": ["@types/picomatch@3.0.2", "", {}, "sha512-n0i8TD3UDB7paoMMxA3Y65vUncFJXjcUf7lQY7YyKGl6031FNjfsLs6pdLFCy2GNFxItPJG8GvvpbZc2skH7WA=="], + "@types/sax": ["@types/sax@1.2.7", "", { "dependencies": { "@types/node": "*" } }, "sha512-rO73L89PJxeYM3s3pPPjiPgVVcymqU490g0YO5n5By0k2Erzj6tay/4lr1CHAAU4JyOWd1rpQ8bCf6cZfHU96A=="], "@types/trusted-types": ["@types/trusted-types@2.0.7", "", {}, "sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw=="], @@ -361,6 +364,8 @@ "ansi-align": ["ansi-align@3.0.1", "", { "dependencies": { "string-width": "^4.1.0" } }, "sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w=="], + "ansi-escapes": ["ansi-escapes@7.3.0", "", { "dependencies": { "environment": "^1.0.0" } }, "sha512-BvU8nYgGQBxcmMuEeUEmNTvrMVjJNSH7RgW24vXexN4Ven6qCvy4TntnvlnwnMLTVlcRQQdbRY8NKnaIoeWDNg=="], + "ansi-regex": ["ansi-regex@6.2.2", "", {}, "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg=="], "ansi-styles": ["ansi-styles@6.2.3", "", {}, "sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg=="], @@ -569,6 +574,8 @@ "entities": ["entities@6.0.1", "", {}, "sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g=="], + "environment": ["environment@1.1.0", "", {}, "sha512-xUtoPkMggbz0MPyPiIWr1Kp4aeWJjDZ6SMvURhimjdZgsRuDplF5/s9hcgGhyXMhs+6vpnuoiZ2kFiu3FMnS8Q=="], + "es-module-lexer": ["es-module-lexer@1.7.0", "", {}, "sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA=="], "esast-util-from-estree": ["esast-util-from-estree@2.0.0", "", { "dependencies": { "@types/estree-jsx": "^1.0.0", "devlop": "^1.0.0", "estree-util-visit": "^2.0.0", "unist-util-position-from-estree": "^2.0.0" } }, "sha512-4CyanoAudUSBAn5K13H4JhsMH6L9ZP7XbLVe/dKybkxMO7eDyLsT8UHl9TRNrU2Gr9nz+FovfSIjuXWJ81uVwQ=="], @@ -617,6 +624,8 @@ "hachure-fill": ["hachure-fill@0.5.2", "", {}, "sha512-3GKBOn+m2LX9iq+JC1064cSFprJY4jL1jCXTcpnfER5HYE2l/4EfWSGzkPa/ZDBmYI0ZOEj5VHV/eKnPGkHuOg=="], + "has-flag": ["has-flag@5.0.1", "", {}, "sha512-CsNUt5x9LUdx6hnk/E2SZLsDyvfqANZSUq4+D3D8RzDJ2M+HDTIkF60ibS1vHaK55vzgiZw1bEPFG9yH7l33wA=="], + "hast-util-embedded": ["hast-util-embedded@3.0.0", "", { "dependencies": { "@types/hast": "^3.0.0", "hast-util-is-element": "^3.0.0" } }, "sha512-naH8sld4Pe2ep03qqULEtvYr7EjrLK2QHY8KJR6RJkTUjPGObe1vnx585uzem2hGra+s1q08DZZpfgDVYRbaXA=="], "hast-util-format": ["hast-util-format@1.1.0", "", { "dependencies": { "@types/hast": "^3.0.0", "hast-util-embedded": "^3.0.0", "hast-util-minify-whitespace": "^1.0.0", "hast-util-phrasing": "^3.0.0", "hast-util-whitespace": "^3.0.0", "html-whitespace-sensitive-tag-names": "^3.0.0", "unist-util-visit-parents": "^6.0.0" } }, "sha512-yY1UDz6bC9rDvCWHpx12aIBGRG7krurX0p0Fm6pT547LwDIZZiNr8a+IHDogorAdreULSEzP82Nlv5SZkHZcjA=="], @@ -677,6 +686,8 @@ "iron-webcrypto": ["iron-webcrypto@1.2.1", "", {}, "sha512-feOM6FaSr6rEABp/eDfVseKyTMDt+KGpeB35SkVn9Tyn0CqvVsY3EwI0v5i8nMHyJnzCIQf7nsy3p41TPkJZhg=="], + "is-absolute-url": ["is-absolute-url@4.0.1", "", {}, "sha512-/51/TKE88Lmm7Gc4/8btclNXWS+g50wXhYJq8HWIBAGUBnoAdRu1aXeh364t/O7wXDAcTJDP8PNuNKWUDWie+A=="], + "is-alphabetical": ["is-alphabetical@2.0.1", "", {}, "sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ=="], "is-alphanumerical": ["is-alphanumerical@2.0.1", "", { "dependencies": { "is-alphabetical": "^2.0.0", "is-decimal": "^2.0.0" } }, "sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw=="], @@ -701,7 +712,7 @@ "khroma": ["khroma@2.1.0", "", {}, "sha512-Ls993zuzfayK269Svk9hzpeGUKob/sIgZzyHYdjQoAdQetRKpOLj+k/QQQ/6Qi0Yz65mlROrfd+Ev+1+7dz9Kw=="], - "kleur": ["kleur@3.0.3", "", {}, "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w=="], + "kleur": ["kleur@4.1.5", "", {}, "sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ=="], "klona": ["klona@2.0.6", "", {}, "sha512-dhG34DXATL5hSxJbIexCft8FChFXtmskoZYnoPWjXQuebWYCNkVeV3KkGegCK9CP1oswI/vQibS2GY7Em/sJJA=="], @@ -995,6 +1006,8 @@ "starlight-image-zoom": ["starlight-image-zoom@0.13.2", "", { "dependencies": { "mdast-util-mdx-jsx": "^3.1.3", "rehype-raw": "^7.0.0", "unist-util-visit": "^5.0.0", "unist-util-visit-parents": "^6.0.1" }, "peerDependencies": { "@astrojs/starlight": ">=0.32.0" } }, "sha512-fDJrx+UZXhkbhEeXKoRogTKAYtrYVJPw6wmSUI3nHUTA0vuRM6EI//2Z8bzv3Ecvz0pHKD1vAxtS01mLyessBA=="], + "starlight-links-validator": ["starlight-links-validator@0.19.2", "", { "dependencies": { "@types/picomatch": "^3.0.1", "github-slugger": "^2.0.0", "hast-util-from-html": "^2.0.3", "hast-util-has-property": "^3.0.0", "is-absolute-url": "^4.0.1", "kleur": "^4.1.5", "mdast-util-mdx-jsx": "^3.1.3", "mdast-util-to-string": "^4.0.0", "picomatch": "^4.0.2", "terminal-link": "^5.0.0", "unist-util-visit": "^5.0.0" }, "peerDependencies": { "@astrojs/starlight": ">=0.32.0", "astro": ">=5.1.5" } }, "sha512-IHeK3R78fsmv53VfRkGbXkwK1CQEUBHM9QPzBEyoAxjZ/ssi5gjV+F4oNNUppTR48iPp+lEY0MTAmvkX7yNnkw=="], + "starlight-scroll-to-top": ["starlight-scroll-to-top@0.4.0", "", { "peerDependencies": { "@astrojs/starlight": ">=0.35" } }, "sha512-lxsW5Sv+oKCI8CYZQ6Ue957cExiHMozK73LmmbsvpBKWryW+AKU4OXmX/1bTQNx+mVLZcpm2qTwKa1KX5VdEaQ=="], "starlight-theme-rapide": ["starlight-theme-rapide@0.5.2", "", { "peerDependencies": { "@astrojs/starlight": ">=0.34.0" } }, "sha512-4kNJutt0/3E0rjZvG9hvKeTTHGOHC97t2ZQDwDcokTM25yLgxavFu7BCm2Dm2UTw7fJpRXpu4gUWJ9xAOBmNww=="], @@ -1013,8 +1026,14 @@ "stylis": ["stylis@4.3.6", "", {}, "sha512-yQ3rwFWRfwNUY7H5vpU0wfdkNSnvnJinhF9830Swlaxl03zsOjCfmX0ugac+3LtK0lYSgwL/KXc8oYL3mG4YFQ=="], + "supports-color": ["supports-color@10.2.2", "", {}, "sha512-SS+jx45GF1QjgEXQx4NJZV9ImqmO2NPz5FNsIHrsDjh2YsHnawpan7SNQ1o8NuhrbHZy9AZhIoCUiCeaW/C80g=="], + + "supports-hyperlinks": ["supports-hyperlinks@4.4.0", "", { "dependencies": { "has-flag": "^5.0.1", "supports-color": "^10.2.2" } }, "sha512-UKbpT93hN5Nr9go5UY7bopIB9YQlMz9nm/ct4IXt/irb5YRkn9WaqrOBJGZ5Pwvsd5FQzSVeYlGdXoCAPQZrPg=="], + "svgo": ["svgo@4.0.0", "", { "dependencies": { "commander": "^11.1.0", "css-select": "^5.1.0", "css-tree": "^3.0.1", "css-what": "^6.1.0", "csso": "^5.0.5", "picocolors": "^1.1.1", "sax": "^1.4.1" }, "bin": "./bin/svgo.js" }, "sha512-VvrHQ+9uniE+Mvx3+C9IEe/lWasXCU0nXMY2kZeLrHNICuRiC8uMPyM14UEaMOFA5mhyQqEkB02VoQ16n3DLaw=="], + "terminal-link": ["terminal-link@5.0.0", "", { "dependencies": { "ansi-escapes": "^7.0.0", "supports-hyperlinks": "^4.1.0" } }, "sha512-qFAy10MTMwjzjU8U16YS4YoZD+NQLHzLssFMNqgravjbvIPNiqkGFR4yjhJfmY9R5OFU7+yHxc6y+uGHkKwLRA=="], + "tiny-inflate": ["tiny-inflate@1.0.3", "", {}, "sha512-pkY1fj1cKHb2seWDy0B16HeWyczlJA9/WW3u3c4z/NiWDsO3DOU5D7nhTLE9CF0yXv/QZFY7sEJmj24dK+Rrqw=="], "tinyexec": ["tinyexec@1.0.2", "", {}, "sha512-W/KYk+NFhkmsYpuHq5JykngiOCnxeVL8v8dFnqxSD8qEEdRfXk1SDM6JzNqcERbcGYj9tMrDQBYV9cjgnunFIg=="], @@ -1103,6 +1122,8 @@ "xxhash-wasm": ["xxhash-wasm@1.1.0", "", {}, "sha512-147y/6YNh+tlp6nd/2pWq38i9h6mz/EuQ6njIrmW8D1BS5nCqs0P6DG+m6zTGnNz5I+uhZ0SHxBs9BsPrwcKDA=="], + "yaml": ["yaml@2.8.3", "", { "bin": { "yaml": "bin.mjs" } }, "sha512-AvbaCLOO2Otw/lW5bmh9d/WEdcDFdQp2Z2ZUH3pX9U2ihyUY0nvLv7J6TrWowklRGPYbB/IuIMfYgxaCPg5Bpg=="], + "yargs-parser": ["yargs-parser@21.1.1", "", {}, "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw=="], "yocto-queue": ["yocto-queue@1.2.2", "", {}, "sha512-4LCcse/U2MHZ63HAJVE+v71o7yOdIe4cZ70Wpf8D/IyjDKYQLV5GD46B+hSTjJsvV5PztjvHoU580EftxjDZFQ=="], @@ -1147,6 +1168,8 @@ "parse-entities/@types/unist": ["@types/unist@2.0.11", "", {}, "sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA=="], + "prompts/kleur": ["kleur@3.0.3", "", {}, "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w=="], + "ansi-align/string-width/emoji-regex": ["emoji-regex@8.0.0", "", {}, "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A=="], "ansi-align/string-width/strip-ansi": ["strip-ansi@6.0.1", "", { "dependencies": { "ansi-regex": "^5.0.1" } }, "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A=="], diff --git a/package.json b/package.json index fe06d35..7a2f07f 100644 --- a/package.json +++ b/package.json @@ -17,6 +17,7 @@ "mermaid": "^11.12.2", "sharp": "^0.34.2", "starlight-image-zoom": "^0.13.2", + "starlight-links-validator": "0.19.2", "starlight-scroll-to-top": "^0.4.0", "starlight-theme-rapide": "^0.5.2" } From 74ec01817555ed446e201224daae2bee9841c294 Mon Sep 17 00:00:00 2001 From: richardscull <106016833+richardscull@users.noreply.github.com> Date: Mon, 23 Mar 2026 14:08:45 +0200 Subject: [PATCH 2/2] fix: broken paths and remove relative paths --- .../docs/deprecated/installation-without-orchestrator.mdx | 6 +++--- src/content/docs/getting-started/faq.mdx | 4 ++-- src/content/docs/getting-started/installation.mdx | 6 +++--- src/content/docs/getting-started/what-is-sunrise.mdx | 2 +- src/content/docs/index.mdx | 4 ++-- 5 files changed, 11 insertions(+), 11 deletions(-) diff --git a/src/content/docs/deprecated/installation-without-orchestrator.mdx b/src/content/docs/deprecated/installation-without-orchestrator.mdx index bda89b6..9fe4ef6 100644 --- a/src/content/docs/deprecated/installation-without-orchestrator.mdx +++ b/src/content/docs/deprecated/installation-without-orchestrator.mdx @@ -13,14 +13,14 @@ This section will help you set up Sunrise server on your local environment. This installation guide was in use before the [Solar System](https://github.com/SunriseCommunity/Solar-System) was introduced. **It is now deprecated and not recommended for production use.** -### **Please refer to the new [Installation](../getting-started/installation) guide for the recommended way to set up the server.** +### **Please refer to the new [Installation](/getting-started/installation) guide for the recommended way to set up the server.** You can still use this guide if you are interested in the old setup process or if you are running a development environment. ::: We are going to set up "Production" ready environment, which means we will use Docker to run the server and other components. -If you are more interested in development setup, please refer to the [Contributing](../contributing) section. +If you are more interested in development setup, please refer to the [Contributing](/contributing) section. ## Prerequisites @@ -301,4 +301,4 @@ If you encounter any issues during the setup process, please check the following Now that you have the server up and running, you can start exploring its features and capabilities. -If you would like to give you admin privileges to your account, or generally want to know how to manage the server, check out the [Configuration](../getting-started/configuration) section. +If you would like to give you admin privileges to your account, or generally want to know how to manage the server, check out the [Configuration](/getting-started/configuration) section. diff --git a/src/content/docs/getting-started/faq.mdx b/src/content/docs/getting-started/faq.mdx index 87d0f3f..68c6294 100644 --- a/src/content/docs/getting-started/faq.mdx +++ b/src/content/docs/getting-started/faq.mdx @@ -10,11 +10,11 @@ This section will cover some of the most common questions about Sunrise, its fea ## How do I set up the server? -You can find the setup guide in the [Installation](./installation) section of the documentation. It covers everything from prerequisites to running the server. +You can find the setup guide in the [Installation](/getting-started/installation) section of the documentation. It covers everything from prerequisites to running the server. ## How do I contribute to the project? -You can find the contribution guidelines in the [Contributing](../contributing) section of the documentation. +You can find the contribution guidelines in the [Contributing](/contributing) section of the documentation. ## How do I report a bug or request a feature? diff --git a/src/content/docs/getting-started/installation.mdx b/src/content/docs/getting-started/installation.mdx index 42f6fc6..965739b 100644 --- a/src/content/docs/getting-started/installation.mdx +++ b/src/content/docs/getting-started/installation.mdx @@ -10,7 +10,7 @@ We are going to set up "Production" ready environment, for this we are going to Solar System is an orchestration tool that simplifies the deployment and management of Sunrise and its related components using Docker. It provides easy setup and configuration for server administrators with versioning support. -If you are more interested in development setup, please refer to the [Contributing](../contributing) section. +If you are more interested in development setup, please refer to the [Contributing](/contributing) section. :::tip 👀 We recommend watching the **[installation video guide](https://youtu.be/ukVc4anmtIs?si=ElITsNDIXw6ijxGP)** for a step-by-step walkthrough. @@ -112,7 +112,7 @@ You may be prompted to run multiple scripts during setup. If you are using **Win :::note If you want Sunrise to use the Bancho API **(highly recommended)**, fill `OBSERVATORY_BANCHO_CLIENT_ID` and `OBSERVATORY_BANCHO_CLIENT_SECRET` in `.env`. -If you don't know how to get these values, follow the instructions in the [FAQ](./faq#where-can-i-get-bancho_client_id-and-bancho_client_secret) section. +If you don't know how to get these values, follow the instructions in the [FAQ](/getting-started/faq#where-can-i-get-bancho_client_id-and-bancho_client_secret) section. ::: ### 4. Running the Server @@ -214,7 +214,7 @@ If you encounter any issues during the setup process, please check the following Now that you have the server up and running, you can start exploring its features and capabilities. -Please follow the [Configuration](./configuration) section to learn how to manage the server. +Please follow the [Configuration](/getting-started/configuration) section to learn how to manage the server. You will learn how to: - Update website branding (logo, colors, etc.) diff --git a/src/content/docs/getting-started/what-is-sunrise.mdx b/src/content/docs/getting-started/what-is-sunrise.mdx index 8488eeb..e913015 100644 --- a/src/content/docs/getting-started/what-is-sunrise.mdx +++ b/src/content/docs/getting-started/what-is-sunrise.mdx @@ -67,7 +67,7 @@ Sunrise is built with the following principles in mind: We hope this gives you a better understanding of what Sunrise is and what it aims to achieve. -If you more interested in the technical details of how the server works, check out the [Contributing](../contributing) section. +If you more interested in the technical details of how the server works, check out the [Contributing](/contributing) section. Now, let's get started with setting up the server and exploring its features! diff --git a/src/content/docs/index.mdx b/src/content/docs/index.mdx index 4a6ea6b..2edec49 100644 --- a/src/content/docs/index.mdx +++ b/src/content/docs/index.mdx @@ -8,10 +8,10 @@ hero: file: ../../assets/frontpage.png actions: - text: Get Started - link: getting-started/installation + link: /getting-started/installation icon: right-arrow - text: What is Sunrise? - link: getting-started/what-is-sunrise + link: /getting-started/what-is-sunrise icon: external variant: minimal