import { defineConfig } from "vite"; import react from "@vitejs/plugin-react"; import mdx from "@mdx-js/rollup"; import remarkFrontmatter from "remark-frontmatter"; import remarkMdxFrontmatter from "remark-mdx-frontmatter"; import rehypeSlug from "rehype-slug"; import rehypeToc from "@stefanprobst/rehype-extract-toc"; import rehypeTocExport from "@stefanprobst/rehype-extract-toc/mdx"; import rehypeAutolinkHeadings from "rehype-autolink-headings"; import { VitePWA } from "vite-plugin-pwa"; import remarkGfm from "remark-gfm"; // https://vitejs.dev/config/ export default defineConfig({ define: { "process.env": process.env, }, plugins: [ react(), // @ts-ignore mdx({ remarkPlugins: [ remarkFrontmatter, [remarkMdxFrontmatter, { name: "frontMatter" }], remarkGfm, ], rehypePlugins: [ rehypeSlug, [ rehypeAutolinkHeadings, { behavior: "wrap", properties: { className: "heading-link" }, }, ], rehypeToc, rehypeTocExport, ], }), VitePWA({ workbox: { globPatterns: [ "**/*.(js|html|svg|png|jpg|jpeg|eot|woff|woff2|ttf|mp4|m4a)", ], maximumFileSizeToCacheInBytes: 5242880, }, includeAssets: ["**/*.(js|html|svg|png|jpg|jpeg|eot|woff|woff2|ttf)"], manifest: { short_name: "Pashto Grammar", name: "LingDocs Pashto Grammar", icons: [ { src: "icons/android-chrome-36x36.png", sizes: "36x36", type: "image/png", }, { src: "icons/android-chrome-48x48.png", sizes: "48x48", type: "image/png", }, { src: "icons/android-chrome-72x72.png", sizes: "72x72", type: "image/png", }, { src: "icons/android-chrome-96x96.png", sizes: "96x96", type: "image/png", }, { src: "icons/android-chrome-144x144.png", sizes: "144x144", type: "image/png", }, { src: "icons/android-chrome-192x192.png", sizes: "192x192", type: "image/png", }, { src: "icons/android-chrome-256x256.png", sizes: "256x256", type: "image/png", }, { src: "icons/android-chrome-384x384.png", sizes: "384x384", type: "image/png", }, { src: "icons/android-chrome-512x512.png", sizes: "512x512", type: "image/png", }, ], start_url: "./table-of-contents", display: "minimal-ui", theme_color: "#DEE1E6", background_color: "#ffffff", }, }), ], });