summaryrefslogtreecommitdiff
path: root/app/assets/javascripts/syntax_highlight.js
blob: 474b5132bc61520342940660f5ebb3a93466eefd (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
/* eslint-disable consistent-return */

import $ from 'jquery';

// Syntax Highlighter
//
// Applies a syntax highlighting color scheme CSS class to any element with the
// `js-syntax-highlight` class
//
// ### Example Markup
//
//   <div class="js-syntax-highlight"></div>
//

export default function syntaxHighlight(el) {
  if ($(el).hasClass('js-syntax-highlight')) {
    // Given the element itself, apply highlighting
    return $(el).addClass(gon.user_color_scheme);
  }
  // Given a parent element, recurse to any of its applicable children
  const $children = $(el).find('.js-syntax-highlight');
  if ($children.length) {
    return syntaxHighlight($children);
  }
}