diff --git a/src/formatters/html.cr b/src/formatters/html.cr index ac9aa25..ec39e46 100644 --- a/src/formatters/html.cr +++ b/src/formatters/html.cr @@ -34,11 +34,13 @@ module Tartrazine @weight_of_bold : Int32 = 600) end - def format(text : String, lexer : Lexer, dst : IO) : Nil + def format(text : String, lexer : Lexer, io : IO) : Nil + outp = io.nil? ? String::Builder.new("") : io pre, post = wrap_standalone - dst << pre if standalone? - format_text(text, lexer, dst) - dst << post if standalone? + outp << pre if standalone? + format_text(text, lexer, outp) + outp << post if standalone? + return outp.to_s if io.nil? end # Wrap text into a full HTML document, including the CSS for the theme @@ -58,8 +60,7 @@ module Tartrazine "#{line_label} " end - def format_text(text : String, lexer : Lexer, io : IO?) : String? - outp = io.nil? ? String::Builder.new("") : io + def format_text(text : String, lexer : Lexer, outp : IO) tokenizer = Tokenizer.new(lexer, text) i = 0 if surrounding_pre? @@ -76,7 +77,6 @@ module Tartrazine end end outp << "" - return outp.to_s if io.nil? end # ameba:disable Metrics/CyclomaticComplexity