Skip to content

Commit f8e6852

Browse files
committed
code highlight
1 parent 3a75bf6 commit f8e6852

File tree

4 files changed

+319
-1
lines changed

4 files changed

+319
-1
lines changed

package.json

+1
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@
3535
"@amplitude/analytics-browser": "^2.11.9",
3636
"@nais/ds-svelte-community": "^0.7.5",
3737
"date-fns": "^4.1.0",
38+
"shiki": "^1.23.0",
3839
"svelte-preprocess": "^6.0.3"
3940
}
4041
}

src/routes/blog/posts/layout.svelte

+5
Original file line numberDiff line numberDiff line change
@@ -26,4 +26,9 @@
2626
flex-direction: column;
2727
gap: 2rem;
2828
}
29+
30+
:global(pre) {
31+
overflow-x: auto;
32+
padding: 0.5rem;
33+
}
2934
</style>

svelte.config.js

+14-1
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,15 @@
11
import adapter from "@sveltejs/adapter-static";
22
import path from "path";
3-
import { mdsvex } from "mdsvex";
3+
import { mdsvex, escapeSvelte } from "mdsvex";
4+
import { createHighlighter } from "shiki";
45
import remarkRelativeImages from "mdsvex-relative-images";
56

7+
const theme = "github-dark";
8+
const highlighter = await createHighlighter({
9+
themes: [theme],
10+
langs: ["javascript", "typescript", "yaml", "bash", "ts", "elm", "sh", "shell"],
11+
});
12+
613
/** @type {import('@sveltejs/kit').Config} */
714
const config = {
815
// Consult https://github.com/sveltejs/svelte-preprocess
@@ -13,6 +20,12 @@ const config = {
1320
extensions: [".svx", ".md", ".mdx"],
1421
remarkPlugins: [remarkRelativeImages],
1522
layout: "/src/routes/blog/posts/layout.svelte",
23+
highlight: {
24+
highlighter: async (code, lang = "text") => {
25+
const html = escapeSvelte(highlighter.codeToHtml(code, { lang, theme }));
26+
return `{@html \`${html}\` }`;
27+
},
28+
},
1629
}),
1730
],
1831

0 commit comments

Comments
 (0)