diff options
author | Jan Beckmann <king-jan1999@hotmail.de> | 2019-04-25 08:11:20 +0000 |
---|---|---|
committer | Phil Hughes <me@iamphill.com> | 2019-04-25 08:11:20 +0000 |
commit | 5848f2833ae40b73003be1e37dd379dd69c20fcc (patch) | |
tree | 95e971be8e45ca3d25f0a319919d789f1872e9a4 /app/assets | |
parent | 3fe07ce7d1db0a2015eda25f6be1446a17462cb1 (diff) | |
download | gitlab-ce-5848f2833ae40b73003be1e37dd379dd69c20fcc.tar.gz |
Escape special characters in GFM auto complete highlighting
Fixes #60552
Diffstat (limited to 'app/assets')
-rw-r--r-- | app/assets/javascripts/gfm_auto_complete.js | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/app/assets/javascripts/gfm_auto_complete.js b/app/assets/javascripts/gfm_auto_complete.js index f1e26cdfa21..f437954881c 100644 --- a/app/assets/javascripts/gfm_auto_complete.js +++ b/app/assets/javascripts/gfm_auto_complete.js @@ -477,6 +477,16 @@ class GfmAutoComplete { } return null; }, + highlighter(li, query) { + // override default behaviour to escape dot character + // see https://github.com/ichord/At.js/pull/576 + if (!query) { + return li; + } + const escapedQuery = query.replace(/[.+]/, '\\$&'); + const regexp = new RegExp(`>\\s*([^<]*?)(${escapedQuery})([^<]*)\\s*<`, 'ig'); + return li.replace(regexp, (str, $1, $2, $3) => `> ${$1}<strong>${$2}</strong>${$3} <`); + }, }; } |