@@ -9,24 +9,26 @@ function term(io::IO, content::Vector, cols)
99    isempty (content) &&  return 
1010    for  md in  content[1 : end - 1 ]
1111        term (io, md, cols)
12-         println (io)
12+         print (io,  ' \n ' ,  ' \n '  )
1313    end 
1414    term (io, content[end ], cols)
1515end 
1616
1717term (io:: IO , md:: MD , columns =  cols (io)) =  term (io, md. content, columns)
1818
1919function  term (io:: IO , md:: Paragraph , columns)
20-     print (io, "   " ^ margin)
21-     print_wrapped (io, width =  columns- 2 margin, pre =  "   " ^ margin) do  io
20+     print (io, '   ' ^ margin)
21+     print_wrapped (io, width =  columns- 2 margin, pre =  '   ' ^ margin) do  io
2222        terminline (io, md. content)
2323    end 
2424end 
2525
2626function  term (io:: IO , md:: BlockQuote , columns)
2727    s =  sprint (term, md. content, columns -  10 ; context= io)
28-     for  line in  split (rstrip (s), " \n "  )
29-         println (io, "  " ^ margin, " │"  , line)
28+     lines =  split (rstrip (s), ' \n '  )
29+     print (io, '  ' ^ margin, ' │'  , lines[1 ])
30+     for  i =  2 : length (lines)
31+         print (io, ' \n '  , '  ' ^ margin, ' │'  , lines[i])
3032    end 
3133end 
3234
@@ -42,47 +44,52 @@ function term(io::IO, md::Admonition, columns)
4244    elseif  lowercase (md. title) ==  " tip" 
4345        col =  :green 
4446    end 
45-     printstyled (io, "   " ^ margin, " │ "  ; color= col, bold= true )
47+     printstyled (io, '   ' ^ margin, " │ "  ; color= col, bold= true )
4648    printstyled (io, isempty (md. title) ?  md. category :  md. title; color= col, bold= true )
47-     printstyled (io, " \n " ,  "   " ^ margin, " │ " ,  " \n "  ; color= col, bold= true )
49+     printstyled (io, ' \n ' ,  '   ' ^ margin, ' │ ' ,  ' \n '  ; color= col, bold= true )
4850    s =  sprint (term, md. content, columns -  10 ; context= io)
49-     for  line in  split (rstrip (s), " \n "  )
50-         printstyled (io, "  " ^ margin, " │"  ; color= col, bold= true )
51-         println (io, line)
51+     lines =  split (rstrip (s), ' \n '  )
52+     for  i in  eachindex (lines)
53+         printstyled (io, '  ' ^ margin, ' │'  ; color= col, bold= true )
54+         print (io, lines[i])
55+         i <  lastindex (lines) &&  println (io)
5256    end 
5357end 
5458
5559function  term (io:: IO , f:: Footnote , columns)
56-     print (io, "   " ^ margin, " │ "  )
60+     print (io, '   ' ^ margin, " │ "  )
5761    printstyled (io, " [^$(f. id) ]"  , bold= true )
58-     println (io, " \n " ,  "   " ^ margin, " │ "  )
62+     println (io, ' \n ' ,  '   ' ^ margin, ' │ '  )
5963    s =  sprint (term, f. text, columns -  10 ; context= io)
60-     for  line in  split (rstrip (s), " \n "  )
61-         println (io, "  " ^ margin, " │"  , line)
64+     lines =  split (rstrip (s), ' \n '  )
65+     for  i in  eachindex (lines)
66+         print (io, '  ' ^ margin, ' │'  , lines[i])
67+         i <  lastindex (lines) &&  println (io)
6268    end 
6369end 
6470
6571function  term (io:: IO , md:: List , columns)
6672    for  (i, point) in  enumerate (md. items)
67-         print (io, "   " ^ 2 margin, isordered (md) ?  " $(i +  md. ordered -  1 ) . "   :  " •  "  )
68-         print_wrapped (io, width =  columns- (4 margin+ 2 ), pre =  "   " ^ (2 margin+ 2 ),
73+         print (io, '   ' ^ 2 margin, isordered (md) ?  " $(i +  md. ordered -  1 ) . "   :  " •  "  )
74+         print_wrapped (io, width =  columns- (4 margin+ 2 ), pre =  '   ' ^ (2 margin+ 2 ),
6975                          i =  2 margin+ 2 ) do  io
7076            term (io, point, columns -  10 )
7177        end 
78+         i <  lastindex (md. items) &&  print (io, ' \n '  , ' \n '  )
7279    end 
7380end 
7481
7582function  _term_header (io:: IO , md, char, columns)
7683    text =  terminline_string (io, md. text)
7784    with_output_color (:bold , io) do  io
78-         print (io, "   " ^ ( margin) )
85+         print (io, '   ' ^ margin)
7986        line_no, lastline_width =  print_wrapped (io, text,
8087                                                width= columns -  4 margin; pre= "  "  )
8188        line_width =  min (1  +  lastline_width, columns)
8289        if  line_no >  1 
8390            line_width =  max (line_width, div (columns, 3 ))
8491        end 
85-         char !=  '  '   &&  println (io, "   " ^ (margin), string ( char)  ^   line_width)
92+         char !=  '  '   &&  print (io, ' \n ' ,  '   ' ^ (margin), char^ line_width)
8693    end 
8794end 
8895
96103
97104function  term (io:: IO , md:: Code , columns)
98105    with_output_color (:cyan , io) do  io
99-         for  line in  lines (md. code)
100-             print (io, "  " ^ margin)
101-             println (io, line)
106+         L =  lines (md. code)
107+         for  i in  eachindex (L)
108+             print (io, '  ' ^ margin, L[i])
109+             i <  lastindex (L) &&  println (io)
102110        end 
103111    end 
104112end 
105113
106- function  term (io:: IO , br:: LineBreak , columns)
107-    println (io)
108- end 
114+ term (io:: IO , br:: LineBreak , columns) =  nothing  #  line breaks already printed between subsequent elements
109115
110116function  term (io:: IO , br:: HorizontalRule , columns)
111-    println (io, "   "   ^   margin, " ─ "   ^   (columns -  2 margin))
117+    print (io, '   ' ^ margin, ' ─ ' ^ (columns -  2 margin))
112118end 
113119
114120term (io:: IO , x, _) =  show (io, MIME " text/plain"  (), x)
@@ -126,7 +132,7 @@ function terminline(io::IO, content::Vector)
126132end 
127133
128134function  terminline (io:: IO , md:: AbstractString )
129-     print (io, replace (md, r" [\s\t\n ]+"   =>  "   "  ))
135+     print (io, replace (md, r" [\s\t\n ]+"   =>  '   '  ))
130136end 
131137
132138function  terminline (io:: IO , md:: Bold )
0 commit comments