From 34d1542f466e2eed28b1be7153d1c3461d84528f Mon Sep 17 00:00:00 2001 From: Divyansh Singh <40380293+brc-dd@users.noreply.github.com> Date: Tue, 22 Feb 2022 07:55:44 +0530 Subject: [PATCH] fix: don't add .html to urls of non-html files (#515) fix #265 --- src/node/markdown/plugins/link.ts | 6 ++++-- src/node/markdownToVue.ts | 2 ++ 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/src/node/markdown/plugins/link.ts b/src/node/markdown/plugins/link.ts index d1448bc8..e88e425c 100644 --- a/src/node/markdown/plugins/link.ts +++ b/src/node/markdown/plugins/link.ts @@ -33,7 +33,9 @@ export const linkPlugin = ( // internal anchor links !url.startsWith('#') && // mail links - !url.startsWith('mailto:') + !url.startsWith('mailto:') && + // links to files (other than html/md) + !/\.(?!html|md)\w+($|\?)/i.test(url) ) { normalizeHref(hrefAttr) } @@ -56,7 +58,7 @@ export const linkPlugin = ( const [, path, hash] = indexMatch url = path + hash } else { - let cleanUrl = url.replace(/\#.*$/, '').replace(/\?.*$/, '') + let cleanUrl = url.replace(/[?#].*$/, '') // .md -> .html if (cleanUrl.endsWith('.md')) { cleanUrl = cleanUrl.replace(/\.md$/, '.html') diff --git a/src/node/markdownToVue.ts b/src/node/markdownToVue.ts index 29db7461..22b9eb38 100644 --- a/src/node/markdownToVue.ts +++ b/src/node/markdownToVue.ts @@ -107,6 +107,8 @@ export function createMarkdownToVueRenderFn( if (data.links) { const dir = path.dirname(file) for (let url of data.links) { + if (/\.(?!html|md)\w+($|\?)/i.test(url)) continue + if (url.replace(EXTERNAL_URL_RE, '').startsWith('//localhost:')) { recordDeadLink(url) continue