diff options
author | Johann Hubert Sonntagbauer <johann.sonntagbauer@gmail.com> | 2018-10-24 19:24:54 +0200 |
---|---|---|
committer | Johann Hubert Sonntagbauer <johann.sonntagbauer@gmail.com> | 2018-10-24 19:25:52 +0200 |
commit | 861772846bd7725eb630a0bda40a3be1ec112af4 (patch) | |
tree | 990dd0ee1b08bd8dbf13bfd378c8f50b412be3e2 /app/assets | |
parent | 3e18ac0e9ac04b4efce4c55748b8db12c5e42c3e (diff) | |
download | gitlab-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.js | 17 |
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; |