20 lines
492 B
TypeScript
20 lines
492 B
TypeScript
import path from 'path'
|
|
|
|
// Replaces all whitespace with dashes and URI encodes the rest
|
|
export function pathToSlug(fp: string): string {
|
|
const { dir, name } = path.parse(fp)
|
|
let slug = path.join('/', dir, name)
|
|
slug = slug.replace(/\s/g, '-')
|
|
return slug
|
|
}
|
|
|
|
// resolve /a/b/c to ../../
|
|
export function resolveToRoot(slug: string): string {
|
|
let fp = slug
|
|
if (fp.endsWith("/index")) {
|
|
fp = fp.slice(0, -"/index".length)
|
|
}
|
|
|
|
return "./" + path.relative(fp, path.posix.sep)
|
|
}
|