Method: Helper::Linker#replace_links

Defined in:
lib/helper/linker.rb


103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
# File 'lib/helper/linker.rb', line 103

def replace_links(text)
  code_tags = 0
  text.gsub(/<(\/)?(pre|code|tt)|(\\)?\{(?!\})(\S+?)(?:\s([^\}]*?\S))?\}(?=[\W<]|.+<\/|$)/m) do |str|
    closed, tag, escape, name, title, match = $1, $2, $3, $4, $5, $&
    if tag
      code_tags += (closed ? -1 : 1)
      next str
    end
    next str unless code_tags == 0

    next(match[1..-1]) if escape

    next(match) if name[0,1] == '|'
    
    link_to(name, title)
  end
end