Class: WikiCloth::WikiBuffer::Link
Instance Method Summary
collapse
#add_char, #add_word, #buffer_type, #buffers, #check_globals, #data, #debug, #get_param, #in_template?, #params, #run_globals?, #skip_html?, #skip_links?
Constructor Details
#initialize(data = "", options = {}) ⇒ Link
Returns a new instance of Link.
5
6
7
8
9
|
# File 'lib/wikicloth/wiki_buffer/link.rb', line 5
def initialize(data="",options={})
super(data,options)
@in_quotes = false
@checktrailing = false
end
|
Instance Method Details
#eof ⇒ Object
40
41
42
|
# File 'lib/wikicloth/wiki_buffer/link.rb', line 40
def eof()
self.current_param = self.data
end
|
#internal_link ⇒ Object
11
12
13
|
# File 'lib/wikicloth/wiki_buffer/link.rb', line 11
def internal_link
@internal_link ||= false
end
|
#to_html ⇒ Object
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
|
# File 'lib/wikicloth/wiki_buffer/link.rb', line 15
def to_html
link_handler = @options[:link_handler]
unless self.internal_link || params[0].strip !~ /^\s*((([a-z]+):\/\/|mailto:)|[\?\/])(.*)/
if $1.downcase == "mailto:"
return link_handler.external_link("#{params[0]}".strip, $4)
elsif params.length > 1
return link_handler.external_link("#{params[0]}".strip, params.last.strip)
else
return link_handler.external_link("#{params[0]}".strip)
end
else
case
when !self.internal_link
return "[#{params[0]}]"
when params[0] =~ /^:(.*)/
return link_handler.link_for(params[0],params[1])
when params[0] =~ /^\s*([^\]\s:]+)\s*:(.*)$/
return link_handler.link_for_resource($1,$2,params[1..-1])
else
return "" if params[0].blank? && params[1].blank?
return link_handler.link_for(params[0],params[1])
end
end
end
|