feat: Option to mask folder count (#734)

* Option to mask folder count

* Update quartz/components/pages/FolderContent.tsx

---------

Co-authored-by: Jacky Zhao <j.zhao2k19@gmail.com>
This commit is contained in:
LUCASTUCIOUS 2024-01-28 07:21:32 +01:00 committed by GitHub
parent 2b62e29282
commit a70078ccdc
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -8,6 +8,21 @@ import { Root } from "hast"
import { pluralize } from "../../util/lang"
import { htmlToJsx } from "../../util/jsx"
interface FolderContentOptions {
/**
* Whether to display number of folders
*/
showFolderCount: boolean
}
const defaultOptions: FolderContentOptions = {
showFolderCount: true,
}
export default ((opts?: Partial<FolderContentOptions>) => {
// Merge options with defaults
const options: FolderContentOptions = { ...defaultOptions, ...opts }
function FolderContent(props: QuartzComponentProps) {
const { tree, fileData, allFiles } = props
const folderSlug = _stripSlashes(simplifySlug(fileData.slug!))
@ -35,7 +50,7 @@ function FolderContent(props: QuartzComponentProps) {
<article>
<p>{content}</p>
</article>
<p>{pluralize(allPagesInFolder.length, "item")} under this folder.</p>
{options.showFolderCount && <p>{pluralize(allPagesInFolder.length, "item")} under this folder.</p>}
<div>
<PageList {...listProps} />
</div>
@ -44,4 +59,5 @@ function FolderContent(props: QuartzComponentProps) {
}
FolderContent.css = style + PageList.css
export default (() => FolderContent) satisfies QuartzComponentConstructor
return FolderContent
}) satisfies QuartzComponentConstructor