From 8bfee04c8c6948a88114d53769d4bb89b8ec7bf5 Mon Sep 17 00:00:00 2001
From: Jacky Zhao <j.zhao2k19@gmail.com>
Date: Sat, 17 Jun 2023 23:05:46 +0000
Subject: [PATCH] popovers
---
quartz/components/Content.tsx | 30 +++++++++++++++++++++++++-----
1 files changed, 25 insertions(+), 5 deletions(-)
diff --git a/quartz/components/Content.tsx b/quartz/components/Content.tsx
index cc5d66a..0bcab1e 100644
--- a/quartz/components/Content.tsx
+++ b/quartz/components/Content.tsx
@@ -2,10 +2,30 @@
import { Fragment, jsx, jsxs } from 'preact/jsx-runtime'
import { toJsxRuntime } from "hast-util-to-jsx-runtime"
-function Content({ tree }: QuartzComponentProps) {
- // @ts-ignore (preact makes it angry)
- const content = toJsxRuntime(tree, { Fragment, jsx, jsxs, elementAttributeNameCase: 'html' })
- return <article>{content}</article>
+// @ts-ignore
+import popoverScript from './scripts/popover.inline'
+import popoverStyle from './styles/popover.scss'
+
+interface Options {
+ enablePopover: boolean
}
-export default (() => Content) satisfies QuartzComponentConstructor
+const defaultOptions: Options = {
+ enablePopover: true
+}
+
+export default ((opts?: Partial<Options>) => {
+ function Content({ tree }: QuartzComponentProps) {
+ // @ts-ignore (preact makes it angry)
+ const content = toJsxRuntime(tree, { Fragment, jsx, jsxs, elementAttributeNameCase: 'html' })
+ return <article>{content}</article>
+ }
+
+ const enablePopover = opts?.enablePopover ?? defaultOptions.enablePopover
+ if (enablePopover) {
+ Content.afterDOMLoaded = popoverScript
+ Content.css = popoverStyle
+ }
+
+ return Content
+}) satisfies QuartzComponentConstructor
--
Gitblit v1.10.0