From c538c151c7462ad0395ff2c15c5e11e89e362aa8 Mon Sep 17 00:00:00 2001
From: Striven <sg.striven@cutecat.club>
Date: Sat, 04 Apr 2026 19:47:16 +0000
Subject: [PATCH] Initial commit

---
 quartz/components/TagList.tsx |   42 +++++++++++++++++++++++++++---------------
 1 files changed, 27 insertions(+), 15 deletions(-)

diff --git a/quartz/components/TagList.tsx b/quartz/components/TagList.tsx
index 54147db..c73ed39 100644
--- a/quartz/components/TagList.tsx
+++ b/quartz/components/TagList.tsx
@@ -1,19 +1,24 @@
-import { canonicalizeServer, pathToRoot } from "../path"
-import { QuartzComponentConstructor, QuartzComponentProps } from "./types"
-import { slug as slugAnchor } from 'github-slugger'
+import { FullSlug, resolveRelative } from "../util/path"
+import { QuartzComponent, QuartzComponentConstructor, QuartzComponentProps } from "./types"
+import { classNames } from "../util/lang"
 
-function TagList({ fileData }: QuartzComponentProps) {
+const TagList: QuartzComponent = ({ fileData, displayClass }: QuartzComponentProps) => {
   const tags = fileData.frontmatter?.tags
-  const slug = canonicalizeServer(fileData.slug!)
-  const baseDir = pathToRoot(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={classNames(displayClass, "tags")}>
+        {tags.map((tag) => {
+          const linkDest = resolveRelative(fileData.slug!, `tags/${tag}` as FullSlug)
+          return (
+            <li>
+              <a href={linkDest} class="internal tag-link">
+                {tag}
+              </a>
+            </li>
+          )
+        })}
+      </ul>
+    )
   } else {
     return null
   }
@@ -25,6 +30,12 @@
   display: flex;
   padding-left: 0;
   gap: 0.4rem;
+  margin: 1rem 0;
+  flex-wrap: wrap;
+}
+
+.section-li > .section > .tags {
+  justify-content: flex-end;
 }
   
 .tags > li {
@@ -34,10 +45,11 @@
   overflow-wrap: normal;
 }
 
-.tags > li > a {
+a.internal.tag-link {
   border-radius: 8px;
   background-color: var(--highlight);
-  padding: 0.2rem 0.5rem;
+  padding: 0.2rem 0.4rem;
+  margin: 0 0.1rem;
 }
 `
 

--
Gitblit v1.10.0