import { defineConfig } from 'astro/config'; import preact from '@astrojs/preact'; import react from '@astrojs/react'; import mdx from '@astrojs/mdx'; import remarkToc from 'remark-toc'; import rehypeSlug from 'rehype-slug'; import rehypeAutolinkHeadings from 'rehype-autolink-headings'; import tailwind from '@astrojs/tailwind'; import AstroPWA from '@vite-pwa/astro'; // import { visualizer } from 'rollup-plugin-visualizer'; const options = { // See https://mdxjs.com/advanced/plugins remarkPlugins: [ remarkToc, // E.g. `remark-frontmatter` ], rehypePlugins: [rehypeSlug, rehypeAutolinkHeadings], }; // https://astro.build/config export default defineConfig({ integrations: [ // Enable Preact to support Preact JSX components. preact(), // Enable React for the Algolia search component. react(), mdx(options), tailwind(), AstroPWA({ devOptions: { enabled: true, }, manifest: { includeAssets: ['favicon.ico', 'icons/apple-icon-180.png', 'favicon.svg'], name: 'Strudel REPL', short_name: 'Strudel', description: 'Strudel is a music live coding environment for the browser, porting the TidalCycles pattern language to JavaScript.', theme_color: '#222222', icons: [ { src: 'icons/manifest-icon-192.maskable.png', sizes: '192x192', type: 'image/png', purpose: 'any', }, { src: 'icons/manifest-icon-192.maskable.png', sizes: '192x192', type: 'image/png', purpose: 'maskable', }, { src: 'icons/manifest-icon-512.maskable.png', sizes: '512x512', type: 'image/png', purpose: 'any', }, { src: 'icons/manifest-icon-512.maskable.png', sizes: '512x512', type: 'image/png', purpose: 'maskable', }, ], }, }), ], site: `https://strudel.tidalcycles.org`, base: '/', vite: { ssr: { // Example: Force a broken package to skip SSR processing, if needed external: ['fraction.js'], // https://github.com/infusion/Fraction.js/issues/51 }, }, }); /* build: { outDir: '../out', sourcemap: true, rollupOptions: { plugins: [visualizer({ template: 'treemap' })], }, }, */