Files
website/svelte.config.js
Jesse Winton 60d666875f updates!
2024-08-26 12:08:56 -04:00

71 lines
2.2 KiB
JavaScript

import { dirname, join } from "path";
import { fileURLToPath } from "url";
import { vitePreprocess } from "@sveltejs/vite-plugin-svelte";
import { preprocessMeltUI, sequence } from "@melt-ui/pp";
import { markdoc } from "svelte-markdoc-preprocess";
import nodeAdapter from "@sveltejs/adapter-node";
/** @type {import('@sveltejs/kit').Config}*/
const config = {
// Consult https://kit.svelte.dev/docs/integrations#preprocessors
// for more information about preprocessors
preprocess: sequence([
vitePreprocess(),
markdoc({
generateSchema: true,
nodes: absolute("./src/markdoc/nodes/_Module.svelte"),
tags: absolute("./src/markdoc/tags/_Module.svelte"),
partials: absolute("./src/partials"),
layouts: {
default: absolute("./src/markdoc/layouts/Article.svelte"),
article: absolute("./src/markdoc/layouts/Article.svelte"),
tutorial: absolute("./src/markdoc/layouts/Tutorial.svelte"),
post: absolute("./src/markdoc/layouts/Post.svelte"),
author: absolute("./src/markdoc/layouts/Author.svelte"),
category: absolute("./src/markdoc/layouts/Category.svelte"),
policy: absolute("./src/markdoc/layouts/Policy.svelte"),
changelog: absolute("./src/markdoc/layouts/Changelog.svelte"),
integration: absolute("./src/markdoc/layouts/Integration.svelte"),
},
}),
preprocessMeltUI(),
]),
extensions: [".markdoc", ".svelte", ".md"],
kit: {
adapter: nodeAdapter(),
version: {
pollInterval: 60 * 1000,
},
alias: {
$routes: "./src/routes",
$scss: "./src/scss",
$icons: "./src/icons",
$appwrite: "./node_modules/@appwrite.io/repo",
$markdoc: "./src/markdoc",
},
prerender: {
concurrency: 32,
/**
* @type {import('@sveltejs/kit').PrerenderMissingIdHandler}
*/
handleMissingId: ({ path, message }) => {
if (path.startsWith("/docs/references/")) {
console.warn(message);
return;
}
throw new Error(message);
},
},
},
};
export default config;
/**
* @param {string} path
* @returns {string}
*/
function absolute(path) {
return join(dirname(fileURLToPath(import.meta.url)), path);
}