import path from 'node:path'; import { vitePreprocess } from '@sveltejs/vite-plugin-svelte'; import adapter from '@sveltejs/adapter-auto'; import hljs from 'highlight.js'; import { mdsvex, escapeSvelte } from 'mdsvex'; import rehypeSlug from 'rehype-slug'; const extensions = [`.svelte`, '.md', `.mdx`, '.svx']; /** @type {import('@sveltejs/kit').Config} */ const config = { preprocess: [ mdsvex({ // Breaks svelte-select when .svelte extension is included extensions: extensions.filter((ext) => ext !== '.svelte'), layout: { eventPage: './src/lib/layouts/EventPage.svelte', recipe: './src/lib/layouts/Recipe.svelte', recipeCategory: './src/lib/layouts/RecipeCategory.svelte' }, highlight: { highlighter: (code) => { const highlighted = escapeSvelte(hljs.highlightAuto(code).value); return `{@html \`
${highlighted}
\`}`; } }, rehypePlugins: [rehypeSlug] }), vitePreprocess() ], extensions: extensions, kit: { adapter: adapter(), alias: { $components: path.resolve('./src/lib/components'), $layouts: path.resolve('./src/lib/layouts'), $utils: path.resolve('./src/lib/utils'), $styles: path.resolve('./src/lib/styles'), $stores: path.resolve('./src/lib/stores') }, typescript: { config: (config) => { config.include = [ ...config.include, '../scripts/**/*.js', '../.eslintrc.cjs', '../postcss.config.js', '../prettier.config.js', '../svelte.config.js', '../tailwind.config.cjs' ]; return config; } } } }; export default config;