From 81d00fc9c003a37033e0c0d92333801fa94d0633 Mon Sep 17 00:00:00 2001 From: Emile Bangma Date: Fri, 14 Jun 2024 01:02:00 +0200 Subject: [PATCH] .callout-content support (#1188) * .callout-content support * Use BlockContent | FootnoteContent for callout body * Update quartz/plugins/transformers/ofm.ts Co-authored-by: Jacky Zhao * Refactor * Combine child selectors * Fix multiple callout members * Empty check * Replace splice --------- Co-authored-by: Jacky Zhao --- quartz/plugins/transformers/ofm.ts | 19 +++++++++++++++++-- quartz/styles/callouts.scss | 2 +- 2 files changed, 18 insertions(+), 3 deletions(-) diff --git a/quartz/plugins/transformers/ofm.ts b/quartz/plugins/transformers/ofm.ts index 414d8f65c..708fe5e9f 100644 --- a/quartz/plugins/transformers/ofm.ts +++ b/quartz/plugins/transformers/ofm.ts @@ -414,8 +414,8 @@ export const ObsidianFlavoredMarkdown: QuartzTransformerPlugin return } - // find first line - const firstChild = node.children[0] + // find first line and callout content + const [firstChild, ...calloutContent] = node.children if (firstChild.type !== "paragraph" || firstChild.children[0]?.type !== "text") { return } @@ -492,6 +492,21 @@ export const ObsidianFlavoredMarkdown: QuartzTransformerPlugin "data-callout-metadata": calloutMetaData, }, } + + // Add callout-content class to callout body if it has one. + if (calloutContent.length > 0) { + const contentData: BlockContent | DefinitionContent = { + data: { + hProperties: { + className: "callout-content", + }, + hName: "div", + }, + type: "blockquote", + children: [...calloutContent], + } + node.children = [node.children[0], contentData] + } } }) } diff --git a/quartz/styles/callouts.scss b/quartz/styles/callouts.scss index b1fd180ce..d6f65aadc 100644 --- a/quartz/styles/callouts.scss +++ b/quartz/styles/callouts.scss @@ -10,7 +10,7 @@ transition: max-height 0.3s ease; box-sizing: border-box; - & > *:nth-child(2) { + & > .callout-content > :first-child { margin-top: 0; }