| | |
| | | import type { Element as HastElement } from "hast" |
| | | import rfdc from "rfdc" |
| | | |
| | | const clone = rfdc() |
| | | export const clone = rfdc() |
| | | |
| | | // this file must be isomorphic so it can't use node libs (e.g. path) |
| | | |
| | |
| | | function sluggify(s: string): string { |
| | | return s |
| | | .split("/") |
| | | .map((segment) => segment.replace(/\s/g, "-").replace(/%/g, "-percent").replace(/\?/g, "-q")) // slugify all segments |
| | | .map((segment) => |
| | | segment.replace(/\s/g, "-").replace(/%/g, "-percent").replace(/\?/g, "-q").replace(/#/g, ""), |
| | | ) |
| | | .join("/") // always use / as sep |
| | | .replace(/\/$/, "") |
| | | } |