feat(comments): conditional display via frontmatter (#1566)

This commit is contained in:
David Fischer 2024-11-09 10:44:32 +01:00 committed by GitHub
parent a6b2967df8
commit 31e0b7c6f8
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 20 additions and 1 deletions

View file

@ -114,3 +114,14 @@ afterBody: [
}),
],
```
#### Conditionally display comments
Quartz can conditionally display the comment box based on a field `comments` in the frontmatter. By default, all pages will display comments, to disable it for a specific page, set `comments` to `false`.
```
---
title: Comments disabled here!
comments: false
---
```

View file

@ -25,7 +25,14 @@ function boolToStringBool(b: boolean): string {
}
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")}

View file

@ -93,6 +93,7 @@ declare module "vfile" {
lang: string
enableToc: string
cssclasses: string[]
comments: boolean | string
}>
}
}