19 lines
513 B
TypeScript

import { PATHNAME_PROTOCOL_RE, isExternal } from './shared.js'
export function normalizeLink(url: string): string {
if (isExternal(url))
return url.replace(PATHNAME_PROTOCOL_RE, '')
const { pathname, search, hash } = new URL(url, 'http://example.com')
const normalizedPath
= pathname.endsWith('/') || pathname.endsWith('.html')
? url
: url.replace(
/(?:(^\.+)\/)?.*$/,
`$1${pathname.replace(/(\.md)?$/, '.html')}${search}${hash}`,
)
return normalizedPath
}