This commit is contained in:
2025-07-10 13:49:00 +02:00
parent 5457632598
commit a2ef92aaad
11 changed files with 134 additions and 47 deletions

View File

@ -8,6 +8,8 @@ import robotsTxt from "astro-robots-txt";
import path from "node:path"; import path from "node:path";
import mdx from "@astrojs/mdx"; import mdx from "@astrojs/mdx";
import starlight from "@astrojs/starlight";
// https://astro.build/config // https://astro.build/config
export default defineConfig({ export default defineConfig({
output: "static", output: "static",
@ -18,14 +20,40 @@ export default defineConfig({
site: "https://steamwar.de", site: "https://steamwar.de",
integrations: [ integrations: [
svelte(), svelte(),
starlight({
disable404Route: true,
title: "SteamWar Docs",
defaultLocale: "de",
logo: {
src: "./src/images/logo.png",
},
social: [
{ icon: "discord", label: "Discord", href: "https://steamwar.de/discord" },
{ icon: "document", label: "Gitea", href: "https://git.steamwar.de" },
],
sidebar: [
{ label: "Startseite", slug: "docs" },
{ label: "Bau", badge: "WIP", items: ["docs/bausystem", { label: "Script System", items: ["docs/bausystem/script"] }] },
{ label: "Kampfsystem", badge: "WIP", items: ["docs/fightsystem"] },
{ label: "Minigames", badge: "WIP", items: ["docs/minigames"] },
{ label: "Schematicsystem", badge: "WIP", items: ["docs/schematicsystem"] },
{ label: "API", badge: "WIP", items: ["docs/api"] },
],
editLink: {
baseUrl: "https://git.steamwar.de/SteamWar/Website/src/branch/main/",
},
}),
tailwind({ tailwind({
configFile: "./tailwind.config.js", configFile: "./tailwind.config.js",
applyBaseStyles: false,
}), }),
configureI18n(), configureI18n(),
sitemap({ sitemap({
i18n: { i18n: {
defaultLocale: "en", locales: { defaultLocale: "en",
en: "en-US", de: "de-DE", locales: {
en: "en-US",
de: "de-DE",
}, },
}, },
}), }),
@ -49,7 +77,7 @@ export default defineConfig({
{ userAgent: "omgili", disallow: "/" }, { userAgent: "omgili", disallow: "/" },
{ userAgent: "OmigliBot", disallow: "/" }, { userAgent: "OmigliBot", disallow: "/" },
{ userAgent: "PerplexityBot", disallow: "/" }, { userAgent: "PerplexityBot", disallow: "/" },
{ userAgent: "Timpibot", disallow: "/" } { userAgent: "Timpibot", disallow: "/" },
], ],
}), }),
mdx(), mdx(),
@ -66,7 +94,7 @@ export default defineConfig({
"@layouts": path.resolve("./src/layouts"), "@layouts": path.resolve("./src/layouts"),
"@repo": path.resolve("./src/components/repo"), "@repo": path.resolve("./src/components/repo"),
"@stores": path.resolve("./src/components/stores"), "@stores": path.resolve("./src/components/stores"),
"$lib": path.resolve("./src"), $lib: path.resolve("./src"),
}, },
}, },
}, },

View File

@ -58,6 +58,8 @@
"dependencies": { "dependencies": {
"@astrojs/mdx": "^4.3.0", "@astrojs/mdx": "^4.3.0",
"@astrojs/sitemap": "^3.4.0", "@astrojs/sitemap": "^3.4.0",
"@astrojs/starlight": "^0.34.4",
"@astrojs/starlight-tailwind": "^4.0.1",
"@codemirror/commands": "^6.8.1", "@codemirror/commands": "^6.8.1",
"@codemirror/lang-json": "^6.0.1", "@codemirror/lang-json": "^6.0.1",
"@codemirror/view": "^6.36.8", "@codemirror/view": "^6.36.8",

View File

@ -18,6 +18,8 @@
*/ */
import { defineCollection, reference, z } from "astro:content"; import { defineCollection, reference, z } from "astro:content";
import { docsLoader } from "@astrojs/starlight/loaders";
import { docsSchema } from "@astrojs/starlight/schema";
export const pagesSchema = z.object({ export const pagesSchema = z.object({
title: z.string().min(1).max(80), title: z.string().min(1).max(80),
@ -55,8 +57,7 @@ export const downloads = defineCollection({
schema: z.object({ schema: z.object({
name: z.string(), name: z.string(),
description: z.string(), description: z.string(),
url: z.string().url() url: z.string().url().or(z.record(z.string(), z.string())),
.or(z.record(z.string(), z.string())),
sourceUrl: z.string().url().optional(), sourceUrl: z.string().url().optional(),
}), }),
}); });
@ -71,7 +72,8 @@ export const rules = defineCollection({
export const announcements = defineCollection({ export const announcements = defineCollection({
type: "content", type: "content",
schema: ({image}) => z.object({ schema: ({ image }) =>
z.object({
title: z.string(), title: z.string(),
description: z.string(), description: z.string(),
author: z.string().optional(), author: z.string().optional(),
@ -84,32 +86,36 @@ export const announcements = defineCollection({
export const publics = defineCollection({ export const publics = defineCollection({
type: "data", type: "data",
schema: ({image}) => z.object({ schema: ({ image }) =>
"name": z.string(), z.object({
"description": z.string(), name: z.string(),
"id": z.number().positive(), description: z.string(),
"creator": z.string().array().optional(), id: z.number().positive(),
"showcase": z.string().url().optional(), creator: z.string().array().optional(),
"camera": z.object({ showcase: z.string().url().optional(),
"fov": z.number().optional(), camera: z
"near": z.number().optional(), .object({
"far": z.number().optional(), fov: z.number().optional(),
"distance": z.number().optional(), near: z.number().optional(),
}).optional(), far: z.number().optional(),
"image": image(), distance: z.number().optional(),
"alt": image().optional(), })
"xray": image().optional(), .optional(),
"gamemode": reference("modes"), image: image(),
alt: image().optional(),
xray: image().optional(),
gamemode: reference("modes"),
"3d": z.boolean().optional().default(true), "3d": z.boolean().optional().default(true),
}), }),
}); });
export const collections = { export const collections = {
"pages": pages, pages: pages,
"help": help, help: help,
"modes": modes, modes: modes,
"rules": rules, rules: rules,
"downloads": downloads, downloads: downloads,
"announcements": announcements, announcements: announcements,
"publics": publics, publics: publics,
docs: defineCollection({ loader: docsLoader(), schema: docsSchema() }),
}; };

View File

@ -0,0 +1,5 @@
---
title: Überblick
---
WIP

View File

@ -0,0 +1,5 @@
---
title: Überblick
---
WIP

View File

@ -0,0 +1,5 @@
---
title: Script Überblick
---
WIP

View File

@ -0,0 +1,5 @@
---
title: Überblick
---
WIP

View File

@ -0,0 +1,24 @@
---
title: Startseite
desciption: Startseite der SteamWar Dokumentation
---
import { Tabs, TabItem } from '@astrojs/starlight/components';
Herzlich Willkommen in der SteamWar Dokumentation!
## SteamWar beitreten
SteamWar ist ein Minecraft Java Server.
<Tabs>
<TabItem label="Java Edition">
- IP: `steamwar.de`
- Empholene Version: `1.21.5`
</TabItem>
<TabItem label="Bedrock Edition">
- IP: `steamwar.de`
- Port: `19132`
- Version: `Aktuellste`
</TabItem>
</Tabs>

View File

@ -0,0 +1,5 @@
---
title: Überblick
---
WIP

View File

@ -0,0 +1,5 @@
---
title: Überblick
---
WIP

View File

@ -22,10 +22,7 @@ import { fontFamily } from "tailwindcss/defaultTheme";
/** @type {import('tailwindcss').Config} */ /** @type {import('tailwindcss').Config} */
const config = { const config = {
darkMode: ["class"], darkMode: ["class"],
content: [ content: ["./src/**/*.{astro,html,js,jsx,md,mdx,svelte,ts,tsx,vue}", "./node_modules/flowbite-svelte/**/*.{html,js,svelte,ts}"],
"./src/**/*.{astro,html,js,jsx,md,mdx,svelte,ts,tsx,vue}",
"./node_modules/flowbite-svelte/**/*.{html,js,svelte,ts}",
],
safelist: ["dark"], safelist: ["dark"],
theme: { theme: {
container: { container: {