src/doc/commands: move `render_code` to clients modules
[nit.git] / src / doc / doc_down.nit
index 5951f8e..7d5c24d 100644 (file)
 module doc_down
 
 import markdown
-import highlight
+import htmlight
 private import parser_util
 
 redef class MDoc
 
-       # Synopsis HTML escaped.
-       var synopsis: String is lazy do return content.first.html_escape
-
-       # Comment without synopsis HTML escaped
-       var comment: String is lazy do
-               var lines = content.to_a
-               if not lines.is_empty then lines.shift
-               return lines.join("\n")
-       end
-
-       # Full comment HTML escaped.
-       var documentation: String is lazy do return content.join("\n")
-
        private var markdown_proc: MarkdownProcessor is lazy, writable do
                return original_mentity.as(not null).model.nitdoc_md_processor
        end
@@ -160,9 +147,9 @@ class NitdocDecorator
                        return
                end
                v.add "<pre class=\"nitcode\"><code>"
-               var hl = new HighlightVisitor
+               var hl = new HtmlightVisitor
                hl.line_id_prefix = ""
-               hl.enter_visit(ast)
+               hl.highlight_node(ast)
                v.add(hl.html)
                v.add "</code></pre>\n"
        end
@@ -177,9 +164,9 @@ class NitdocDecorator
                        append_code(v, text, from, to)
                else
                        v.add "<code class=\"nitcode\">"
-                       var hl = new HighlightVisitor
+                       var hl = new HtmlightVisitor
                        hl.line_id_prefix = ""
-                       hl.enter_visit(ast)
+                       hl.highlight_node(ast)
                        v.add(hl.html)
                end
                v.add "</code>"
@@ -204,6 +191,14 @@ private class InlineDecorator
        end
 
        redef fun add_headline(v, block) do
+               # save headline
+               var line = block.block.first_line
+               if line == null then return
+               var txt = line.value
+               var id = strip_id(txt)
+               var lvl = block.depth
+               headlines[id] = new HeadLine(id, txt, lvl)
+
                v.emit_in block
        end
 
@@ -217,8 +212,8 @@ private class InlineDecorator
                        return
                end
                v.add "<code class=\"nitcode\">"
-               var hl = new HighlightVisitor
-               hl.enter_visit(ast)
+               var hl = new HtmlightVisitor
+               hl.highlight_node(ast)
                v.add(hl.html)
                v.add "</code>"
        end