import { defineConfig, envField } from "astro/config"; import tailwindIntegration from "@astrojs/tailwind"; import markdownIntegration from "@astropub/md"; import mdxIntegration from "@astrojs/mdx"; import htaccessIntegration from "astro-htaccess"; import pagefindIntegration from "astro-pagefind"; import { AI_BOTS } from "./src/data/ai_bots"; // https://astro.build/config export default defineConfig({ site: "https://gallery.badmanners.xyz", integrations: [ tailwindIntegration({ applyBaseStyles: false, }), markdownIntegration(), mdxIntegration(), htaccessIntegration({ generateHtaccessFile: import.meta.env.APACHE_CONFIG === "true", customRules: [ // Block AI bots "<IfModule mod_rewrite.c>", " RewriteEngine on", " RewriteBase /", ` RewriteCond %{HTTP_USER_AGENT} ${AI_BOTS.map((bot) => `^${bot}$`).join("|")} [NC]`, " RewriteRule ^ – [F]", "</IfModule>", ], redirects: [ { match: "/story/", url: "/stories/", }, { match: "/game/", url: "/games/", }, ], }), pagefindIntegration(), ], markdown: { smartypants: false, shikiConfig: { themes: { light: "vitesse-light", dark: "vitesse-dark", }, defaultColor: "light", }, }, build: { assets: "assets", }, outDir: "./dist", redirects: { "/stories/1": "/stories", }, experimental: { env: { schema: { PUBLISH_DRAFTS: envField.boolean({ context: "server", access: "public", default: false, }), }, }, }, });