1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
| 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<Partial<Options> | 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 []
| }
| },
| }
| }
|
|