Jacky Zhao
2024-02-05 06ee73e006fedef64d326aae8909bcc4ca5b243a
fix(path): properly path encode &
2 files modified
10 ■■■■ changed files
quartz/util/path.test.ts 3 ●●●● patch | view | raw | blame | history
quartz/util/path.ts 7 ●●●● patch | view | raw | blame | history
quartz/util/path.test.ts
@@ -106,8 +106,9 @@
        ["test.mp4", "test.mp4"],
        ["note with spaces.md", "note-with-spaces"],
        ["notes.with.dots.md", "notes.with.dots"],
        ["test/special chars?.md", "test/special-chars-q"],
        ["test/special chars?.md", "test/special-chars"],
        ["test/special chars #3.md", "test/special-chars-3"],
        ["cool/what about r&d?.md", "cool/what-about-r-and-d"],
      ],
      path.slugifyFilePath,
      path.isFilePath,
quartz/util/path.ts
@@ -51,7 +51,12 @@
  return s
    .split("/")
    .map((segment) =>
      segment.replace(/\s/g, "-").replace(/%/g, "-percent").replace(/\?/g, "-q").replace(/#/g, ""),
      segment
        .replace(/\s/g, "-")
        .replace(/&/g, "-and-")
        .replace(/%/g, "-percent")
        .replace(/\?/g, "")
        .replace(/#/g, ""),
    )
    .join("/") // always use / as sep
    .replace(/\/$/, "")