| | |
| | | import { QuartzComponentConstructor, QuartzComponentProps } from "../types" |
| | | import { QuartzComponent, QuartzComponentConstructor, QuartzComponentProps } from "../types" |
| | | import path from "path" |
| | | |
| | | import style from "../styles/listPage.scss" |
| | | import { PageList } from "../PageList" |
| | | import { PageList, SortFn } from "../PageList" |
| | | import { stripSlashes, simplifySlug } from "../../util/path" |
| | | import { Root } from "hast" |
| | | import { htmlToJsx } from "../../util/jsx" |
| | |
| | | * Whether to display number of folders |
| | | */ |
| | | showFolderCount: boolean |
| | | sort?: SortFn |
| | | } |
| | | |
| | | const defaultOptions: FolderContentOptions = { |
| | |
| | | export default ((opts?: Partial<FolderContentOptions>) => { |
| | | const options: FolderContentOptions = { ...defaultOptions, ...opts } |
| | | |
| | | function FolderContent(props: QuartzComponentProps) { |
| | | const FolderContent: QuartzComponent = (props: QuartzComponentProps) => { |
| | | const { tree, fileData, allFiles, cfg } = props |
| | | const folderSlug = stripSlashes(simplifySlug(fileData.slug!)) |
| | | const allPagesInFolder = allFiles.filter((file) => { |
| | |
| | | const classes = ["popover-hint", ...cssClasses].join(" ") |
| | | const listProps = { |
| | | ...props, |
| | | sort: options.sort, |
| | | allFiles: allPagesInFolder, |
| | | } |
| | | |
| | |
| | | |
| | | return ( |
| | | <div class={classes}> |
| | | <article> |
| | | <p>{content}</p> |
| | | </article> |
| | | <article>{content}</article> |
| | | <div class="page-listing"> |
| | | {options.showFolderCount && ( |
| | | <p> |