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