From 31e0b7c6f802cfab7250b7e9dfb321b3889ef6ca Mon Sep 17 00:00:00 2001
From: David Fischer <david@konst.fish>
Date: Sat, 09 Nov 2024 09:44:32 +0000
Subject: [PATCH] feat(comments): conditional display via frontmatter (#1566)
---
quartz/components/Comments.tsx | 17 ++++++++++++++++-
1 files changed, 16 insertions(+), 1 deletions(-)
diff --git a/quartz/components/Comments.tsx b/quartz/components/Comments.tsx
index 8e44940..5f379a1 100644
--- a/quartz/components/Comments.tsx
+++ b/quartz/components/Comments.tsx
@@ -10,6 +10,9 @@
repoId: string
category: string
categoryId: string
+ themeUrl?: string
+ lightTheme?: string
+ darkTheme?: string
mapping?: "url" | "title" | "og:title" | "specific" | "number" | "pathname"
strict?: boolean
reactionsEnabled?: boolean
@@ -22,7 +25,14 @@
}
export default ((opts: Options) => {
- const Comments: QuartzComponent = ({ displayClass, cfg }: QuartzComponentProps) => {
+ const Comments: QuartzComponent = ({ displayClass, fileData, cfg }: QuartzComponentProps) => {
+ // check if comments should be displayed according to frontmatter
+ const commentsFlag: boolean =
+ fileData.frontmatter?.comments === true || fileData.frontmatter?.comments === "true"
+ if (!commentsFlag) {
+ return <></>
+ }
+
return (
<div
class={classNames(displayClass, "giscus")}
@@ -34,6 +44,11 @@
data-strict={boolToStringBool(opts.options.strict ?? true)}
data-reactions-enabled={boolToStringBool(opts.options.reactionsEnabled ?? true)}
data-input-position={opts.options.inputPosition ?? "bottom"}
+ data-light-theme={opts.options.lightTheme ?? "light"}
+ data-dark-theme={opts.options.darkTheme ?? "dark"}
+ data-theme-url={
+ opts.options.themeUrl ?? `https://${cfg.baseUrl ?? "example.com"}/static/giscus`
+ }
></div>
)
}
--
Gitblit v1.10.0