Files
blog/astro.config.mjs
Gabriel Vidal 3869315b5d feat: beta redesign — 5 switchable designs + @gabvdl/ui integration
Five complete visual identities (terminal, zine, arcade, editorial,
blueprint) switched by a fixed bottom-right 5-button group, persisted in
localStorage and linkable via ?design=<name>. Chrome rebuilt on semantic
classes + CSS design tokens (src/styles/designs/). @gabvdl/ui wired in:
GlobalSearch (Cmd-K palette over search-index.json, replaces the Svelte
Lunr modal), ImageViewer on article images, CopyButton on code blocks.
Deployed to beta.blog.dev.gabvdl.xyz.
2026-08-09 14:45:41 +02:00

67 lines
2.2 KiB
JavaScript
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
import path, { dirname } from "path";
import { fileURLToPath } from "url";
import svelte from "@astrojs/svelte";
import tailwind from "@astrojs/tailwind";
import sitemap from "@astrojs/sitemap";
import mdx from "@astrojs/mdx";
import { defineConfig } from "astro/config";
import react from "@astrojs/react";
const __filename = fileURLToPath(import.meta.url);
const __dirname = dirname(__filename);
// Full Astro Configuration API Documentation:
// https://docs.astro.build/reference/configuration-reference
// @type-check enabled!
// VSCode and other TypeScript-enabled text editors will provide auto-completion,
// helpful tooltips, and warnings if your exported object is invalid.
// You can disable this by removing "@ts-check" and `@type` comments below.
// @ts-check
// https://astro.build/config
// https://astro.build/config
// https://astro.build/config
export default defineConfig(
/** @type {import('astro').AstroUserConfig} */ {
// root: '.', // Where to resolve all URLs relative to. Useful if you have a monorepo project.
// outDir: './dist', // When running `astro build`, path to final static output
// publicDir: './public', // A folder of static files Astro will copy to the root. Useful for favicons, images, and other files that dont need processing.
output: "static",
site: "https://blog.dev.gabvdl.xyz",
// Your public domain, e.g.: https://my-site.dev/. Used to generate sitemaps and canonical URLs.
server: {
// port: 3000, // The port to run the dev server on.
},
integrations: [
mdx(),
svelte(),
tailwind({
config: {
applyBaseStyles: false,
},
}),
sitemap(),
react(),
],
vite: {
plugins: [],
resolve: {
alias: {
$: path.resolve(__dirname, "./src"),
},
},
optimizeDeps: {
allowNodeBuiltins: true,
},
ssr: {
// @gabvdl/ui (and its prismjs subpath imports) must be bundled by
// Vite: left external, Node's ESM resolver chokes on the package's
// extensionless `prismjs/components/*` imports during static builds.
noExternal: ["@gabvdl/ui", "prismjs"],
},
},
}
);