create_html_ranges

in website/_plugins/highlighter.rb [162:194]


      def create_html_ranges(tokens, errors)
        before = {}
        after = {}

        tokens.each do |token|
          start_pos = token['start']
          end_pos   = token['end']

          open  = "<span class=\"#{token['context']} #{token['type']}\">"
          close = '</span>'

          before[start_pos] = (before[start_pos] || '') + open
          after[end_pos]    = close + (after[end_pos] || '')
        end

        errors.each do |error|
          error['messages'].each do |message|
            next if message['start'] == nil || message['end'] == nil

            start_pos = message['start']['offset']
            end_pos = message['end']['offset']

            open  = '<span class="flow-error-target" data-error-id="' + error['id'] + '" data-message-id="' + message['id'] + '">'
            close = '</span>'

            before[start_pos] = (before[start_pos] || '') + open
            after[end_pos]    = close + (after[end_pos] || '')
          end
        end

        { 'before' => before, 'after' => after }
      end