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"), }, }, }, });