This commit is contained in:
Jani1XY 2026-01-29 05:38:30 +01:00 committed by GitHub
commit 280f08f346
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
32 changed files with 100 additions and 2 deletions

View File

@ -3,6 +3,7 @@ import breadcrumbsStyle from "./styles/breadcrumbs.scss"
import { FullSlug, SimpleSlug, resolveRelative, simplifySlug } from "../util/path" import { FullSlug, SimpleSlug, resolveRelative, simplifySlug } from "../util/path"
import { classNames } from "../util/lang" import { classNames } from "../util/lang"
import { trieFromAllFiles } from "../util/ctx" import { trieFromAllFiles } from "../util/ctx"
import { i18n } from "../i18n"
type CrumbData = { type CrumbData = {
displayName: string displayName: string
@ -30,7 +31,7 @@ interface BreadcrumbOptions {
const defaultOptions: BreadcrumbOptions = { const defaultOptions: BreadcrumbOptions = {
spacerSymbol: "", spacerSymbol: "",
rootName: "Home", rootName: "",
resolveFrontmatterTitle: true, resolveFrontmatterTitle: true,
showCurrentPage: true, showCurrentPage: true,
} }
@ -49,6 +50,7 @@ export default ((opts?: Partial<BreadcrumbOptions>) => {
allFiles, allFiles,
displayClass, displayClass,
ctx, ctx,
cfg,
}: QuartzComponentProps) => { }: QuartzComponentProps) => {
const trie = (ctx.trie ??= trieFromAllFiles(allFiles)) const trie = (ctx.trie ??= trieFromAllFiles(allFiles))
const slugParts = fileData.slug!.split("/") const slugParts = fileData.slug!.split("/")
@ -61,7 +63,10 @@ export default ((opts?: Partial<BreadcrumbOptions>) => {
const crumbs: CrumbData[] = pathNodes.map((node, idx) => { const crumbs: CrumbData[] = pathNodes.map((node, idx) => {
const crumb = formatCrumb(node.displayName, fileData.slug!, simplifySlug(node.slug)) const crumb = formatCrumb(node.displayName, fileData.slug!, simplifySlug(node.slug))
if (idx === 0) { if (idx === 0) {
crumb.displayName = options.rootName crumb.displayName =
options.rootName !== ""
? options.rootName
: i18n(cfg.locale).components.breadcrumbs.rootName
} }
// For last node (current page), set empty path // For last node (current page), set empty path

View File

@ -65,6 +65,9 @@ export default {
? `دقيقتان للقراءة` ? `دقيقتان للقراءة`
: `${minutes} دقائق للقراءة`, : `${minutes} دقائق للقراءة`,
}, },
breadcrumbs: {
rootName: "Home",
},
}, },
pages: { pages: {
rss: { rss: {

View File

@ -59,6 +59,9 @@ export default {
contentMeta: { contentMeta: {
readingTime: ({ minutes }) => `Es llegeix en ${minutes} min`, readingTime: ({ minutes }) => `Es llegeix en ${minutes} min`,
}, },
breadcrumbs: {
rootName: "Home",
},
}, },
pages: { pages: {
rss: { rss: {

View File

@ -59,6 +59,9 @@ export default {
contentMeta: { contentMeta: {
readingTime: ({ minutes }) => `${minutes} min čtení`, readingTime: ({ minutes }) => `${minutes} min čtení`,
}, },
breadcrumbs: {
rootName: "Home",
},
}, },
pages: { pages: {
rss: { rss: {

View File

@ -59,6 +59,9 @@ export default {
contentMeta: { contentMeta: {
readingTime: ({ minutes }) => `${minutes} Min. Lesezeit`, readingTime: ({ minutes }) => `${minutes} Min. Lesezeit`,
}, },
breadcrumbs: {
rootName: "Home",
},
}, },
pages: { pages: {
rss: { rss: {

View File

@ -62,6 +62,9 @@ export interface Translation {
contentMeta: { contentMeta: {
readingTime: (variables: { minutes: number }) => string readingTime: (variables: { minutes: number }) => string
} }
breadcrumbs: {
rootName: string
}
} }
pages: { pages: {
rss: { rss: {

View File

@ -59,6 +59,9 @@ export default {
contentMeta: { contentMeta: {
readingTime: ({ minutes }) => `${minutes} min read`, readingTime: ({ minutes }) => `${minutes} min read`,
}, },
breadcrumbs: {
rootName: "Home",
},
}, },
pages: { pages: {
rss: { rss: {

View File

@ -59,6 +59,9 @@ export default {
contentMeta: { contentMeta: {
readingTime: ({ minutes }) => `${minutes} min read`, readingTime: ({ minutes }) => `${minutes} min read`,
}, },
breadcrumbs: {
rootName: "Home",
},
}, },
pages: { pages: {
rss: { rss: {

View File

@ -59,6 +59,9 @@ export default {
contentMeta: { contentMeta: {
readingTime: ({ minutes }) => `Se lee en ${minutes} min`, readingTime: ({ minutes }) => `Se lee en ${minutes} min`,
}, },
breadcrumbs: {
rootName: "Home",
},
}, },
pages: { pages: {
rss: { rss: {

View File

@ -60,6 +60,9 @@ export default {
contentMeta: { contentMeta: {
readingTime: ({ minutes }) => `زمان تقریبی مطالعه: ${minutes} دقیقه`, readingTime: ({ minutes }) => `زمان تقریبی مطالعه: ${minutes} دقیقه`,
}, },
breadcrumbs: {
rootName: "Home",
},
}, },
pages: { pages: {
rss: { rss: {

View File

@ -59,6 +59,9 @@ export default {
contentMeta: { contentMeta: {
readingTime: ({ minutes }) => `${minutes} min lukuaika`, readingTime: ({ minutes }) => `${minutes} min lukuaika`,
}, },
breadcrumbs: {
rootName: "Home",
},
}, },
pages: { pages: {
rss: { rss: {

View File

@ -59,6 +59,9 @@ export default {
contentMeta: { contentMeta: {
readingTime: ({ minutes }) => `${minutes} min de lecture`, readingTime: ({ minutes }) => `${minutes} min de lecture`,
}, },
breadcrumbs: {
rootName: "Home",
},
}, },
pages: { pages: {
rss: { rss: {

View File

@ -60,6 +60,9 @@ export default {
contentMeta: { contentMeta: {
readingTime: ({ minutes }) => `${minutes} דקות קריאה`, readingTime: ({ minutes }) => `${minutes} דקות קריאה`,
}, },
breadcrumbs: {
rootName: "Home",
},
}, },
pages: { pages: {
rss: { rss: {

View File

@ -59,6 +59,9 @@ export default {
contentMeta: { contentMeta: {
readingTime: ({ minutes }) => `${minutes} perces olvasás`, readingTime: ({ minutes }) => `${minutes} perces olvasás`,
}, },
breadcrumbs: {
rootName: "Otthon",
},
}, },
pages: { pages: {
rss: { rss: {

View File

@ -59,6 +59,9 @@ export default {
contentMeta: { contentMeta: {
readingTime: ({ minutes }) => `${minutes} menit baca`, readingTime: ({ minutes }) => `${minutes} menit baca`,
}, },
breadcrumbs: {
rootName: "Home",
},
}, },
pages: { pages: {
rss: { rss: {

View File

@ -60,6 +60,9 @@ export default {
contentMeta: { contentMeta: {
readingTime: ({ minutes }) => (minutes === 1 ? "1 minuto" : `${minutes} minuti`), readingTime: ({ minutes }) => (minutes === 1 ? "1 minuto" : `${minutes} minuti`),
}, },
breadcrumbs: {
rootName: "Home",
},
}, },
pages: { pages: {
rss: { rss: {

View File

@ -59,6 +59,9 @@ export default {
contentMeta: { contentMeta: {
readingTime: ({ minutes }) => `${minutes} min read`, readingTime: ({ minutes }) => `${minutes} min read`,
}, },
breadcrumbs: {
rootName: "Home",
},
}, },
pages: { pages: {
rss: { rss: {

View File

@ -59,6 +59,9 @@ export default {
contentMeta: { contentMeta: {
readingTime: ({ minutes }) => `${minutes} мин оқу`, readingTime: ({ minutes }) => `${minutes} мин оқу`,
}, },
breadcrumbs: {
rootName: "Home",
},
}, },
pages: { pages: {
rss: { rss: {

View File

@ -59,6 +59,9 @@ export default {
contentMeta: { contentMeta: {
readingTime: ({ minutes }) => `${minutes} min read`, readingTime: ({ minutes }) => `${minutes} min read`,
}, },
breadcrumbs: {
rootName: "Home",
},
}, },
pages: { pages: {
rss: { rss: {

View File

@ -59,6 +59,9 @@ export default {
contentMeta: { contentMeta: {
readingTime: ({ minutes }) => `${minutes} min skaitymo`, readingTime: ({ minutes }) => `${minutes} min skaitymo`,
}, },
breadcrumbs: {
rootName: "Home",
},
}, },
pages: { pages: {
rss: { rss: {

View File

@ -59,6 +59,9 @@ export default {
contentMeta: { contentMeta: {
readingTime: ({ minutes }) => `${minutes} min lesning`, readingTime: ({ minutes }) => `${minutes} min lesning`,
}, },
breadcrumbs: {
rootName: "Home",
},
}, },
pages: { pages: {
rss: { rss: {

View File

@ -60,6 +60,9 @@ export default {
readingTime: ({ minutes }) => readingTime: ({ minutes }) =>
minutes === 1 ? "1 minuut leestijd" : `${minutes} minuten leestijd`, minutes === 1 ? "1 minuut leestijd" : `${minutes} minuten leestijd`,
}, },
breadcrumbs: {
rootName: "Home",
},
}, },
pages: { pages: {
rss: { rss: {

View File

@ -59,6 +59,9 @@ export default {
contentMeta: { contentMeta: {
readingTime: ({ minutes }) => `${minutes} min. czytania `, readingTime: ({ minutes }) => `${minutes} min. czytania `,
}, },
breadcrumbs: {
rootName: "Home",
},
}, },
pages: { pages: {
rss: { rss: {

View File

@ -59,6 +59,9 @@ export default {
contentMeta: { contentMeta: {
readingTime: ({ minutes }) => `Leitura de ${minutes} min`, readingTime: ({ minutes }) => `Leitura de ${minutes} min`,
}, },
breadcrumbs: {
rootName: "Home",
},
}, },
pages: { pages: {
rss: { rss: {

View File

@ -60,6 +60,9 @@ export default {
readingTime: ({ minutes }) => readingTime: ({ minutes }) =>
minutes == 1 ? `lectură de 1 minut` : `lectură de ${minutes} minute`, minutes == 1 ? `lectură de 1 minut` : `lectură de ${minutes} minute`,
}, },
breadcrumbs: {
rootName: "Home",
},
}, },
pages: { pages: {
rss: { rss: {

View File

@ -60,6 +60,9 @@ export default {
contentMeta: { contentMeta: {
readingTime: ({ minutes }) => `время чтения ~${minutes} мин.`, readingTime: ({ minutes }) => `время чтения ~${minutes} мин.`,
}, },
breadcrumbs: {
rootName: "Home",
},
}, },
pages: { pages: {
rss: { rss: {

View File

@ -59,6 +59,9 @@ export default {
contentMeta: { contentMeta: {
readingTime: ({ minutes }) => `อ่านราว ${minutes} นาที`, readingTime: ({ minutes }) => `อ่านราว ${minutes} นาที`,
}, },
breadcrumbs: {
rootName: "Home",
},
}, },
pages: { pages: {
rss: { rss: {

View File

@ -59,6 +59,9 @@ export default {
contentMeta: { contentMeta: {
readingTime: ({ minutes }) => `${minutes} dakika okuma süresi`, readingTime: ({ minutes }) => `${minutes} dakika okuma süresi`,
}, },
breadcrumbs: {
rootName: "Home",
},
}, },
pages: { pages: {
rss: { rss: {

View File

@ -59,6 +59,9 @@ export default {
contentMeta: { contentMeta: {
readingTime: ({ minutes }) => `${minutes} хв читання`, readingTime: ({ minutes }) => `${minutes} хв читання`,
}, },
breadcrumbs: {
rootName: "Home",
},
}, },
pages: { pages: {
rss: { rss: {

View File

@ -59,6 +59,9 @@ export default {
contentMeta: { contentMeta: {
readingTime: ({ minutes }) => `${minutes} phút đọc`, readingTime: ({ minutes }) => `${minutes} phút đọc`,
}, },
breadcrumbs: {
rootName: "Home",
},
}, },
pages: { pages: {
rss: { rss: {

View File

@ -59,6 +59,9 @@ export default {
contentMeta: { contentMeta: {
readingTime: ({ minutes }) => `${minutes}分钟阅读`, readingTime: ({ minutes }) => `${minutes}分钟阅读`,
}, },
breadcrumbs: {
rootName: "Home",
},
}, },
pages: { pages: {
rss: { rss: {

View File

@ -59,6 +59,9 @@ export default {
contentMeta: { contentMeta: {
readingTime: ({ minutes }) => `閱讀時間約 ${minutes} 分鐘`, readingTime: ({ minutes }) => `閱讀時間約 ${minutes} 分鐘`,
}, },
breadcrumbs: {
rootName: "Home",
},
}, },
pages: { pages: {
rss: { rss: {