| | |
| | | |
| | | let slug = withoutFileExt |
| | | .split("/") |
| | | .map((segment) => segment.replace(/\s/g, "-").replace(/%/g, "-percent")) // slugify all segments |
| | | .map((segment) => segment.replace(/\s/g, "-").replace(/%/g, "-percent").replace(/\?/g, "-q")) // slugify all segments |
| | | .join("/") // always use / as sep |
| | | .replace(/\/$/, "") // remove trailing slash |
| | | |
| | |
| | | } |
| | | |
| | | export function joinSegments(...args: string[]): string { |
| | | return args.filter((segment) => segment !== "").join("/") |
| | | return args |
| | | .filter((segment) => segment !== "") |
| | | .join("/") |
| | | .replace(/\/\/+/g, "/") |
| | | } |
| | | |
| | | export function getAllSegmentPrefixes(tags: string): string[] { |