1import adapter from '@sveltejs/adapter-node';
2import { vitePreprocess } from '@sveltejs/vite-plugin-svelte';
3
4import { mdsvex } from 'mdsvex';
5
6import * as toml from '@std/toml';
7import { resolve } from 'node:path';
8
9/** @type {import('@sveltejs/kit').Config} */
10const config = {
11 extensions: ['.svelte', '.md', '.svx'],
12
13 preprocess: [
14 vitePreprocess(),
15 mdsvex({
16 extensions: ['.md', '.svx'],
17 frontmatter: {
18 type: 'toml',
19 marker: '+',
20 parse(frontmatter, messages) {
21 try {
22 return toml.parse(frontmatter);
23 } catch (e) {
24 messages.push(
25 'Parsing error on line ' + e.line + ', column ' + e.column + ': ' + e.message
26 );
27 }
28 }
29 },
30 smartypants: {
31 dashes: 'oldschool',
32 quotes: true,
33 ellipses: true,
34 backticks: false
35 },
36 layout: {
37 about: resolve('src/routes/(site)/about/_layout.svelte'),
38 blogpost: resolve('src/routes/(site)/entries/_layout.svelte'),
39 simple: resolve('src/components/_window_layout.svelte')
40 }
41 })
42 ],
43
44 kit: {
45 csrf: {
46 checkOrigin: false,
47 trustedOrigins: ["https://gaze.systems", "https://ptr.pet", "https://poor.dog"]
48 },
49 prerender: {
50 handleHttpError: 'warn'
51 },
52 adapter: adapter({
53 precompress: true
54 }),
55 alias: {
56 $components: 'src/components',
57 $styles: 'src/styles'
58 }
59 }
60};
61
62export default config;