import node from "@astrojs/node"; import react from "@astrojs/react"; import icon from "astro-iconset"; import { defineConfig, fontProviders } from "astro/config"; import emdash, { local } from "emdash/astro"; import { sqlite } from "emdash/db"; export default defineConfig({ output: "server", adapter: node({ mode: "standalone", }), image: { layout: "constrained", responsiveStyles: true, }, integrations: [ react(), icon({ // Only ship the Phosphor icons actually referenced in templates, // not the full @iconify-json/ph set. include: { ph: [ "chart-bar", "check-circle", "clock", "cloud", "code", "currency-dollar", "envelope", "globe", "heart", "lifebuoy", "lightning", "lock", "shield-check", "sparkle", "star", "users-three", ], }, }), emdash({ database: sqlite({ url: "file:./data.db" }), storage: local({ directory: "./uploads", baseUrl: "/_emdash/api/media/file", }), plugins: [ { id: "marketing-blocks", version: "0.1.0", // Absolute file:// URL so the virtual emdash/plugins module // can resolve this at build time (relative paths fail because // the virtual module has no on-disk location to anchor them). entrypoint: new URL("./src/plugins/marketing-blocks/index.ts", import.meta.url).href, }, ], }), ], fonts: [ { provider: fontProviders.google(), name: "Inter", cssVariable: "--font-sans", weights: [400, 500, 600, 700, 800], fallbacks: ["sans-serif"], }, ], devToolbar: { enabled: false }, });