# File lib/wikicloth/wiki_buffer.rb, line 363 def render_bold_italic() commands = [] self.data.scan(/([\']{2,5})/) do commands << { :len => $1.length, :type => [nil, nil, :italic, :bold, :four, :bold_italic][$1.length], :pos => $~.offset(0).first } end commands << {:type => :finish} state = 0 commands.each do |c| trans = BOLD_ITALIC_MAP[state][c[:type]] c[:output] = trans.last state = trans.first end index = 0 self.data.gsub!(/([\']{2,5})/) do output = commands[index][:output] index += 1 output end self.data << commands.last[:output] end