167 lines
6.5 KiB
JavaScript
167 lines
6.5 KiB
JavaScript
import { defineConfig, fontProviders, sharpImageService } from "astro/config";
|
|
import svelte from "@astrojs/svelte";
|
|
import tailwindcss from "@tailwindcss/vite";
|
|
import sitemap from "@astrojs/sitemap";
|
|
import { paraglideVitePlugin } from "@inlang/paraglide-js";
|
|
|
|
import robotsTxt from "astro-robots-txt";
|
|
import path from "node:path";
|
|
import mdx from "@astrojs/mdx";
|
|
|
|
import starlight from "@astrojs/starlight";
|
|
|
|
// https://astro.build/config
|
|
export default defineConfig({
|
|
fonts: [{
|
|
provider: fontProviders.google(),
|
|
name: "Roboto",
|
|
cssVariable: "--font-roboto",
|
|
}, {
|
|
provider: fontProviders.local(),
|
|
name: "Barlow Condensed",
|
|
cssVariable: "--font-barlow-condensed",
|
|
options: {
|
|
variants: [
|
|
{
|
|
src: ["./src/assets/fonts/barlow-condensed/barlow-condensed-regular.woff2"],
|
|
weight: "400",
|
|
style: "normal",
|
|
}, {
|
|
src: ["./src/assets/fonts/barlow-condensed/barlow-condensed-medium.woff2"],
|
|
weight: "500",
|
|
style: "normal"
|
|
}, {
|
|
src: ["./src/assets/fonts/barlow-condensed/barlow-condensed-bold.woff2"],
|
|
weight: "700",
|
|
style: "normal"
|
|
}, {
|
|
src: ["./src/assets/fonts/barlow-condensed/barlow-condensed-italic.woff2"],
|
|
weight: "400",
|
|
style: "italic"
|
|
}, {
|
|
src: ["./src/assets/fonts/barlow-condensed/barlow-condensed-medium-italic.woff2"],
|
|
weight: "500",
|
|
style: "italic"
|
|
}, {
|
|
src: ["./src/assets/fonts/barlow-condensed/barlow-condensed-bold-italic.woff2"],
|
|
weight: "700",
|
|
style: "italic"
|
|
}, {
|
|
src: ["./src/assets/fonts/barlow-condensed/barlow-condensed-black.woff2"],
|
|
weight: "900",
|
|
style: "normal"
|
|
}, {
|
|
src: ["./src/assets/fonts/barlow-condensed/barlow-condensed-black-italic.woff2"],
|
|
weight: "900",
|
|
style: "italic"
|
|
}, {
|
|
src: ["./src/assets/fonts/barlow-condensed/barlow-condensed-light.woff2"],
|
|
weight: "300",
|
|
style: "normal"
|
|
}, {
|
|
src: ["./src/assets/fonts/barlow-condensed/barlow-condensed-light-italic.woff2"],
|
|
weight: "300",
|
|
style: "italic"
|
|
}
|
|
]
|
|
}
|
|
}],
|
|
output: "static",
|
|
i18n: {
|
|
defaultLocale: "de",
|
|
locales: ["de", "en"],
|
|
routing: {
|
|
prefixDefaultLocale: false,
|
|
},
|
|
},
|
|
image: {
|
|
service: sharpImageService(),
|
|
},
|
|
compressHTML: true,
|
|
site: "https://steamwar.de",
|
|
integrations: [
|
|
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/master/",
|
|
},
|
|
}),
|
|
sitemap({
|
|
i18n: {
|
|
defaultLocale: "de",
|
|
locales: {
|
|
en: "en-US",
|
|
de: "de-DE",
|
|
},
|
|
},
|
|
}),
|
|
robotsTxt({
|
|
policy: [
|
|
{ userAgent: "*", disallow: ["/admin", "/login", "/dashboard", "/de", "/_astro"] },
|
|
{ userAgent: "anthropic-ai", disallow: "/" },
|
|
{ userAgent: "Applebot-Extended", disallow: "/" },
|
|
{ userAgent: "Bytespider", disallow: "/" },
|
|
{ userAgent: "CCBot", disallow: "/" },
|
|
{ userAgent: "ChatGPT-User", disallow: "/" },
|
|
{ userAgent: "ClaudeBot", disallow: "/" },
|
|
{ userAgent: "Claude-Web", disallow: "/" },
|
|
{ userAgent: "cohere-ai", disallow: "/" },
|
|
{ userAgent: "Diffbot", disallow: "/" },
|
|
{ userAgent: "FacebookBot", disallow: "/" },
|
|
{ userAgent: "GPTBot", disallow: "/" },
|
|
{ userAgent: "ImagesiftBot", disallow: "/" },
|
|
{ userAgent: "Meta-ExternalAgent", disallow: "/" },
|
|
{ userAgent: "Meta-ExternalFetcher", disallow: "/" },
|
|
{ userAgent: "omgili", disallow: "/" },
|
|
{ userAgent: "OmigliBot", disallow: "/" },
|
|
{ userAgent: "PerplexityBot", disallow: "/" },
|
|
{ userAgent: "Timpibot", disallow: "/" },
|
|
],
|
|
}),
|
|
mdx(),
|
|
],
|
|
vite: {
|
|
plugins: [
|
|
paraglideVitePlugin({
|
|
project: "./project.inlang",
|
|
outdir: "./src/paraglide",
|
|
strategy: ["url", "globalVariable", "baseLocale"],
|
|
emitTsDeclarations: true,
|
|
}),
|
|
tailwindcss(),
|
|
],
|
|
resolve: {
|
|
alias: {
|
|
"@components": path.resolve("./src/components"),
|
|
"@pages": path.resolve("./src/pages"),
|
|
"@styles": path.resolve("./src/styles"),
|
|
"@utils": path.resolve("./src/util"),
|
|
"@type": path.resolve("./src/components/types"),
|
|
"@images": path.resolve("./src/images"),
|
|
"@layouts": path.resolve("./src/layouts"),
|
|
"@repo": path.resolve("./src/components/repo"),
|
|
"@stores": path.resolve("./src/components/stores"),
|
|
$lib: path.resolve("./src"),
|
|
},
|
|
},
|
|
},
|
|
});
|