import { escapeSvelte, mdsvex } from 'mdsvex'; import adapter from '@sveltejs/adapter-cloudflare'; import { dirname } from 'node:path'; import { fileURLToPath } from 'node:url'; import path from 'path'; import rehypeSlug from 'rehype-slug'; import remarkToc from 'remark-toc'; import remarkUnwrapImages from 'remark-unwrap-images'; import shiki from 'shiki'; import { vitePreprocess } from '@sveltejs/vite-plugin-svelte'; /** @type {import('@sveltejs/kit').Config}*/ /** @type {import('mdsvex').MdsvexOptions} */ const mdsvexOptions = { extensions: ['.md'], layout: { _: dirname(fileURLToPath(import.meta.url)) + '/src/mdsvex.svelte' }, highlight: { highlighter: async (code, lang = 'text') => { const highlighter = await shiki.getHighlighter({ theme: 'poimandres' }); const html = escapeSvelte(highlighter.codeToHtml(code, { lang })); return `{@html \`${html}\` }`; } }, remarkPlugins: [remarkUnwrapImages, [remarkToc, { tight: true }]], rehypePlugins: [rehypeSlug] }; const config = { kit: { adapter: adapter(), alias: { $lib: path.resolve('./src/lib'), '$src/tools': path.resolve('./node_modules/@cio/ui/src/tools/index.ts'), '$src/base/*': path.resolve('./node_modules/@cio/ui/src/base/*'), '@cio/ui': path.resolve('./node_modules/@cio/ui/src'), '@cio/ui/*': path.resolve('./node_modules/@cio/ui/src/*'), '@cio/utils': path.resolve('./node_modules/@cio/utils/dist'), '@cio/utils/*': path.resolve('./node_modules/@cio/utils/dist/*') } }, extensions: ['.svelte', '.md'], preprocess: [vitePreprocess(), mdsvex(mdsvexOptions)] }; export default config;