From 7e828252bbf37d967db3feed820409625f38b5ab Mon Sep 17 00:00:00 2001
From: Aaron Pham <contact@aarnphm.xyz>
Date: Tue, 07 Jan 2025 21:00:09 +0000
Subject: [PATCH] fix(path): handle lone slash (#1713)

---
 quartz/util/path.test.ts |    4 ++++
 quartz/util/path.ts      |    2 +-
 2 files changed, 5 insertions(+), 1 deletions(-)

diff --git a/quartz/util/path.test.ts b/quartz/util/path.test.ts
index 687e693..29d845d 100644
--- a/quartz/util/path.test.ts
+++ b/quartz/util/path.test.ts
@@ -171,6 +171,10 @@
     assert.strictEqual(path.joinSegments("/a", "b/"), "/a/b/")
     assert.strictEqual(path.joinSegments("/a/", "b/"), "/a/b/")
 
+    // lone slash
+    assert.strictEqual(path.joinSegments("/a/", "b", "/"), "/a/b/")
+    assert.strictEqual(path.joinSegments("a/", "b" + "/"), "a/b/")
+
     // works with protocol specifiers
     assert.strictEqual(path.joinSegments("https://example.com", "a"), "https://example.com/a")
     assert.strictEqual(path.joinSegments("https://example.com/", "a"), "https://example.com/a")
diff --git a/quartz/util/path.ts b/quartz/util/path.ts
index 580707f..5835f15 100644
--- a/quartz/util/path.ts
+++ b/quartz/util/path.ts
@@ -188,7 +188,7 @@
   }
 
   let joined = args
-    .filter((segment) => segment !== "")
+    .filter((segment) => segment !== "" && segment !== "/")
     .map((segment) => stripSlashes(segment))
     .join("/")
 

--
Gitblit v1.10.0