class MarkdownIt::RulesInline::TextCollapse
Public Class Methods
text_collapse(state)
click to toggle source
# File lib/motion-markdown-it/rules_inline/text_collapse.rb, line 8 def self.text_collapse(state) level = 0 tokens = state.tokens max = state.tokens.length last = curr = 0 while curr < max # re-calculate levels level += tokens[curr].nesting tokens[curr].level = level if tokens[curr].type == 'text' && curr + 1 < max && tokens[curr + 1].type == 'text' # collapse two adjacent text nodes tokens[curr + 1].content = tokens[curr].content + tokens[curr + 1].content else tokens[last] = tokens[curr] if curr != last last += 1 end curr += 1 end if curr != last tokens.slice!(last..max) end end