From 08f8e3b4a4879dd7c91c16fbce80c4f2bc5e357f Mon Sep 17 00:00:00 2001
From: Jacky Zhao <j.zhao2k19@gmail.com>
Date: Mon, 10 Jul 2023 02:32:24 +0000
Subject: [PATCH] docs + various polish

---
 quartz/plugins/transformers/ofm.ts |   24 +++++++++++++++++++++---
 1 files changed, 21 insertions(+), 3 deletions(-)

diff --git a/quartz/plugins/transformers/ofm.ts b/quartz/plugins/transformers/ofm.ts
index 3bbb693..325924d 100644
--- a/quartz/plugins/transformers/ofm.ts
+++ b/quartz/plugins/transformers/ofm.ts
@@ -12,6 +12,7 @@
 import calloutScript from "../../components/scripts/callout.inline.ts"
 
 export interface Options {
+  comments: boolean
   highlight: boolean
   wikilinks: boolean
   callouts: boolean
@@ -19,6 +20,7 @@
 }
 
 const defaultOptions: Options = {
+  comments: true,
   highlight: true,
   wikilinks: true,
   callouts: true,
@@ -101,11 +103,14 @@
 // ([^\[\]\|\#]+)   -> one or more non-special characters ([,],|, or #) (name)
 // (#[^\[\]\|\#]+)? -> # then one or more non-special characters (heading link)
 // (|[^\[\]\|\#]+)? -> | then one or more non-special characters (alias)
-const backlinkRegex = new RegExp(/!?\[\[([^\[\]\|\#]+)(#[^\[\]\|\#]+)?(\|[^\[\]\|\#]+)?\]\]/, "g")
+const wikilinkRegex = new RegExp(/!?\[\[([^\[\]\|\#]+)(#[^\[\]\|\#]+)?(\|[^\[\]\|\#]+)?\]\]/, "g")
 
 // Match highlights 
 const highlightRegex = new RegExp(/==(.+)==/, "g")
 
+// Match comments 
+const commentRegex = new RegExp(/%%(.+)%%/, "g")
+
 // from https://github.com/escwxyz/remark-obsidian-callout/blob/main/src/index.ts
 const calloutRegex = new RegExp(/^\[\!(\w+)\]([+-]?)/)
 
@@ -117,7 +122,7 @@
       // pre-transform wikilinks (fix anchors to things that may contain illegal syntax e.g. codeblocks, latex)
       if (opts.wikilinks) {
         src = src.toString()
-        return src.replaceAll(backlinkRegex, (value, ...capture) => {
+        return src.replaceAll(wikilinkRegex, (value, ...capture) => {
           const [fp, rawHeader, rawAlias] = capture
           const anchor = rawHeader?.trim().slice(1)
           const displayAnchor = anchor ? `#${slugAnchor(anchor)}` : ""
@@ -133,7 +138,7 @@
       if (opts.wikilinks) {
         plugins.push(() => {
           return (tree: Root, _file) => {
-            findAndReplace(tree, backlinkRegex, (value: string, ...capture: string[]) => {
+            findAndReplace(tree, wikilinkRegex, (value: string, ...capture: string[]) => {
               const [fp, rawHeader, rawAlias] = capture
               const anchor = rawHeader?.trim() ?? ""
               const alias = rawAlias?.slice(1).trim()
@@ -204,6 +209,19 @@
           }
         })
       }
+      
+      if (opts.comments) {
+        plugins.push(() => {
+          return (tree: Root, _file) => {
+            findAndReplace(tree, commentRegex, (_value: string, ..._capture: string[]) => {
+              return {
+                type: 'text',
+                value: ''
+              }
+            })
+          }
+        })
+      }
 
       if (opts.callouts) {
         plugins.push(() => {

--
Gitblit v1.10.0