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("/")