diff --git a/quartz/components/PageCount.tsx b/quartz/components/PageCount.tsx
new file mode 100644
index 000000000..99cb930ae
--- /dev/null
+++ b/quartz/components/PageCount.tsx
@@ -0,0 +1,26 @@
+import { QuartzComponent, QuartzComponentConstructor, QuartzComponentProps } from "./types"
+import { classNames } from "../util/lang"
+import { i18n } from "../i18n"
+
+const PageCount: QuartzComponent = ({
+ allFiles,
+ displayClass,
+ cfg,
+}: QuartzComponentProps) => {
+ const count = allFiles.length
+ return (
+
+
{i18n(cfg.locale).components.pageCount.totalItems({ count })}
+
+ )
+}
+
+PageCount.css = `
+.page-count {
+ padding: 0.5rem;
+ font-size: 0.9rem;
+ color: var(--secondary);
+}
+`
+
+export default (() => PageCount) satisfies QuartzComponentConstructor
diff --git a/quartz/components/index.ts b/quartz/components/index.ts
index cece8e614..2e29a7a99 100644
--- a/quartz/components/index.ts
+++ b/quartz/components/index.ts
@@ -23,6 +23,7 @@ import Breadcrumbs from "./Breadcrumbs"
import Comments from "./Comments"
import Flex from "./Flex"
import ConditionalRender from "./ConditionalRender"
+import PageCount from "./PageCount"
export {
ArticleTitle,
@@ -50,4 +51,5 @@ export {
Comments,
Flex,
ConditionalRender,
+ PageCount,
}
diff --git a/quartz/i18n/locales/ar-SA.ts b/quartz/i18n/locales/ar-SA.ts
index a1979def9..2e9718af7 100644
--- a/quartz/i18n/locales/ar-SA.ts
+++ b/quartz/i18n/locales/ar-SA.ts
@@ -64,6 +64,9 @@ export default {
? `دقيقتان للقراءة`
: `${minutes} دقائق للقراءة`,
},
+ pageCount: {
+ totalItems: ({ count }) => `${count} ملاحظات`,
+ },
},
pages: {
rss: {
diff --git a/quartz/i18n/locales/ca-ES.ts b/quartz/i18n/locales/ca-ES.ts
index 1483d9c57..6de105ead 100644
--- a/quartz/i18n/locales/ca-ES.ts
+++ b/quartz/i18n/locales/ca-ES.ts
@@ -59,6 +59,9 @@ export default {
contentMeta: {
readingTime: ({ minutes }) => `Es llegeix en ${minutes} min`,
},
+ pageCount: {
+ totalItems: ({ count }) => `${count} notes`,
+ },
},
pages: {
rss: {
diff --git a/quartz/i18n/locales/cs-CZ.ts b/quartz/i18n/locales/cs-CZ.ts
index 87f19964f..d95e9f239 100644
--- a/quartz/i18n/locales/cs-CZ.ts
+++ b/quartz/i18n/locales/cs-CZ.ts
@@ -59,6 +59,9 @@ export default {
contentMeta: {
readingTime: ({ minutes }) => `${minutes} min čtení`,
},
+ pageCount: {
+ totalItems: ({ count }) => `${count} poznámek`,
+ },
},
pages: {
rss: {
diff --git a/quartz/i18n/locales/de-DE.ts b/quartz/i18n/locales/de-DE.ts
index 85a7353a8..9da0884b9 100644
--- a/quartz/i18n/locales/de-DE.ts
+++ b/quartz/i18n/locales/de-DE.ts
@@ -59,6 +59,9 @@ export default {
contentMeta: {
readingTime: ({ minutes }) => `${minutes} min read`,
},
+ pageCount: {
+ totalItems: ({ count }) => `${count} Seiten`,
+ },
},
pages: {
rss: {
diff --git a/quartz/i18n/locales/definition.ts b/quartz/i18n/locales/definition.ts
index ee1649abc..8b8061f74 100644
--- a/quartz/i18n/locales/definition.ts
+++ b/quartz/i18n/locales/definition.ts
@@ -61,6 +61,9 @@ export interface Translation {
contentMeta: {
readingTime: (variables: { minutes: number }) => string
}
+ pageCount: {
+ totalItems: (variables: { count: number }) => string
+ }
}
pages: {
rss: {
diff --git a/quartz/i18n/locales/en-GB.ts b/quartz/i18n/locales/en-GB.ts
index 80e52bf3c..253a5bc9d 100644
--- a/quartz/i18n/locales/en-GB.ts
+++ b/quartz/i18n/locales/en-GB.ts
@@ -59,6 +59,9 @@ export default {
contentMeta: {
readingTime: ({ minutes }) => `${minutes} min read`,
},
+ pageCount: {
+ totalItems: ({ count }) => `${count} notes`,
+ },
},
pages: {
rss: {
diff --git a/quartz/i18n/locales/en-US.ts b/quartz/i18n/locales/en-US.ts
index e1111e9ab..d33cda508 100644
--- a/quartz/i18n/locales/en-US.ts
+++ b/quartz/i18n/locales/en-US.ts
@@ -59,6 +59,9 @@ export default {
contentMeta: {
readingTime: ({ minutes }) => `${minutes} min read`,
},
+ pageCount: {
+ totalItems: ({ count }) => `${count} notes`,
+ },
},
pages: {
rss: {
diff --git a/quartz/i18n/locales/es-ES.ts b/quartz/i18n/locales/es-ES.ts
index b7e425e81..ee4724248 100644
--- a/quartz/i18n/locales/es-ES.ts
+++ b/quartz/i18n/locales/es-ES.ts
@@ -59,6 +59,9 @@ export default {
contentMeta: {
readingTime: ({ minutes }) => `Se lee en ${minutes} min`,
},
+ pageCount: {
+ totalItems: ({ count }) => `${count} notas`,
+ },
},
pages: {
rss: {
diff --git a/quartz/i18n/locales/fa-IR.ts b/quartz/i18n/locales/fa-IR.ts
index 0300174f3..9c91a1ec1 100644
--- a/quartz/i18n/locales/fa-IR.ts
+++ b/quartz/i18n/locales/fa-IR.ts
@@ -59,6 +59,9 @@ export default {
contentMeta: {
readingTime: ({ minutes }) => `زمان تقریبی مطالعه: ${minutes} دقیقه`,
},
+ pageCount: {
+ totalItems: ({ count }) => `${count} یادداشت`,
+ },
},
pages: {
rss: {
diff --git a/quartz/i18n/locales/fi-FI.ts b/quartz/i18n/locales/fi-FI.ts
index 19e102a31..373b5bacb 100644
--- a/quartz/i18n/locales/fi-FI.ts
+++ b/quartz/i18n/locales/fi-FI.ts
@@ -59,6 +59,9 @@ export default {
contentMeta: {
readingTime: ({ minutes }) => `${minutes} min lukuaika`,
},
+ pageCount: {
+ totalItems: ({ count }) => `${count} muistiinpanoa`,
+ },
},
pages: {
rss: {
diff --git a/quartz/i18n/locales/fr-FR.ts b/quartz/i18n/locales/fr-FR.ts
index f6df309a6..06bcaec5b 100644
--- a/quartz/i18n/locales/fr-FR.ts
+++ b/quartz/i18n/locales/fr-FR.ts
@@ -59,6 +59,9 @@ export default {
contentMeta: {
readingTime: ({ minutes }) => `${minutes} min de lecture`,
},
+ pageCount: {
+ totalItems: ({ count }) => `${count} notes`,
+ },
},
pages: {
rss: {
diff --git a/quartz/i18n/locales/hu-HU.ts b/quartz/i18n/locales/hu-HU.ts
index 2a4f07727..8ec5fba9e 100644
--- a/quartz/i18n/locales/hu-HU.ts
+++ b/quartz/i18n/locales/hu-HU.ts
@@ -57,7 +57,10 @@ export default {
title: "Tartalomjegyzék",
},
contentMeta: {
- readingTime: ({ minutes }) => `${minutes} perces olvasás`,
+ readingTime: ({ minutes }) => `${minutes} perc olvasás`,
+ },
+ pageCount: {
+ totalItems: ({ count }) => `${count} jegyzet`,
},
},
pages: {
diff --git a/quartz/i18n/locales/id-ID.ts b/quartz/i18n/locales/id-ID.ts
index 813e2bb57..43d62cc5d 100644
--- a/quartz/i18n/locales/id-ID.ts
+++ b/quartz/i18n/locales/id-ID.ts
@@ -57,7 +57,10 @@ export default {
title: "Daftar Isi",
},
contentMeta: {
- readingTime: ({ minutes }) => `${minutes} menit baca`,
+ readingTime: ({ minutes }) => `${minutes} mnt baca`,
+ },
+ pageCount: {
+ totalItems: ({ count }) => `${count} catatan`,
},
},
pages: {
diff --git a/quartz/i18n/locales/it-IT.ts b/quartz/i18n/locales/it-IT.ts
index be25bb640..0b6552da8 100644
--- a/quartz/i18n/locales/it-IT.ts
+++ b/quartz/i18n/locales/it-IT.ts
@@ -57,7 +57,10 @@ export default {
title: "Tabella dei contenuti",
},
contentMeta: {
- readingTime: ({ minutes }) => `${minutes} minuti`,
+ readingTime: ({ minutes }) => `${minutes} min di lettura`,
+ },
+ pageCount: {
+ totalItems: ({ count }) => `${count} note`,
},
},
pages: {
diff --git a/quartz/i18n/locales/ja-JP.ts b/quartz/i18n/locales/ja-JP.ts
index 3c30124d7..047641302 100644
--- a/quartz/i18n/locales/ja-JP.ts
+++ b/quartz/i18n/locales/ja-JP.ts
@@ -59,6 +59,9 @@ export default {
contentMeta: {
readingTime: ({ minutes }) => `${minutes} min read`,
},
+ pageCount: {
+ totalItems: ({ count }) => `${count}件のページ`,
+ },
},
pages: {
rss: {
diff --git a/quartz/i18n/locales/ko-KR.ts b/quartz/i18n/locales/ko-KR.ts
index 1bca096b2..382742d25 100644
--- a/quartz/i18n/locales/ko-KR.ts
+++ b/quartz/i18n/locales/ko-KR.ts
@@ -57,7 +57,10 @@ export default {
title: "목차",
},
contentMeta: {
- readingTime: ({ minutes }) => `${minutes} min read`,
+ readingTime: ({ minutes }) => `${minutes}분 분량`,
+ },
+ pageCount: {
+ totalItems: ({ count }) => `${count}건의 페이지`,
},
},
pages: {
diff --git a/quartz/i18n/locales/lt-LT.ts b/quartz/i18n/locales/lt-LT.ts
index 690960c35..e1853c6d1 100644
--- a/quartz/i18n/locales/lt-LT.ts
+++ b/quartz/i18n/locales/lt-LT.ts
@@ -57,7 +57,10 @@ export default {
title: "Turinys",
},
contentMeta: {
- readingTime: ({ minutes }) => `${minutes} min skaitymo`,
+ readingTime: ({ minutes }) => `${minutes} min. skaitymo`,
+ },
+ pageCount: {
+ totalItems: ({ count }) => `${count} užrašai`,
},
},
pages: {
diff --git a/quartz/i18n/locales/nb-NO.ts b/quartz/i18n/locales/nb-NO.ts
index 0e415221e..a1668f9ff 100644
--- a/quartz/i18n/locales/nb-NO.ts
+++ b/quartz/i18n/locales/nb-NO.ts
@@ -57,7 +57,10 @@ export default {
title: "Oversikt",
},
contentMeta: {
- readingTime: ({ minutes }) => `${minutes} min lesning`,
+ readingTime: ({ minutes }) => `${minutes} min lesetid`,
+ },
+ pageCount: {
+ totalItems: ({ count }) => `${count} notater`,
},
},
pages: {
diff --git a/quartz/i18n/locales/nl-NL.ts b/quartz/i18n/locales/nl-NL.ts
index 8ab3b0722..5da8267f9 100644
--- a/quartz/i18n/locales/nl-NL.ts
+++ b/quartz/i18n/locales/nl-NL.ts
@@ -57,8 +57,10 @@ export default {
title: "Inhoudsopgave",
},
contentMeta: {
- readingTime: ({ minutes }) =>
- minutes === 1 ? "1 minuut leestijd" : `${minutes} minuten leestijd`,
+ readingTime: ({ minutes }) => `${minutes} min lezen`,
+ },
+ pageCount: {
+ totalItems: ({ count }) => `${count} notities`,
},
},
pages: {
diff --git a/quartz/i18n/locales/pl-PL.ts b/quartz/i18n/locales/pl-PL.ts
index 11033e30f..d0e8d797c 100644
--- a/quartz/i18n/locales/pl-PL.ts
+++ b/quartz/i18n/locales/pl-PL.ts
@@ -57,7 +57,10 @@ export default {
title: "Spis treści",
},
contentMeta: {
- readingTime: ({ minutes }) => `${minutes} min. czytania `,
+ readingTime: ({ minutes }) => `${minutes} min czytania`,
+ },
+ pageCount: {
+ totalItems: ({ count }) => `${count} notatki`,
},
},
pages: {
diff --git a/quartz/i18n/locales/pt-BR.ts b/quartz/i18n/locales/pt-BR.ts
index e431d8ed5..3c65e3b8a 100644
--- a/quartz/i18n/locales/pt-BR.ts
+++ b/quartz/i18n/locales/pt-BR.ts
@@ -57,7 +57,10 @@ export default {
title: "Sumário",
},
contentMeta: {
- readingTime: ({ minutes }) => `Leitura de ${minutes} min`,
+ readingTime: ({ minutes }) => `${minutes} min de leitura`,
+ },
+ pageCount: {
+ totalItems: ({ count }) => `${count} notas`,
},
},
pages: {
diff --git a/quartz/i18n/locales/ro-RO.ts b/quartz/i18n/locales/ro-RO.ts
index 007d90169..55face999 100644
--- a/quartz/i18n/locales/ro-RO.ts
+++ b/quartz/i18n/locales/ro-RO.ts
@@ -60,6 +60,9 @@ export default {
readingTime: ({ minutes }) =>
minutes == 1 ? `lectură de 1 minut` : `lectură de ${minutes} minute`,
},
+ pageCount: {
+ totalItems: ({ count }) => `${count} notițe`,
+ },
},
pages: {
rss: {
diff --git a/quartz/i18n/locales/ru-RU.ts b/quartz/i18n/locales/ru-RU.ts
index 5534d140c..7e106a71f 100644
--- a/quartz/i18n/locales/ru-RU.ts
+++ b/quartz/i18n/locales/ru-RU.ts
@@ -60,6 +60,9 @@ export default {
contentMeta: {
readingTime: ({ minutes }) => `время чтения ~${minutes} мин.`,
},
+ pageCount: {
+ totalItems: ({ count }) => `${count} замет${getForm(count, "ка", "ки", "ок")}`,
+ },
},
pages: {
rss: {
diff --git a/quartz/i18n/locales/th-TH.ts b/quartz/i18n/locales/th-TH.ts
index 073013196..df3b4d765 100644
--- a/quartz/i18n/locales/th-TH.ts
+++ b/quartz/i18n/locales/th-TH.ts
@@ -59,6 +59,9 @@ export default {
contentMeta: {
readingTime: ({ minutes }) => `อ่านราว ${minutes} นาที`,
},
+ pageCount: {
+ totalItems: ({ count }) => `${count} บันทึก`,
+ },
},
pages: {
rss: {
diff --git a/quartz/i18n/locales/tr-TR.ts b/quartz/i18n/locales/tr-TR.ts
index 9c2d6d4ad..da69aecc6 100644
--- a/quartz/i18n/locales/tr-TR.ts
+++ b/quartz/i18n/locales/tr-TR.ts
@@ -59,6 +59,9 @@ export default {
contentMeta: {
readingTime: ({ minutes }) => `${minutes} dakika okuma süresi`,
},
+ pageCount: {
+ totalItems: ({ count }) => `${count} notlar`,
+ },
},
pages: {
rss: {
diff --git a/quartz/i18n/locales/uk-UA.ts b/quartz/i18n/locales/uk-UA.ts
index ac2a24850..222391660 100644
--- a/quartz/i18n/locales/uk-UA.ts
+++ b/quartz/i18n/locales/uk-UA.ts
@@ -59,6 +59,9 @@ export default {
contentMeta: {
readingTime: ({ minutes }) => `${minutes} хв читання`,
},
+ pageCount: {
+ totalItems: ({ count }) => `${count} нотатки`,
+ },
},
pages: {
rss: {
diff --git a/quartz/i18n/locales/vi-VN.ts b/quartz/i18n/locales/vi-VN.ts
index 26a58a50e..685530235 100644
--- a/quartz/i18n/locales/vi-VN.ts
+++ b/quartz/i18n/locales/vi-VN.ts
@@ -59,6 +59,9 @@ export default {
contentMeta: {
readingTime: ({ minutes }) => `đọc ${minutes} phút`,
},
+ pageCount: {
+ totalItems: ({ count }) => `${count} bài viết`,
+ },
},
pages: {
rss: {
diff --git a/quartz/i18n/locales/zh-CN.ts b/quartz/i18n/locales/zh-CN.ts
index 09951bbb3..0ed81cbc0 100644
--- a/quartz/i18n/locales/zh-CN.ts
+++ b/quartz/i18n/locales/zh-CN.ts
@@ -59,6 +59,9 @@ export default {
contentMeta: {
readingTime: ({ minutes }) => `${minutes}分钟阅读`,
},
+ pageCount: {
+ totalItems: ({ count }) => `${count}条笔记`,
+ },
},
pages: {
rss: {
diff --git a/quartz/i18n/locales/zh-TW.ts b/quartz/i18n/locales/zh-TW.ts
index 4e784c06d..3110f50b7 100644
--- a/quartz/i18n/locales/zh-TW.ts
+++ b/quartz/i18n/locales/zh-TW.ts
@@ -59,6 +59,9 @@ export default {
contentMeta: {
readingTime: ({ minutes }) => `閱讀時間約 ${minutes} 分鐘`,
},
+ pageCount: {
+ totalItems: ({ count }) => `${count} 條筆記`,
+ },
},
pages: {
rss: {