From b8c011410d6bcd6837f4efd6a3948196a0f7aeea Mon Sep 17 00:00:00 2001
From: Jacky Zhao <j.zhao2k19@gmail.com>
Date: Sat, 10 Jun 2023 06:06:02 +0000
Subject: [PATCH] toc

---
 quartz/plugins/transformers/gfm.ts |   17 ++++++++++++++---
 1 files changed, 14 insertions(+), 3 deletions(-)

diff --git a/quartz/plugins/transformers/gfm.ts b/quartz/plugins/transformers/gfm.ts
index ef3a944..72f9870 100644
--- a/quartz/plugins/transformers/gfm.ts
+++ b/quartz/plugins/transformers/gfm.ts
@@ -2,20 +2,24 @@
 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
+  enableSmartyPants: true,
+  linkHeadings: true
 }
 
 export class GitHubFlavoredMarkdown extends QuartzTransformerPlugin {
   name = "GitHubFlavoredMarkdown"
   opts: Options
 
-  constructor(opts?: Options) {
+  constructor(opts?: Partial<Options>) {
     super()
     this.opts = { ...defaultOptions, ...opts }
   }
@@ -25,6 +29,13 @@
   }
 
   htmlPlugins(): PluggableList {
-    return []
+    return this.opts.linkHeadings
+      ? [rehypeSlug, [rehypeAutolinkHeadings, {
+        behavior: 'append', content: {
+          type: 'text',
+          value: ' ยง'
+        }
+      }]]
+      : []
   }
 }

--
Gitblit v1.10.0