First version

This commit is contained in:
Christoph Haas 2024-10-21 00:51:17 +02:00
parent df84b9c4a2
commit 4d9df2bc30
15 changed files with 377 additions and 25 deletions

6
.prettierrc Normal file
View file

@ -0,0 +1,6 @@
{
"tabWidth": 2,
"useTabs": false,
"printWidth": 120,
"proseWrap": "always"
}

6
.vscode/settings.json vendored Normal file
View file

@ -0,0 +1,6 @@
{
"editor.defaultFormatter": "esbenp.prettier-vscode",
"[javascript]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
}
}

View file

@ -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()
],
});

View file

@ -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"
}
}

26
pnpm-lock.yaml generated
View file

@ -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:

View file

@ -1 +1,78 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 128 128"><path fill-rule="evenodd" d="M81 36 64 0 47 36l-1 2-9-10a6 6 0 0 0-9 9l10 10h-2L0 64l36 17h2L28 91a6 6 0 1 0 9 9l9-10 1 2 17 36 17-36v-2l9 10a6 6 0 1 0 9-9l-9-9 2-1 36-17-36-17-2-1 9-9a6 6 0 1 0-9-9l-9 10v-2Zm-17 2-2 5c-4 8-11 15-19 19l-5 2 5 2c8 4 15 11 19 19l2 5 2-5c4-8 11-15 19-19l5-2-5-2c-8-4-15-11-19-19l-2-5Z" clip-rule="evenodd"/><path d="M118 19a6 6 0 0 0-9-9l-3 3a6 6 0 1 0 9 9l3-3Zm-96 4c-2 2-6 2-9 0l-3-3a6 6 0 1 1 9-9l3 3c3 2 3 6 0 9Zm0 82c-2-2-6-2-9 0l-3 3a6 6 0 1 0 9 9l3-3c3-2 3-6 0-9Zm96 4a6 6 0 0 1-9 9l-3-3a6 6 0 1 1 9-9l3 3Z"/><style>path{fill:#000}@media (prefers-color-scheme:dark){path{fill:#fff}}</style></svg>
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="15.073367mm"
height="9.8497343mm"
viewBox="0 0 15.073367 9.8497342"
version="1.1"
id="svg1886"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:dc="http://purl.org/dc/elements/1.1/">
<defs
id="defs1880">
<linearGradient
gradientTransform="translate(-1.9122445,-1.9122446)"
x1="7.0521998"
x2="133.89"
y1="63.737"
gradientUnits="userSpaceOnUse"
y2="63.737"
id="XMLID_7_">
<stop
offset="0"
stop-color="#EAEAEA"
id="stop6" />
<stop
offset=".1981"
stop-color="#E1E1E1"
id="stop8" />
<stop
offset=".5226"
stop-color="#C9C8C8"
id="stop10" />
<stop
offset=".9311"
stop-color="#A1A0A0"
id="stop12" />
<stop
offset="1"
stop-color="#9A9999"
id="stop14" />
</linearGradient>
</defs>
<metadata
id="metadata1883">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
</cc:Work>
</rdf:RDF>
</metadata>
<g
id="g1002"
transform="matrix(1.5289757,0,0,1.5289757,18.95463,-139.11599)">
<path
id="path1772-2"
d="m -12.250461,97.282149 h 9.5655036 v -6.149252 h -9.5655036 z"
style="fill:#dbe2e3;stroke:#000000;stroke-width:0.292591;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<path
id="path1776-2"
d="m -12.250461,97.282149 2.7330011,-3.237244"
style="fill:none;stroke:#000000;stroke-width:0.292591;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<path
style="fill:none;stroke:#000000;stroke-width:0.292591;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m -2.6849574,97.282149 -2.733001,-3.319926"
id="path1778-3" />
<path
id="path1774-0"
d="m -12.250461,91.132897 c 0,0 2.8235715,3.735168 4.7827518,3.735168 1.9591803,0 4.7827518,-3.735168 4.7827518,-3.735168 z"
style="fill:#93a7ac;stroke:#000000;stroke-width:0.293;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
</g>
</svg>

Before

Width:  |  Height:  |  Size: 696 B

After

Width:  |  Height:  |  Size: 2.6 KiB

Before After
Before After

BIN
public/large-pingu.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 45 KiB

4
public/robots.txt Normal file
View file

@ -0,0 +1,4 @@
User-agent: *
Allow: /
Sitemap: https://workaround.org/sitemap-index.xml

Binary file not shown.

Before

Width:  |  Height:  |  Size: 96 KiB

118
src/assets/logo-dark.svg Normal file
View file

@ -0,0 +1,118 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="38.721947mm"
height="9.9010124mm"
viewBox="0 0 38.721946 9.9010123"
version="1.1"
id="svg1886"
sodipodi:docname="logo-dark.svg"
inkscape:version="1.1.2 (0a00cf5339, 2022-02-04)"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:dc="http://purl.org/dc/elements/1.1/">
<sodipodi:namedview
id="namedview1036"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:document-units="mm"
showgrid="false"
inkscape:zoom="5.2135055"
inkscape:cx="84.39619"
inkscape:cy="18.126"
inkscape:window-width="2560"
inkscape:window-height="1368"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="svg1886" />
<defs
id="defs1880">
<linearGradient
gradientTransform="translate(-1.9122445,-1.9122446)"
x1="7.0521998"
x2="133.89"
y1="63.737"
gradientUnits="userSpaceOnUse"
y2="63.737"
id="XMLID_7_">
<stop
offset="0"
stop-color="#EAEAEA"
id="stop6" />
<stop
offset=".1981"
stop-color="#E1E1E1"
id="stop8" />
<stop
offset=".5226"
stop-color="#C9C8C8"
id="stop10" />
<stop
offset=".9311"
stop-color="#A1A0A0"
id="stop12" />
<stop
offset="1"
stop-color="#9A9999"
id="stop14" />
</linearGradient>
</defs>
<metadata
id="metadata1883">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
</cc:Work>
</rdf:RDF>
</metadata>
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:7.9861px;line-height:0%;font-family:Ubuntu;-inkscape-font-specification:Ubuntu;letter-spacing:0px;word-spacing:0px;fill:#e6e6e6;fill-opacity:1;stroke:none;stroke-width:0.665508"
x="16.738888"
y="5.1512094"
id="text4671-1"><tspan
id="tspan4673-2"
x="16.738888"
y="5.1512094"
style="font-size:6.63816px;line-height:1.25;fill:#e6e6e6;stroke:none;stroke-width:0.665508">ISPmail</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:7.30539px;line-height:0%;font-family:Ubuntu;-inkscape-font-specification:Ubuntu;letter-spacing:0px;word-spacing:0px;fill:#999999;fill-opacity:1;stroke:none;stroke-width:0.489324"
x="13.466908"
y="12.148165"
id="text4671-3-9"
transform="scale(1.2441299,0.80377458)"><tspan
id="tspan4673-6-3"
x="13.466908"
y="12.148165"
style="font-size:6.07235px;line-height:1.25;fill:#999999;stroke-width:0.489324">GUIDE</tspan></text>
<path
id="path1772-2"
d="M 0.22397182,9.6773319 H 14.849394 V 0.27527498 H 0.22397182 Z"
style="fill:#b3b3b3;stroke:#ffffff;stroke-width:0.447365;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<path
id="path1776-2"
d="M 0.22397182,9.6773319 4.4026641,4.7276645"
style="fill:none;stroke:#ffffff;stroke-width:0.447365;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<path
style="fill:none;stroke:#ffffff;stroke-width:0.447365;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="M 14.849394,9.6773319 10.670702,4.6012457"
id="path1778-3" />
<path
id="path1774-0"
d="m 0.22397182,0.27527498 c 0,0 4.31717218,5.71098112 7.31271128,5.71098112 2.9955389,0 7.3127109,-5.71098112 7.3127109,-5.71098112 z"
style="fill:#93a7ac;stroke:#ffffff;stroke-width:0.44799;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
</svg>

After

Width:  |  Height:  |  Size: 4.4 KiB

122
src/assets/logo.svg Normal file
View file

@ -0,0 +1,122 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="38.721947mm"
height="9.9010124mm"
viewBox="0 0 38.721946 9.9010123"
version="1.1"
id="svg1886"
sodipodi:docname="logo.svg"
inkscape:version="1.1.2 (0a00cf5339, 2022-02-04)"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:dc="http://purl.org/dc/elements/1.1/">
<sodipodi:namedview
id="namedview1036"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:document-units="mm"
showgrid="false"
inkscape:zoom="5.2135055"
inkscape:cx="84.396189"
inkscape:cy="18.126"
inkscape:window-width="2560"
inkscape:window-height="1368"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="svg1886" />
<defs
id="defs1880">
<linearGradient
gradientTransform="translate(-1.9122445,-1.9122446)"
x1="7.0521998"
x2="133.89"
y1="63.737"
gradientUnits="userSpaceOnUse"
y2="63.737"
id="XMLID_7_">
<stop
offset="0"
stop-color="#EAEAEA"
id="stop6" />
<stop
offset=".1981"
stop-color="#E1E1E1"
id="stop8" />
<stop
offset=".5226"
stop-color="#C9C8C8"
id="stop10" />
<stop
offset=".9311"
stop-color="#A1A0A0"
id="stop12" />
<stop
offset="1"
stop-color="#9A9999"
id="stop14" />
</linearGradient>
</defs>
<metadata
id="metadata1883">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
</cc:Work>
</rdf:RDF>
</metadata>
<g
id="g1002"
transform="matrix(1.5289757,0,0,1.5289757,18.954629,-139.06471)">
<path
id="path1772-2"
d="m -12.250461,97.282149 h 9.5655036 v -6.149252 h -9.5655036 z"
style="fill:#dbe2e3;stroke:#000000;stroke-width:0.292591;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<path
id="path1776-2"
d="m -12.250461,97.282149 2.7330011,-3.237244"
style="fill:none;stroke:#000000;stroke-width:0.292591;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<path
style="fill:none;stroke:#000000;stroke-width:0.292591;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m -2.6849574,97.282149 -2.733001,-3.319926"
id="path1778-3" />
<path
id="path1774-0"
d="m -12.250461,91.132897 c 0,0 2.8235715,3.735168 4.7827518,3.735168 1.9591803,0 4.7827518,-3.735168 4.7827518,-3.735168 z"
style="fill:#93a7ac;stroke:#000000;stroke-width:0.293;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
</g>
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:7.9861px;line-height:0%;font-family:Ubuntu;-inkscape-font-specification:Ubuntu;letter-spacing:0px;word-spacing:0px;fill:#1a1a1a;fill-opacity:1;stroke:none;stroke-width:0.665508"
x="16.738888"
y="5.1512094"
id="text4671-1"><tspan
id="tspan4673-2"
x="16.738888"
y="5.1512094"
style="font-size:6.63816px;line-height:1.25;fill:#1a1a1a;stroke:none;stroke-width:0.665508">ISPmail</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:7.30539px;line-height:0%;font-family:Ubuntu;-inkscape-font-specification:Ubuntu;letter-spacing:0px;word-spacing:0px;fill:#666666;fill-opacity:1;stroke:none;stroke-width:0.489324"
x="13.466908"
y="12.148165"
id="text4671-3-9"
transform="scale(1.2441299,0.80377458)"><tspan
id="tspan4673-6-3"
x="13.466908"
y="12.148165"
style="font-size:6.07235px;line-height:1.25;fill:#666666;stroke-width:0.489324">GUIDE</tspan></text>
</svg>

After

Width:  |  Height:  |  Size: 4.5 KiB

View file

@ -0,0 +1,3 @@
<footer>
<p>&copy; 2024 Your Company Name. All rights reserved.</p>
</footer>

View file

@ -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';

View file

@ -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