feat: add copy markdown buttons
This commit is contained in:
@@ -0,0 +1,35 @@
|
||||
var removeHtmlExtension = (pathSegment) => {
|
||||
const lastSlashIndex = pathSegment.lastIndexOf('/')
|
||||
const lastDotIndex = pathSegment.lastIndexOf('.')
|
||||
if (
|
||||
lastDotIndex > lastSlashIndex &&
|
||||
lastDotIndex !== -1 &&
|
||||
pathSegment.endsWith('.html')
|
||||
) {
|
||||
return pathSegment.slice(0, lastDotIndex)
|
||||
}
|
||||
return pathSegment
|
||||
}
|
||||
function cleanUrl(url) {
|
||||
const { origin, pathname } = new URL(url)
|
||||
const pathnameWithoutTrailingSlash = pathname.replace(/\/+$/, '')
|
||||
if (pathname.length > 0) {
|
||||
return origin + removeHtmlExtension(pathnameWithoutTrailingSlash)
|
||||
}
|
||||
return origin
|
||||
}
|
||||
function resolveMarkdownPageURL(url) {
|
||||
const cleanedURL = cleanUrl(url)
|
||||
return `${cleanedURL}/index.md`
|
||||
}
|
||||
function downloadFile(filename, content, blobType = 'text/plain') {
|
||||
const blob =
|
||||
content instanceof Blob ? content : new Blob([content], { type: blobType })
|
||||
const url = URL.createObjectURL(blob)
|
||||
Object.assign(document.createElement('a'), {
|
||||
href: url,
|
||||
download: filename
|
||||
}).click()
|
||||
URL.revokeObjectURL(url)
|
||||
}
|
||||
export { resolveMarkdownPageURL, downloadFile, cleanUrl }
|
||||
Reference in New Issue
Block a user