From c7cd941e5f8c36e9d19fa44438186836bcd19fcb Mon Sep 17 00:00:00 2001 From: Jacky Zhao <j.zhao2k19@gmail.com> Date: Sat, 2 Sep 2023 18:07:26 -0700 Subject: [PATCH] feat: pluralize things in lists --- quartz/components/pages/FolderContent.tsx | 3 ++- quartz/components/pages/TagContent.tsx | 5 +++-- quartz/util/lang.ts | 7 +++++++ 3 files changed, 12 insertions(+), 3 deletions(-) create mode 100644 quartz/util/lang.ts diff --git a/quartz/components/pages/FolderContent.tsx b/quartz/components/pages/FolderContent.tsx index dc076c4..a766d4b 100644 --- a/quartz/components/pages/FolderContent.tsx +++ b/quartz/components/pages/FolderContent.tsx @@ -7,6 +7,7 @@ import style from "../styles/listPage.scss" import { PageList } from "../PageList" import { _stripSlashes, simplifySlug } from "../../util/path" import { Root } from "hast" +import { pluralize } from "../../util/lang" function FolderContent(props: QuartzComponentProps) { const { tree, fileData, allFiles } = props @@ -36,7 +37,7 @@ function FolderContent(props: QuartzComponentProps) { <article> <p>{content}</p> </article> - <p>{allPagesInFolder.length} items under this folder.</p> + <p>{pluralize(allPagesInFolder.length, "item")} under this folder.</p> <div> <PageList {...listProps} /> </div> diff --git a/quartz/components/pages/TagContent.tsx b/quartz/components/pages/TagContent.tsx index fb72e28..9907e3f 100644 --- a/quartz/components/pages/TagContent.tsx +++ b/quartz/components/pages/TagContent.tsx @@ -6,6 +6,7 @@ import { PageList } from "../PageList" import { FullSlug, getAllSegmentPrefixes, simplifySlug } from "../../util/path" import { QuartzPluginData } from "../../plugins/vfile" import { Root } from "hast" +import { pluralize } from "../../util/lang" const numPages = 10 function TagContent(props: QuartzComponentProps) { @@ -60,7 +61,7 @@ function TagContent(props: QuartzComponentProps) { </h2> {content && <p>{content}</p>} <p> - {pages.length} items with this tag.{" "} + {pluralize(pages.length, "item")} with this tag.{" "} {pages.length > numPages && `Showing first ${numPages}.`} </p> <PageList limit={numPages} {...listProps} /> @@ -80,7 +81,7 @@ function TagContent(props: QuartzComponentProps) { return ( <div class="popover-hint"> <article>{content}</article> - <p>{pages.length} items with this tag.</p> + <p>{pluralize(pages.length, "item")} with this tag.</p> <div> <PageList {...listProps} /> </div> diff --git a/quartz/util/lang.ts b/quartz/util/lang.ts new file mode 100644 index 0000000..eb03a24 --- /dev/null +++ b/quartz/util/lang.ts @@ -0,0 +1,7 @@ +export function pluralize(count: number, s: string): string { + if (count === 1) { + return `1 ${s}` + } else { + return `${count} ${s}s` + } +}