Module: Amber::Render::Bracketlink
- Defined in:
- lib/amber/render/bracketlink.rb
Overview
bracket links are links in the form [[label => target]] or [[page-name]]
Constant Summary collapse
- BRACKET_LINK_RE =
linking using double square brackets
/ \[\[ # start [[ ([^\[\]]+) # $text : one or more characters that are not [ or ] ($1) \]\] # end ]] /x
Class Method Summary collapse
Class Method Details
.bracket_link(text, &block) ⇒ Object
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
# File 'lib/amber/render/bracketlink.rb', line 16 def self.bracket_link(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 |