From 4e74d11b1aee8c0affa0b13ba7b174d175ca3244 Mon Sep 17 00:00:00 2001
From: Jacky Zhao <j.zhao2k19@gmail.com>
Date: Mon, 24 Mar 2025 00:24:43 +0000
Subject: [PATCH] fix: cleanup a href link construction, global shared trie, breadcrumbs use trie
---
quartz/components/pages/FolderContent.tsx | 25 +++----------------------
1 files changed, 3 insertions(+), 22 deletions(-)
diff --git a/quartz/components/pages/FolderContent.tsx b/quartz/components/pages/FolderContent.tsx
index 9621f4f..afd4f5d 100644
--- a/quartz/components/pages/FolderContent.tsx
+++ b/quartz/components/pages/FolderContent.tsx
@@ -8,7 +8,8 @@
import { QuartzPluginData } from "../../plugins/vfile"
import { ComponentChildren } from "preact"
import { concatenateResources } from "../../util/resources"
-import { FileTrieNode } from "../../util/fileTrie"
+import { trieFromAllFiles } from "../../util/ctx"
+
interface FolderContentOptions {
/**
* Whether to display number of folders
@@ -25,31 +26,11 @@
export default ((opts?: Partial<FolderContentOptions>) => {
const options: FolderContentOptions = { ...defaultOptions, ...opts }
- let trie: FileTrieNode<
- QuartzPluginData & {
- slug: string
- title: string
- filePath: string
- }
- >
const FolderContent: QuartzComponent = (props: QuartzComponentProps) => {
const { tree, fileData, allFiles, cfg } = props
- if (!trie) {
- trie = new FileTrieNode([])
- allFiles.forEach((file) => {
- if (file.frontmatter) {
- trie.add({
- ...file,
- slug: file.slug!,
- title: file.frontmatter.title,
- filePath: file.filePath!,
- })
- }
- })
- }
-
+ const trie = (props.ctx.trie ??= trieFromAllFiles(allFiles))
const folder = trie.findNode(fileData.slug!.split("/"))
if (!folder) {
return null
--
Gitblit v1.10.0