wiki/quartz/plugins/transformers/syntax.ts

32 lines
711 B
TypeScript
Raw Normal View History

2023-06-01 23:05:14 +00:00
import { QuartzTransformerPlugin } from "../types"
import rehypePrettyCode, { Options as CodeOptions, Theme as CodeTheme } from "rehype-pretty-code"
2023-06-01 23:05:14 +00:00
interface Theme extends Record<string, CodeTheme> {
light: CodeTheme
dark: CodeTheme
}
interface Options {
theme?: Theme
keepBackground?: boolean
}
const defaultOptions: Options = {
theme: {
light: "github-light",
dark: "github-dark",
2023-07-23 00:27:41 +00:00
},
keepBackground: false,
}
2024-08-09 01:28:13 +00:00
export const SyntaxHighlighting: QuartzTransformerPlugin<Partial<Options>> = (userOpts) => {
const opts: CodeOptions = { ...defaultOptions, ...userOpts }
return {
name: "SyntaxHighlighting",
htmlPlugins() {
return [[rehypePrettyCode, opts]]
},
}
}