# File lib/maruku/output/to_markdown.rb, line 132
  def wrap(array, line_length, context)
    out = ""
    line = ""
    array.each do |c|
      if c.kind_of?(MaRuKu::MDElement) &&  c.node_type == :linebreak
        out << line.strip << "  \n"; line="";
        next
      end

      pieces =
        if c.kind_of? String
          mysplit(c)
        elsif c.kind_of?(MaRuKu::MDElement)
          method = "to_md_#{c.node_type}"
          method = "to_md" unless c.respond_to?(method)
          [c.send(method, context)].flatten
        else
          [c.to_md(context)].flatten
        end

      #     puts "Pieces: #{pieces.inspect}"
      pieces.each do |p|
        if p.size + line.size > line_length
          out << line.strip << "\n";
          line = ""
        end
        line << p
      end
    end
    out << line.strip << "\n" if line.size > 0
    out << ?\n if not out[-1] == ?\n
    out
  end