import remarkGfm from "remark-gfm" import smartypants from 'remark-smartypants' import { QuartzTransformerPlugin } from "../types" import rehypeSlug from "rehype-slug" import rehypeAutolinkHeadings from "rehype-autolink-headings" export interface Options { enableSmartyPants: boolean linkHeadings: boolean } const defaultOptions: Options = { enableSmartyPants: true, linkHeadings: true } export const GitHubFlavoredMarkdown: QuartzTransformerPlugin | undefined> = (userOpts) => { const opts = { ...defaultOptions, ...userOpts } return { name: "GitHubFlavoredMarkdown", markdownPlugins() { return opts.enableSmartyPants ? [remarkGfm, smartypants] : [remarkGfm] }, htmlPlugins() { if (opts.linkHeadings) { return [rehypeSlug, [rehypeAutolinkHeadings, { behavior: 'append', content: { type: 'text', value: ' ยง', } }]] } else { return [] } } } }