From: Alexandre Terrasa Date: Wed, 25 Oct 2017 01:53:24 +0000 (-0400) Subject: doc/docdown: render mdoc as markdown X-Git-Url: http://nitlanguage.org doc/docdown: render mdoc as markdown Signed-off-by: Alexandre Terrasa --- diff --git a/src/doc/doc_down.nit b/src/doc/doc_down.nit index 7873b64..5951f8e 100644 --- a/src/doc/doc_down.nit +++ b/src/doc/doc_down.nit @@ -48,7 +48,12 @@ redef class MDoc var syn = inline_proc.process(content.first) res.add "{syn}" return res + end + # Renders the synopsis as a HTML comment block. + var md_synopsis: Writable is lazy do + if content.is_empty then return "" + return content.first end # Renders the comment without the synopsis as a HTML comment block. @@ -58,9 +63,20 @@ redef class MDoc return lines_to_html(lines) end + # + var md_comment: Writable is lazy do + if content.is_empty then return "" + var lines = content.to_a + lines.shift + return lines.join("\n") + end + # Renders the synopsis and the comment as a HTML comment block. var html_documentation: Writable is lazy do return lines_to_html(content.to_a) + # Renders the synopsis and the comment as a HTML comment block. + var md_documentation: Writable is lazy do return lines_to_md(content.to_a) + # Renders markdown line as a HTML comment block. private fun lines_to_html(lines: Array[String]): Writable do var res = new Template @@ -92,7 +108,20 @@ redef class MDoc res.add "" decorator.current_mdoc = null return res + end + private fun lines_to_md(lines: Array[String]): Writable do + var res = new Template + if not lines.is_empty then + var syn = lines.first + if not syn.has_prefix(" ") and not syn.has_prefix("\t") and + not syn.trim.has_prefix("#") then + lines.shift + res.add "# {syn}\n" + end + end + res.add lines.join("\n") + return res end end