site: render markdown file as string
This commit is contained in:
committed by
Johannes Kirschbauer
parent
25db58ce11
commit
70523f75fa
@@ -1,8 +1,8 @@
|
||||
const articles = import.meta.glob("./**/*.md");
|
||||
|
||||
export function load() {
|
||||
const paths = Object.keys(articles).map((key) =>
|
||||
key.slice("./".length, -".md".length),
|
||||
const paths = Object.keys(articles).map(
|
||||
(key) => key.slice("./".length, -".md".length) + "/",
|
||||
);
|
||||
return { paths };
|
||||
}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<script lang="ts">
|
||||
let { data } = $props();
|
||||
let { Content, metadata } = data;
|
||||
let { content } = data;
|
||||
</script>
|
||||
|
||||
<Content />
|
||||
{@html content}
|
||||
|
||||
@@ -2,10 +2,7 @@ import { error } from "@sveltejs/kit";
|
||||
import type { Component } from "svelte";
|
||||
|
||||
const articles = import.meta.glob<{
|
||||
metadata: {
|
||||
layout?: string;
|
||||
};
|
||||
default: Component;
|
||||
default: string;
|
||||
}>("../**/*.md");
|
||||
|
||||
export async function load({ params }) {
|
||||
@@ -14,11 +11,8 @@ export async function load({ params }) {
|
||||
error(404, "");
|
||||
}
|
||||
|
||||
const { metadata, default: Content } = await article();
|
||||
const content = await article();
|
||||
return {
|
||||
Content,
|
||||
metadata: {
|
||||
...metadata,
|
||||
},
|
||||
content: content.default,
|
||||
};
|
||||
}
|
||||
|
||||
@@ -6,19 +6,14 @@ import { vitePreprocess } from "@sveltejs/vite-plugin-svelte";
|
||||
const config = {
|
||||
// Consult https://svelte.dev/docs/kit/integrations
|
||||
// for more information about preprocessors
|
||||
preprocess: [
|
||||
vitePreprocess(),
|
||||
mdsvex({
|
||||
extensions: [".md"],
|
||||
}),
|
||||
],
|
||||
preprocess: [vitePreprocess()],
|
||||
kit: {
|
||||
// adapter-auto only supports some environments, see https://svelte.dev/docs/kit/adapter-auto for a list.
|
||||
// If your environment is not supported, or you settled on a specific environment, switch out the adapter.
|
||||
// See https://svelte.dev/docs/kit/adapters for more information about adapters.
|
||||
adapter: adapter(),
|
||||
},
|
||||
extensions: [".svelte", ".md"],
|
||||
extensions: [".svelte"],
|
||||
};
|
||||
|
||||
export default config;
|
||||
|
||||
@@ -1,6 +1,16 @@
|
||||
import { sveltekit } from '@sveltejs/kit/vite';
|
||||
import { defineConfig } from 'vite';
|
||||
import { sveltekit } from "@sveltejs/kit/vite";
|
||||
import { defineConfig } from "vite";
|
||||
|
||||
export default defineConfig({
|
||||
plugins: [sveltekit()]
|
||||
plugins: [
|
||||
sveltekit(),
|
||||
{
|
||||
name: "markdown-loader",
|
||||
transform(code, id) {
|
||||
if (id.slice(-3) === ".md") {
|
||||
return `export default ${JSON.stringify(code)};`;
|
||||
}
|
||||
},
|
||||
},
|
||||
],
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user