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:
parent
2b62e29282
commit
a70078ccdc
@ -8,7 +8,22 @@ import { Root } from "hast"
|
|||||||
import { pluralize } from "../../util/lang"
|
import { pluralize } from "../../util/lang"
|
||||||
import { htmlToJsx } from "../../util/jsx"
|
import { htmlToJsx } from "../../util/jsx"
|
||||||
|
|
||||||
function FolderContent(props: QuartzComponentProps) {
|
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 { tree, fileData, allFiles } = props
|
||||||
const folderSlug = _stripSlashes(simplifySlug(fileData.slug!))
|
const folderSlug = _stripSlashes(simplifySlug(fileData.slug!))
|
||||||
const allPagesInFolder = allFiles.filter((file) => {
|
const allPagesInFolder = allFiles.filter((file) => {
|
||||||
@ -35,13 +50,14 @@ function FolderContent(props: QuartzComponentProps) {
|
|||||||
<article>
|
<article>
|
||||||
<p>{content}</p>
|
<p>{content}</p>
|
||||||
</article>
|
</article>
|
||||||
<p>{pluralize(allPagesInFolder.length, "item")} under this folder.</p>
|
{options.showFolderCount && <p>{pluralize(allPagesInFolder.length, "item")} under this folder.</p>}
|
||||||
<div>
|
<div>
|
||||||
<PageList {...listProps} />
|
<PageList {...listProps} />
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
FolderContent.css = style + PageList.css
|
FolderContent.css = style + PageList.css
|
||||||
export default (() => FolderContent) satisfies QuartzComponentConstructor
|
return FolderContent
|
||||||
|
}) satisfies QuartzComponentConstructor
|
||||||
|
Loading…
Reference in New Issue
Block a user