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
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