74 lines
1.6 KiB
JavaScript
74 lines
1.6 KiB
JavaScript
import { defineConfig } from "astro/config";
|
|
import { filterSitemapByDefaultLocale, i18n } from "astro-i18n-aut/integration";
|
|
import sitemap from "@astrojs/sitemap";
|
|
import Icons from "unplugin-icons/vite";
|
|
import mdx from "@astrojs/mdx";
|
|
import glsl from "vite-plugin-glsl";
|
|
|
|
import svelte from "@astrojs/svelte";
|
|
import UnoCSS from "unocss/astro";
|
|
|
|
const defaultLocale = "de";
|
|
const locales = {
|
|
en: "en",
|
|
de: "de",
|
|
};
|
|
|
|
const DEFAULT_LAYOUT = "@layouts/Post.astro";
|
|
|
|
function setDefaultLayout() {
|
|
return function(_, file) {
|
|
const { frontmatter } = file.data.astro;
|
|
if (!frontmatter.layout) frontmatter.layout = DEFAULT_LAYOUT;
|
|
};
|
|
}
|
|
|
|
export default defineConfig({
|
|
site: "https://max-richter.dev",
|
|
trailingSlash: "never",
|
|
prefetch: true,
|
|
image: {
|
|
remotePatterns: [{ protocol: "https" }],
|
|
},
|
|
build: {
|
|
format: "file",
|
|
},
|
|
vite: {
|
|
plugins: [
|
|
glsl(),
|
|
Icons({
|
|
compiler: "svelte",
|
|
}),
|
|
],
|
|
server: {
|
|
watch: {
|
|
// Customize watch behavior to reduce file watchers
|
|
ignored: ["**/node_modules/**", "**/dist/**", "**/.git/**"],
|
|
usePolling: process.env.NODE_ENV === "production",
|
|
},
|
|
},
|
|
},
|
|
markdown: {
|
|
remarkPlugins: [setDefaultLayout],
|
|
},
|
|
integrations: [
|
|
i18n({
|
|
exclude: ["pages/**/*.json.ts", "pages/api/**/*"],
|
|
locales,
|
|
defaultLocale,
|
|
}),
|
|
mdx(),
|
|
svelte(),
|
|
UnoCSS({
|
|
injectReset: true,
|
|
}),
|
|
sitemap({
|
|
i18n: {
|
|
locales,
|
|
defaultLocale,
|
|
},
|
|
filter: filterSitemapByDefaultLocale({ defaultLocale }),
|
|
}),
|
|
],
|
|
});
|