From 0d1f15d37cf3ceeb6465d7f102fc49bc33933450 Mon Sep 17 00:00:00 2001 From: Pierre Lairez Date: Thu, 10 Oct 2024 13:15:23 +0200 Subject: [PATCH] feat(ofm): Allow for dashes in custom callout label (#1493) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * [OFM] Allow for dashes in custom callout label For compatibility with Obsidian's behavior, a custom callout like [!see-also] is possible. Previously, this was parsed by Quartz as a callout “see” with metadata “-also”. Instead, this is should be a callout “see-also” with title “See also” (capitalization + replace dashes by spaces). * prettier --- quartz/plugins/transformers/ofm.ts | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/quartz/plugins/transformers/ofm.ts b/quartz/plugins/transformers/ofm.ts index dd743b6..70dce60 100644 --- a/quartz/plugins/transformers/ofm.ts +++ b/quartz/plugins/transformers/ofm.ts @@ -119,7 +119,7 @@ export const tableWikilinkRegex = new RegExp(/(!?\[\[[^\]]*?\]\])/g) const highlightRegex = new RegExp(/==([^=]+)==/g) const commentRegex = new RegExp(/%%[\s\S]*?%%/g) // from https://github.com/escwxyz/remark-obsidian-callout/blob/main/src/index.ts -const calloutRegex = new RegExp(/^\[\!(\w+)\|?(.+?)?\]([+-]?)/) +const calloutRegex = new RegExp(/^\[\!([\w-]+)\|?(.+?)?\]([+-]?)/) const calloutLineRegex = new RegExp(/^> *\[\!\w+\|?.*?\][+-]?.*$/gm) // (?:^| ) -> non-capturing group, tag should start be separated by a space or be the start of the line // #(...) -> capturing group, tag itself must start with # @@ -430,7 +430,9 @@ export const ObsidianFlavoredMarkdown: QuartzTransformerPlugin> children: [ { type: "text", - value: useDefaultTitle ? capitalize(typeString) : titleContent + " ", + value: useDefaultTitle + ? capitalize(typeString).replace(/-/g, " ") + : titleContent + " ", }, ...restOfTitle, ],