From 5b7440441bbd2548a862f7321cafdfa1597132e5 Mon Sep 17 00:00:00 2001 From: Meghan Kulkarni Date: Fri, 30 Jun 2023 13:34:14 -0700 Subject: [PATCH] external urls are not automatically encoded (#186786) --- .../src/languageFeatures/copyFiles/shared.ts | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/extensions/markdown-language-features/src/languageFeatures/copyFiles/shared.ts b/extensions/markdown-language-features/src/languageFeatures/copyFiles/shared.ts index c9d2aabf56889..28a86a22d7051 100644 --- a/extensions/markdown-language-features/src/languageFeatures/copyFiles/shared.ts +++ b/extensions/markdown-language-features/src/languageFeatures/copyFiles/shared.ts @@ -17,6 +17,11 @@ enum MediaKind { Audio, } +const externalUriSchemes = [ + 'http', + 'https', +]; + export const mediaFileExtensions = new Map([ // Images ['bmp', MediaKind.Image], @@ -161,7 +166,12 @@ export function createUriListSnippet( insertedLinkCount++; snippet.appendText('['); snippet.appendPlaceholder(escapeBrackets(title) || 'Title', placeholderValue); - snippet.appendText(`](${escapeMarkdownLinkPath(mdPath)})`); + if (externalUriSchemes.includes(uri.scheme)) { + const uriString = uri.toString(true); + snippet.appendText(`](${uriString})`); + } else { + snippet.appendText(`](${escapeMarkdownLinkPath(mdPath)})`); + } } } @@ -292,7 +302,6 @@ function escapeMarkdownLinkPath(mdPath: string): string { function escapeBrackets(value: string): string { value = value.replace(/[\[\]]/g, '\\$&'); - // value = value.replace(/\r\n\r\n/g, '\n\n'); return value; }