summaryrefslogtreecommitdiff
path: root/app/assets
diff options
context:
space:
mode:
authorJohann Hubert Sonntagbauer <johann.sonntagbauer@gmail.com>2018-10-24 19:24:54 +0200
committerJohann Hubert Sonntagbauer <johann.sonntagbauer@gmail.com>2018-10-24 19:25:52 +0200
commit861772846bd7725eb630a0bda40a3be1ec112af4 (patch)
tree990dd0ee1b08bd8dbf13bfd378c8f50b412be3e2 /app/assets
parent3e18ac0e9ac04b4efce4c55748b8db12c5e42c3e (diff)
downloadgitlab-ce-861772846bd7725eb630a0bda40a3be1ec112af4.tar.gz
Link button in markdown editor recognize URLs
Diffstat (limited to 'app/assets')
-rw-r--r--app/assets/javascripts/lib/utils/text_markdown.js17
1 files changed, 17 insertions, 0 deletions
diff --git a/app/assets/javascripts/lib/utils/text_markdown.js b/app/assets/javascripts/lib/utils/text_markdown.js
index e26a6b986be..c52cfb806a2 100644
--- a/app/assets/javascripts/lib/utils/text_markdown.js
+++ b/app/assets/javascripts/lib/utils/text_markdown.js
@@ -2,6 +2,8 @@
import $ from 'jquery';
import { insertText } from '~/lib/utils/common_utils';
+const LINK_TAG_PATTERN = '[{text}](url)';
+
function selectedText(text, textarea) {
return text.substring(textarea.selectionStart, textarea.selectionEnd);
}
@@ -76,6 +78,21 @@ export function insertMarkdownText({ textArea, text, tag, blockTag, selected, wr
removedFirstNewLine = false;
currentLineEmpty = false;
+ // check for link pattern and selected text is an URL
+ // if so fill in the url part instead of the text part of the pattern.
+ if (tag === LINK_TAG_PATTERN) {
+ if (URL) {
+ try {
+ const ignoredUrl = new URL(selected);
+ // valid url
+ tag = '[text]({text})';
+ select = 'text';
+ } catch (e) {
+ // ignore - no valid url
+ }
+ }
+ }
+
// Remove the first newline
if (selected.indexOf('\n') === 0) {
removedFirstNewLine = true;