Jacky Zhao
2023-09-03 505673acd71e6b023abae19c706a736b257cff2a
feat: pluralize things in lists
1 files added
2 files modified
15 ■■■■ changed files
quartz/components/pages/FolderContent.tsx 3 ●●●● patch | view | raw | blame | history
quartz/components/pages/TagContent.tsx 5 ●●●●● patch | view | raw | blame | history
quartz/util/lang.ts 7 ●●●●● patch | view | raw | blame | history
quartz/components/pages/FolderContent.tsx
@@ -7,6 +7,7 @@
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 @@
      <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>
quartz/components/pages/TagContent.tsx
@@ -6,6 +6,7 @@
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 @@
                </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 @@
    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>
quartz/util/lang.ts
New file
@@ -0,0 +1,7 @@
export function pluralize(count: number, s: string): string {
  if (count === 1) {
    return `1 ${s}`
  } else {
    return `${count} ${s}s`
  }
}