def flush!
return false if @buffer.empty? and @output_type != :blank
@logger.debug "FLUSH ==========> #{@output_type}"
@buffer.gsub!(/\A\n*/, "")
case
when preserve_whitespace?
@output << @buffer << "\n"
when @output_type == :blank
@output << "\n"
else
case current_mode
when :paragraph
@output << "p. " if @add_paragraph
@output << "p=. " if @mode_stack[0] == :center
@output << "bq. " if @mode_stack[0] == :quote
when :list_item
if @mode_stack[-2] == :ordered_list
@output << "#" * @mode_stack.count(:list_item) << " "
else
@output << "*" * @mode_stack.count(:list_item) << " "
end
when :definition_term
if @support_definition_list
@output << "-" * @mode_stack.count(:definition_term) << " "
@buffer.sub!("::", ":=")
end
end
@output << inline_formatting(@buffer) << "\n"
end
@buffer = ""
end