diff options
author | Harrison Healey <harrisonmhealey@gmail.com> | 2016-05-31 10:37:59 -0400 |
---|---|---|
committer | Harrison Healey <harrisonmhealey@gmail.com> | 2016-05-31 10:37:59 -0400 |
commit | 4a326dd6ce29c7ff62e0f620e8cdca920e1f3016 (patch) | |
tree | 9a1af026012651f9a5e55c79c426115003843ede /webapp/utils/syntax_hightlighting.jsx | |
parent | 397e0a3f683e324ce2d4d16c8a7f3f9346c8566b (diff) | |
download | chat-4a326dd6ce29c7ff62e0f620e8cdca920e1f3016.tar.gz chat-4a326dd6ce29c7ff62e0f620e8cdca920e1f3016.tar.bz2 chat-4a326dd6ce29c7ff62e0f620e8cdca920e1f3016.zip |
PLT-1626/PLT-1424/PLT-1473/PLT-1483 Improved search highlighting (#3171)
* PLT-1626 Stopped breaking up hyphenated hashtags when highlighting search terms
* Made hashtag search highlighting case independent
* PLT-1424 Improved search highlighting when searching for CJK characters
* PLT-1473 Added search term highlighting to single-line code blocks
* PLT-1473 Added search term highlighting to code blocks that don't use syntax highlighting
* PLT-1483 Added proper highlighting of at mentions
* Fixing formatting
Diffstat (limited to 'webapp/utils/syntax_hightlighting.jsx')
-rw-r--r-- | webapp/utils/syntax_hightlighting.jsx | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/webapp/utils/syntax_hightlighting.jsx b/webapp/utils/syntax_hightlighting.jsx index 882afe67f..33b3e2d3d 100644 --- a/webapp/utils/syntax_hightlighting.jsx +++ b/webapp/utils/syntax_hightlighting.jsx @@ -123,10 +123,12 @@ hlJS.registerLanguage('yaml', hljsYaml); const HighlightedLanguages = Constants.HighlightedLanguages; -export function formatCode(lang, data, filename) { +export function formatCode(lang, data, filename, searchTerm) { const language = lang.toLowerCase() || ''; + let contents; let header = ''; + let className = 'post-code'; if (HighlightedLanguages[language]) { let name = HighlightedLanguages[language].name; @@ -147,10 +149,13 @@ export function formatCode(lang, data, filename) { contents = TextFormatting.sanitizeHtml(data); } - let className = 'post-code'; if (!language) { // wrap when no language is specified className += ' post-code--wrap'; + + const tokens = new Map(); + contents = TextFormatting.highlightSearchTerms(contents, tokens, searchTerm); + contents = TextFormatting.replaceTokens(contents, tokens); } if (filename) { |