From 7e828252bbf37d967db3feed820409625f38b5ab Mon Sep 17 00:00:00 2001 From: Aaron Pham Date: Tue, 7 Jan 2025 16:00:09 -0500 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 deletion(-) 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 @@ describe("transforms", () => { 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 @@ export function joinSegments(...args: string[]): string { } let joined = args - .filter((segment) => segment !== "") + .filter((segment) => segment !== "" && segment !== "/") .map((segment) => stripSlashes(segment)) .join("/")