def new_char()
case
when current_char == "\n"
if @options[:extended_markup] == true
self.data.gsub!(/---([^-]+)---/,"<strike>\\1</strike>")
self.data.gsub!(/_([^_]+)_/,"<u>\\1</u>")
end
self.data.gsub!(/__([\w]+)__/) { |r|
case behavior_switch_key_name($1)
when "behavior_switches.toc"
@options[:link_handler].toc(@options[:sections], @options[:toc_numbered])
when "behavior_switches.noeditsection"
@options[:noedit] = true
when "behavior_switches.editsection"
@options[:noedit] = false
else
""
end
}
self.data.gsub!(/^([-]{4,})/) { |r| "<hr />" }
render_bold_italic()
tmp = ''
self.data.each_line do |line|
if line =~ /^([#\*:;]+)/
@list_data << line
else
tmp += render_list_data() unless @list_data.empty?
tmp += line
end
end
self.data = tmp
is_heading = false
self.data.gsub!(/^([=]{1,6})\s*(.*?)\s*(\1)/) { |r|
is_heading = true
(@paragraph_open ? "</p>" : "") + gen_heading($1.length,$2)
}
self.data = self.data.auto_link
if is_heading
@paragraph_open = false
else
if self.data =~ /^\s*$/ && @paragraph_open && @list_data.empty?
self.data = "</p>#{self.data}"
@paragraph_open = false
else
if self.data !~ /^\s*$/
self.data = "<p>#{self.data}" and @paragraph_open = true unless @paragraph_open
end
end
end
self.params << self.data
self.data = ""
else
self.data << current_char
end
return true
end