2
0
mirror of https://github.com/Ionaru/easy-markdown-editor synced 2025-07-30 05:14:28 -06:00

URL encoding and escaping for JS prompt URLs

- URL encoding and escaping added for JS prompt entered URLs
- added option escapeURLs (boolean)
This commit is contained in:
Zignature 2022-01-15 23:26:10 +01:00
parent 5d0294f5f5
commit 33489ab616
2 changed files with 11 additions and 8 deletions

View File

@ -849,7 +849,10 @@ function drawLink(editor) {
return false;
}
if (/[()<>]/.test(url)) url = escapeUrl(url);
if (options.escapeURLs) {
url = encodeURI(url);
if (/[()]/.test(url)) url = escapeURI(url);
}
}
_replaceSelection(cm, stat.link, options.insertTexts.link, url);
}
@ -868,7 +871,10 @@ function drawImage(editor) {
return false;
}
if (/[()<>]/.test(url)) url = escapeUrl(url);
if (options.escapeURLs) {
url = encodeURI(url);
if (/[()]/.test(url)) url = escapeURI(url);
}
}
_replaceSelection(cm, stat.image, options.insertTexts.image, url);
}
@ -877,12 +883,8 @@ function drawImage(editor) {
* Escape URLs to prevent breaking up rendered Markdown links
* @param url {string} The url of the link or image
*/
function escapeUrl(url) {
url = url.replace(/\(/g,'\\(')
.replace(/\)/g,'\\)')
.replace(/</g,'\\<')
.replace(/>/g,'\\>');
function escapeURI(url) {
url = url.replace(/\(/g,'\\(').replace(/\)/g,'\\)');
return url;
}

1
types/easymde.d.ts vendored
View File

@ -197,6 +197,7 @@ declare namespace EasyMDE {
previewImagesInEditor?: boolean;
previewRender?: (markdownPlaintext: string, previewElement: HTMLElement) => string;
promptURLs?: boolean;
escapeURLs?: boolean;
renderingConfig?: RenderingOptions;
shortcuts?: Shortcuts;
showIcons?: ReadonlyArray<ToolbarButton>;