import { defineConfig } from 'astro/config'; // Static output (zero runtime) — the whole point of the git-based approach. export default defineConfig({ output: 'static', // Public origin — used to build absolute URLs (canonical, og:*, RSS, // sitemap). Change when the portal moves to its production domain. site: 'https://astro.isl-dev.grid.cyfronet.pl', // URL contract, pinned explicitly (these are the defaults): changing either // later rewrites every public URL. nginx serves /path/ via try_files $uri/. trailingSlash: 'ignore', build: { format: 'directory' }, // Lossless whitespace handling instead of the v7 default 'jsx', which drops // line breaks around inline elements and silently glues words to links when // a template line wraps before . Templates render as written. compressHTML: true, // Built-in prefetch on every internal link (no per-link attributes needed). // Default 'hover' strategy: near-instant navigation without the bandwidth // cost of 'viewport' on a 24-card grid; auto-falls back to 'tap' on // data-saver / slow connections (Astro handles that). prefetch: { prefetchAll: true }, server: { port: 4321, host: true }, vite: { build: { // Lightning CSS (the default minifier) illegally folds animation-timeline // INTO the `animation` shorthand (`animation: ... view()`), which browsers // reject — silently killing every scroll-driven effect in production. // esbuild minifies without property merging. cssMinify: 'esbuild', }, server: { // Vite blocks unknown Host headers by default; the demo is viewed through an // ephemeral cloudflared quick tunnel, so allow any *.trycloudflare.com host. allowedHosts: ['.trycloudflare.com'], }, }, });