import { QuartzTransformerPlugin } from "../types" import rehypePrettyCode, { Options as CodeOptions, Theme as CodeTheme } from "rehype-pretty-code" interface Theme extends Record { light: CodeTheme dark: CodeTheme } interface Options { theme?: Theme keepBackground?: boolean } const defaultOptions: Options = { theme: { light: "github-light", dark: "github-dark", }, keepBackground: false, } export const SyntaxHighlighting: QuartzTransformerPlugin = ( userOpts?: Partial, ) => { const opts: Partial = { ...defaultOptions, ...userOpts } return { name: "SyntaxHighlighting", htmlPlugins() { return [[rehypePrettyCode, opts]] }, } }