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