ci: tests for macOS on Gitlab CI
[nit.git] / lib / markdown / decorators.nit
index 1a83394..cc22489 100644 (file)
@@ -1,4 +1,5 @@
 # This file is part of NIT ( http://www.nitlanguage.org ).
+#
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
 # You may obtain a copy of the License at
@@ -26,7 +27,7 @@ class MdDecorator
 
        redef fun add_headline(v, block) do
                # save headline
-               var txt = block.block.first_line.value
+               var txt = block.block.first_line.as(not null).value
                var id = strip_id(txt)
                var lvl = block.depth
                headlines[id] = new HeadLine(id, txt, lvl)
@@ -42,7 +43,7 @@ class MdDecorator
 
        redef fun add_code(v, block) do
                if block isa BlockFence and block.meta != null then
-                       v.add "~~~{block.meta.to_s}"
+                       v.add "~~~{block.meta.as(not null).to_s}"
                else
                        v.add "~~~"
                end
@@ -69,7 +70,7 @@ class MdDecorator
                in_orderedlist = true
                current_li = 0
                v.emit_in block
-               in_unorderedlist = false
+               in_orderedlist = false
        end
        private var in_orderedlist = false
        private var current_li = 0
@@ -184,3 +185,19 @@ class MdDecorator
 
        private var allowed_id_chars: Array[Char] = ['-', '_', ':', '.']
 end
+
+# Decorator for span elements.
+#
+# InlineDecorator does not decorate things like paragraphs or headers.
+class InlineDecorator
+       super HTMLDecorator
+
+       redef fun add_paragraph(v, block) do v.emit_in block
+       redef fun add_headline(v, block) do v.emit_in block
+
+       redef fun add_code(v, block) do
+               v.add "<code>"
+               v.emit_in block
+               v.add "</code>"
+       end
+end