38 lines
1.7 KiB
JavaScript
38 lines
1.7 KiB
JavaScript
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 <a>. 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'],
|
|
},
|
|
},
|
|
});
|