self
as Markdown
# Render `self` as Markdown
fun render_md(v: MarkdownRenderer) do visit_all(v)
lib/markdown2/markdown_md_rendering.nit:71,2--72,51
redef fun render_md(v) do
var title = self.title
v.add_raw "["
visit_all(v)
v.add_raw "]"
v.add_raw "("
if has_brackets then
v.add_raw "<"
end
v.add_raw destination
if has_brackets then
v.add_raw ">"
end
if title != null and not title.is_empty then
v.add_raw " \""
v.add_raw title.replace("\"", "\\\"")
v.add_raw "\""
end
v.add_raw ")"
end
lib/markdown2/markdown_md_rendering.nit:328,2--347,4
redef fun render_md(v) do
var node = first_child
while node != null do
v.enter_visit(node)
node = node.next
if node != null then
v.add_line
end
end
end
lib/markdown2/markdown_md_rendering.nit:78,2--87,4
redef fun render_md(v) do
if is_setext then
visit_all(v)
var length_visitor = new TextLengthVisitor
length_visitor.enter_visit(self)
v.add_line
if level == 1 then
v.add_raw "=" * length_visitor.length
else
v.add_raw "-" * length_visitor.length
end
else
v.add_raw "#" * level
v.add_raw " "
visit_all(v)
if has_atx_trailing then
v.add_raw " "
v.add_raw "#" * level
end
end
v.add_line
end
lib/markdown2/markdown_md_rendering.nit:151,2--172,4
redef fun render_md(v) do
var parent = self.parent
var is_tight = parent.as(MdListBlock).is_tight
v.add_indent
if parent isa MdUnorderedList then
v.add_raw parent.bullet_marker.to_s
v.indent += 2
else if parent isa MdOrderedList then
v.add_raw "{parent.md_numbering}{parent.delimiter.to_s}"
v.indent += 3
end
var node = first_child
if node != null then
v.add_raw " "
else
v.add_line
end
while node != null do
v.enter_visit(node)
node = node.next
if node != null and not is_tight then
v.add_line
end
end
if next != null and not is_tight then
v.add_line
end
if parent isa MdUnorderedList then
v.indent -= 2
else if parent isa MdOrderedList then
parent.md_numbering += 1
v.indent -= 3
end
end
lib/markdown2/markdown_md_rendering.nit:181,2--218,4
redef fun render_md(v) do
if not parent isa MdBlockQuote and not parent isa MdListItem or prev != null then
v.add_indent
end
# if parent isa MdBlockQuote then
# v.add_raw "> "
# var node = first_child
# while node != null do
# v.enter_visit(node)
# if node isa MdSoftLineBreak or node isa MdHardLineBreak then
# v.add_raw "> "
# end
# node = node.next
# end
# v.add_line
# return
# end
visit_all(v)
v.add_line
end
lib/markdown2/markdown_md_rendering.nit:222,2--241,4
redef fun render_md(v) do
var literal = self.literal
if literal == null then return
var lines = literal.split("\n")
for i in [0..lines.length[ do
if i == lines.length - 1 then continue
var line = lines[i]
if line.is_empty then
v.add_raw "\n"
else
v.add_indent
if use_tabs then
v.add_raw "\t"
else
v.add_raw " " * 4
end
v.add_raw line
v.add_line
end
end
end
lib/markdown2/markdown_md_rendering.nit:107,2--128,4
redef fun render_md(v) do
var info = self.info
v.add_indent
v.add_raw fence_char.to_s * fence_length
v.add_raw info or else ""
for line in (literal or else "").split("\n") do
v.add_line
if not line.is_empty then
v.add_indent
end
v.add_raw line
end
v.add_indent
v.add_raw fence_char.to_s * fence_length
v.add_line
end
lib/markdown2/markdown_md_rendering.nit:132,2--147,4