markdown: add another indirection to render a single character
authorJean Privat <jean@pryen.org>
Mon, 17 Aug 2015 18:45:35 +0000 (14:45 -0400)
committerJean Privat <jean@pryen.org>
Mon, 17 Aug 2015 18:45:35 +0000 (14:45 -0400)
Signed-off-by: Jean Privat <jean@pryen.org>

lib/markdown/markdown.nit

index 3dbf248..1bb8815 100644 (file)
@@ -646,6 +646,11 @@ interface Decorator
        # Kind of emitter used for decoration.
        type EMITTER: MarkdownEmitter
 
+       # Render a single plain char.
+       #
+       # Redefine this method to add special escaping for plain text.
+       fun add_char(v: EMITTER, c: Char) do v.addc c
+
        # Render a ruler block.
        fun add_ruler(v: EMITTER, block: BlockRuler) is abstract
 
@@ -1918,7 +1923,7 @@ abstract class Token
        var char: Char
 
        # Output that token using `MarkdownEmitter::decorator`.
-       fun emit(v: MarkdownEmitter) do v.addc char
+       fun emit(v: MarkdownEmitter) do v.decorator.add_char(v, char)
 end
 
 # A token without a specific meaning.