From 78f4cdbe109308fa33cb87387952aef5a528ebbe Mon Sep 17 00:00:00 2001
From: Jacky Zhao <j.zhao2k19@gmail.com>
Date: Sat, 19 Aug 2023 23:40:02 +0000
Subject: [PATCH] avoid 404 on icon for spa navigations with anchors

---
 quartz/components/TagList.tsx |   31 +++++++++++++++++++------------
 1 files changed, 19 insertions(+), 12 deletions(-)

diff --git a/quartz/components/TagList.tsx b/quartz/components/TagList.tsx
index 54147db..639f68c 100644
--- a/quartz/components/TagList.tsx
+++ b/quartz/components/TagList.tsx
@@ -1,19 +1,25 @@
-import { canonicalizeServer, pathToRoot } from "../path"
+import { pathToRoot, slugTag } from "../util/path"
 import { QuartzComponentConstructor, QuartzComponentProps } from "./types"
-import { slug as slugAnchor } from 'github-slugger'
 
 function TagList({ fileData }: QuartzComponentProps) {
   const tags = fileData.frontmatter?.tags
-  const slug = canonicalizeServer(fileData.slug!)
-  const baseDir = pathToRoot(slug)
+  const baseDir = pathToRoot(fileData.slug!)
   if (tags && tags.length > 0) {
-    return <ul class="tags">{tags.map(tag => {
-      const display = `#${tag}`
-      const linkDest = baseDir + `/tags/${slugAnchor(tag)}`
-      return <li>
-        <a href={linkDest} class="internal">{display}</a>
-      </li>
-    })}</ul>
+    return (
+      <ul class="tags">
+        {tags.map((tag) => {
+          const display = `#${tag}`
+          const linkDest = baseDir + `/tags/${slugTag(tag)}`
+          return (
+            <li>
+              <a href={linkDest} class="internal tag-link">
+                {display}
+              </a>
+            </li>
+          )
+        })}
+      </ul>
+    )
   } else {
     return null
   }
@@ -25,6 +31,7 @@
   display: flex;
   padding-left: 0;
   gap: 0.4rem;
+  margin: 1rem 0;
 }
   
 .tags > li {
@@ -34,7 +41,7 @@
   overflow-wrap: normal;
 }
 
-.tags > li > a {
+a.tag-link {
   border-radius: 8px;
   background-color: var(--highlight);
   padding: 0.2rem 0.5rem;

--
Gitblit v1.10.0