diff --git a/.prettierrc b/.prettierrc new file mode 100644 index 0000000..d7f548d --- /dev/null +++ b/.prettierrc @@ -0,0 +1,6 @@ +{ + "tabWidth": 2, + "useTabs": false, + "printWidth": 120, + "proseWrap": "always" +} \ No newline at end of file diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..8b856a5 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,6 @@ +{ + "editor.defaultFormatter": "esbenp.prettier-vscode", + "[javascript]": { + "editor.defaultFormatter": "esbenp.prettier-vscode" + } +} diff --git a/astro.config.mjs b/astro.config.mjs index 1b39364..2304d21 100644 --- a/astro.config.mjs +++ b/astro.config.mjs @@ -1,21 +1,20 @@ // @ts-check import { defineConfig } from 'astro/config'; import starlight from '@astrojs/starlight'; +import sitemap from '@astrojs/sitemap'; // https://astro.build/config export default defineConfig({ + site: 'https://workaround.org', integrations: [ starlight({ - title: 'My Docs', - social: { - github: 'https://github.com/withastro/starlight', - }, + title: 'ISPmail Guide', sidebar: [ { label: 'Guides', items: [ // Each item here is one entry in the navigation menu. - { label: 'Example Guide', slug: 'guides/example' }, + { label: 'Start Here', slug: 'ispmail-bookworm' }, ], }, { @@ -23,6 +22,12 @@ export default defineConfig({ autogenerate: { directory: 'reference' }, }, ], + logo: { + light: './src/assets/logo.svg', + dark: './src/assets/logo-dark.svg', + replacesTitle: true, + }, }), + sitemap() ], }); diff --git a/package.json b/package.json index 535badc..26ffcc2 100644 --- a/package.json +++ b/package.json @@ -10,10 +10,11 @@ "astro": "astro" }, "dependencies": { + "@astrojs/check": "^0.9.4", + "@astrojs/sitemap": "^3.2.1", "@astrojs/starlight": "^0.28.3", "astro": "^4.15.3", "sharp": "^0.32.5", - "@astrojs/check": "^0.9.4", "typescript": "^5.6.3" } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 3c9c3a6..527f8e0 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -10,7 +10,10 @@ importers: dependencies: '@astrojs/check': specifier: ^0.9.4 - version: 0.9.4(typescript@5.6.3) + version: 0.9.4(prettier@3.3.3)(typescript@5.6.3) + '@astrojs/sitemap': + specifier: ^3.2.1 + version: 3.2.1 '@astrojs/starlight': specifier: ^0.28.3 version: 0.28.3(astro@4.16.6(rollup@4.24.0)(typescript@5.6.3)) @@ -1725,6 +1728,11 @@ packages: engines: {node: '>=10.13.0'} hasBin: true + prettier@3.3.3: + resolution: {integrity: sha512-i2tDNA0O5IrMO757lfrdQZCc2jPNDVntV0m/+4whiDfWaTKfMNgR7Qz0NAeGz/nRqF4m5/6CLzbP4/liHt12Ew==} + engines: {node: '>=14'} + hasBin: true + prismjs@1.29.0: resolution: {integrity: sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q==} engines: {node: '>=6'} @@ -2327,9 +2335,9 @@ snapshots: '@jridgewell/gen-mapping': 0.3.5 '@jridgewell/trace-mapping': 0.3.25 - '@astrojs/check@0.9.4(typescript@5.6.3)': + '@astrojs/check@0.9.4(prettier@3.3.3)(typescript@5.6.3)': dependencies: - '@astrojs/language-server': 2.15.3(typescript@5.6.3) + '@astrojs/language-server': 2.15.3(prettier@3.3.3)(typescript@5.6.3) chokidar: 4.0.1 kleur: 4.1.5 typescript: 5.6.3 @@ -2342,7 +2350,7 @@ snapshots: '@astrojs/internal-helpers@0.4.1': {} - '@astrojs/language-server@2.15.3(typescript@5.6.3)': + '@astrojs/language-server@2.15.3(prettier@3.3.3)(typescript@5.6.3)': dependencies: '@astrojs/compiler': 2.10.3 '@astrojs/yaml2ts': 0.2.1 @@ -2356,12 +2364,14 @@ snapshots: volar-service-css: 0.0.61(@volar/language-service@2.4.6) volar-service-emmet: 0.0.61(@volar/language-service@2.4.6) volar-service-html: 0.0.61(@volar/language-service@2.4.6) - volar-service-prettier: 0.0.61(@volar/language-service@2.4.6) + volar-service-prettier: 0.0.61(@volar/language-service@2.4.6)(prettier@3.3.3) volar-service-typescript: 0.0.61(@volar/language-service@2.4.6) volar-service-typescript-twoslash-queries: 0.0.61(@volar/language-service@2.4.6) volar-service-yaml: 0.0.61(@volar/language-service@2.4.6) vscode-html-languageservice: 5.3.1 vscode-uri: 3.0.8 + optionalDependencies: + prettier: 3.3.3 transitivePeerDependencies: - typescript @@ -4545,6 +4555,9 @@ snapshots: prettier@2.8.7: optional: true + prettier@3.3.3: + optional: true + prismjs@1.29.0: {} prompts@2.4.2: @@ -5107,11 +5120,12 @@ snapshots: optionalDependencies: '@volar/language-service': 2.4.6 - volar-service-prettier@0.0.61(@volar/language-service@2.4.6): + volar-service-prettier@0.0.61(@volar/language-service@2.4.6)(prettier@3.3.3): dependencies: vscode-uri: 3.0.8 optionalDependencies: '@volar/language-service': 2.4.6 + prettier: 3.3.3 volar-service-typescript-twoslash-queries@0.0.61(@volar/language-service@2.4.6): dependencies: diff --git a/public/favicon.svg b/public/favicon.svg index cba5ac1..932dba3 100644 --- a/public/favicon.svg +++ b/public/favicon.svg @@ -1 +1,78 @@ - \ No newline at end of file + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + diff --git a/public/large-pingu.jpg b/public/large-pingu.jpg new file mode 100644 index 0000000..5682175 Binary files /dev/null and b/public/large-pingu.jpg differ diff --git a/public/robots.txt b/public/robots.txt new file mode 100644 index 0000000..d8357fd --- /dev/null +++ b/public/robots.txt @@ -0,0 +1,4 @@ +User-agent: * +Allow: / + +Sitemap: https://workaround.org/sitemap-index.xml diff --git a/src/assets/houston.webp b/src/assets/houston.webp deleted file mode 100644 index 930c164..0000000 Binary files a/src/assets/houston.webp and /dev/null differ diff --git a/src/assets/logo-dark.svg b/src/assets/logo-dark.svg new file mode 100644 index 0000000..643e66d --- /dev/null +++ b/src/assets/logo-dark.svg @@ -0,0 +1,118 @@ + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + ISPmail + GUIDE + + + + + diff --git a/src/assets/logo.svg b/src/assets/logo.svg new file mode 100644 index 0000000..5c64647 --- /dev/null +++ b/src/assets/logo.svg @@ -0,0 +1,122 @@ + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + ISPmail + GUIDE + diff --git a/src/components/Footer.astro b/src/components/Footer.astro new file mode 100644 index 0000000..c9a6fec --- /dev/null +++ b/src/components/Footer.astro @@ -0,0 +1,3 @@ + diff --git a/src/content/docs/index.mdx b/src/content/docs/index.mdx index 664b681..67c9d49 100644 --- a/src/content/docs/index.mdx +++ b/src/content/docs/index.mdx @@ -1,19 +1,15 @@ --- -title: Welcome to Starlight -description: Get started building your docs site with Starlight. +title: Welcome to ISPmail – a free guide to your own mail server +description: ISPmail – a free guide to your own mail server template: splash hero: - tagline: Congrats on setting up a new Starlight project! + tagline: ISPmail is a free but extensive do-it-yourself guide to help you build a fully-functional mail server from 100% open-source components. It is based on Debian GNU/Linux. Light enough for your friends and family. Or powerful enough for professional use. image: - file: ../../assets/houston.webp + file: /public/large-pingu.jpg actions: - - text: Example Guide - link: /guides/example/ + - text: Let's get into it + link: /ispmail-bookworm icon: right-arrow - - text: Read the Starlight docs - link: https://starlight.astro.build - icon: external - variant: minimal --- import { Card, CardGrid } from '@astrojs/starlight/components'; diff --git a/src/content/docs/guides/example.md b/src/content/docs/ispmail-bookworm/index.md similarity index 100% rename from src/content/docs/guides/example.md rename to src/content/docs/ispmail-bookworm/index.md diff --git a/src/content/docs/reference/example.md b/src/content/docs/reference/example.md index 0224f09..2f9e6b7 100644 --- a/src/content/docs/reference/example.md +++ b/src/content/docs/reference/example.md @@ -3,8 +3,8 @@ title: Example Reference description: A reference page in my new Starlight docs site. --- -Reference pages are ideal for outlining how things work in terse and clear terms. -Less concerned with telling a story or addressing a specific use case, they should give a comprehensive outline of what you're documenting. +Reference pages are ideal for outlining how things work in terse and clear terms. Less concerned with telling a story or +addressing a specific use case, they should give a comprehensive outline of what you're documenting. ## Further reading