diff --git a/quartz/plugins/parsers/obsidian/arrows.ts b/quartz/plugins/parsers/obsidian/arrows.ts index 0916b9a59..05ae8362f 100644 --- a/quartz/plugins/parsers/obsidian/arrows.ts +++ b/quartz/plugins/parsers/obsidian/arrows.ts @@ -3,6 +3,14 @@ import { ReplaceFunction, findAndReplace as mdastFindReplace } from "mdast-util- import { SKIP } from "unist-util-visit" import { Root } from "mdast" +interface Options { + enabled: Boolean +} + +const defaultOptions: Options = { + enabled: true, +} + const arrowMapping: Record = { "->": "→", "-->": "⇒", @@ -16,25 +24,28 @@ const arrowMapping: Record = { const arrowRegex = new RegExp(/(-{1,2}>|={1,2}>|<-{1,2}|<={1,2})/g) -export const ObsidianMarkdownArrow: QuartzTransformerPlugin = () => { +export const ObsidianMarkdownArrow: QuartzTransformerPlugin> = (userOpts) => { + const opts: Options = { ...defaultOptions, ...userOpts } return { name: "ObsidianMarkdownArrow", markdownPlugins() { return [ (tree: Root) => { - const replacements: [RegExp, string | ReplaceFunction][] = [] - replacements.push([ - arrowRegex, - (value: string, ..._capture: string[]) => { - const maybeArrow = arrowMapping[value] - if (maybeArrow === undefined) return SKIP - return { - type: "html", - value: `${maybeArrow}`, - } - }, - ]) - mdastFindReplace(tree, replacements) + if (opts.enabled) { + const replacements: [RegExp, string | ReplaceFunction][] = [] + replacements.push([ + arrowRegex, + (value: string, ..._capture: string[]) => { + const maybeArrow = arrowMapping[value] + if (maybeArrow === undefined) return SKIP + return { + type: "html", + value: `${maybeArrow}`, + } + }, + ]) + mdastFindReplace(tree, replacements) + } }, ] }, diff --git a/quartz/plugins/transformers/markdown.ts b/quartz/plugins/transformers/markdown.ts index 4d901f52b..3d23f77c2 100644 --- a/quartz/plugins/transformers/markdown.ts +++ b/quartz/plugins/transformers/markdown.ts @@ -183,9 +183,7 @@ export const ObsidianFlavoredMarkdown: QuartzTransformerPlugin