Module: Amber::Render::Filter::Bracketlink

Defined in:
lib/amber/render/filter/bracketlink.rb

Constant Summary collapse

/
  \[\[          # start [[
  ([^\[\]]+)    # $text : one or more characters that are not [ or ] ($1)
  \]\]          # end ]]
/x

Class Method Summary collapse

Class Method Details

.run(text, &block) ⇒ Object



19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# File 'lib/amber/render/filter/bracketlink.rb', line 19

def self.run(text, &block)
  text.gsub(BRACKET_LINK_RE) do |m|
    link_text = $~[1].strip
    if link_text =~ /^.+\s*[-=]>\s*.+$/
      # link_text == "from -> to"
      from, to = link_text.split(/\s*[-=]>\s*/)[0..1]
      from = "" unless from.instance_of? String # \ sanity check for
      to   = "" unless from.instance_of? String # / badly formed links
    else
      # link_text == "to" (ie, no link label)
      from = nil
      to = link_text
    end
    yield(from, to)
  end
end