sveltekit mdsx示例

pnpx sv create选择tailwindcss

mdsx.config.js:

import { defineConfig } from 'mdsx';
import { rehypeCustomHighlight } from '@mdsx/rehype-custom-highlighter';
import { bundledLanguages, bundledThemes, getSingletonHighlighter } from 'shiki';

/** @type {import('@mdsx/rehype-custom-highlighter').HighlightOptions} */
const customHighlightOptions = {
    highlight: async ({ value, lang }) => {
        const highlighter = await getSingletonHighlighter({
            langs: Object.keys(bundledLanguages),
            themes: Object.keys(bundledThemes),
        });
        const html = highlighter.codeToHtml(value, {
            lang: lang,
            theme: 'github-dark',
        });
        return html;
    },
};

export const mdsxConfig = defineConfig({
    extensions: ['.md'],
    rehypePlugins: [[rehypeCustomHighlight, customHighlightOptions]],
});

svelte.config.js:

import adapter from "@sveltejs/adapter-node";
import { vitePreprocess } from '@sveltejs/vite-plugin-svelte';
import { mdsx } from 'mdsx';
import { mdsxConfig } from './mdsx.config.js';

/** @type {import('@sveltejs/kit').Config} */
const config = {
	preprocess: [mdsx(mdsxConfig), vitePreprocess()],
	extensions: ['.svelte', '.md'],
	kit: {
		adapter: adapter(),
	},
};

export default config;

src/lib/some-content.md:

# Welcome

This is my first MDSX markdown file. Isn't it great?

## Description

It gets better than this, we promise.

```svelte
<script lang="ts">
    import SomeContent from "$lib/some-content.md";
</script>

<main class="prose">
    <SomeContent />
</main>
```

src/routes/+page.svelte:

<script lang="ts">
    import SomeContent from "$lib/some-content.md";
</script>

<main class="container max-w-full prose">
    <SomeContent />
</main>
posted @   卓能文  阅读(3)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
· 【杂谈】分布式事务——高大上的无用知识?
点击右上角即可分享
微信分享提示