@@ -77,7 +77,7 @@ func (r *MarkdownRenderer) IsRendered() bool {
7777
7878// renderMarkdownHeader renders the header row in Markdown format.
7979func (r * MarkdownRenderer ) renderMarkdownHeader (table * Table ) error {
80- var line string
80+ var line strings. Builder
8181 var stylePrefix , styleSuffix string
8282
8383 // Apply header style to the entire line if configured
@@ -87,44 +87,50 @@ func (r *MarkdownRenderer) renderMarkdownHeader(table *Table) error {
8787 }
8888
8989 // Start the line with style prefix
90- line = stylePrefix + "|"
90+ line .WriteString (stylePrefix )
91+ line .WriteString ("|" )
9192
9293 for _ , col := range table .columns {
9394 // Apply alignment to header content (headers are typically centered)
9495 content := col .Title
9596 if table .autoAlign {
9697 content = table .formatCell (col .Title , col .Width , Center )
9798 }
98- line += content + "|"
99+ line .WriteString (content )
100+ line .WriteString ("|" )
99101 }
100102
101103 // End the line with style suffix
102- line += styleSuffix + "\n "
103- _ , err := table .writer .Write ([]byte (line ))
104+ line .WriteString (styleSuffix )
105+ line .WriteString ("\n " )
106+ _ , err := table .writer .Write ([]byte (line .String ()))
104107 return err
105108}
106109
107110// renderMarkdownSeparator renders the separator row with alignment indicators.
108111func (r * MarkdownRenderer ) renderMarkdownSeparator (table * Table ) error {
109- line := "|"
112+ var line strings.Builder
113+ line .WriteString ("|" )
110114
111115 for _ , col := range table .columns {
112116 separatorWidth := max (col .Width , 1 )
113117 if table .borderConfig .Padding {
114118 separatorWidth += (table .padding * 2 )
115119 }
116120 separator := r .getAlignmentSeparator (col .Align , separatorWidth )
117- line += separator + "|"
121+ line .WriteString (separator )
122+ line .WriteString ("|" )
118123 }
119124
120- line += "\n "
121- _ , err := table .writer .Write ([]byte (line ))
125+ line . WriteString ( "\n " )
126+ _ , err := table .writer .Write ([]byte (line . String () ))
122127 return err
123128}
124129
125130// renderMarkdownRow renders a data row in Markdown format.
126131func (r * MarkdownRenderer ) renderMarkdownRow (table * Table , row Row ) error {
127- line := "|"
132+ var line strings.Builder
133+ line .WriteString ("|" )
128134
129135 // Ensure row.Cells has at least as many elements as table.columns
130136 cells := row .Cells
@@ -137,7 +143,8 @@ func (r *MarkdownRenderer) renderMarkdownRow(table *Table, row Row) error {
137143
138144 for i , col := range table .columns {
139145 if ! table .autoAlign {
140- line += cells [i ].Content + "|"
146+ line .WriteString (cells [i ].Content )
147+ line .WriteString ("|" )
141148 continue // Skip alignment if noAlign is set
142149 }
143150
@@ -149,11 +156,12 @@ func (r *MarkdownRenderer) renderMarkdownRow(table *Table, row Row) error {
149156 }
150157 // Format cell content with alignment
151158 content = table .formatCell (cells [i ].Content , col .Width , cellAlign )
152- line += content + "|"
159+ line .WriteString (content )
160+ line .WriteString ("|" )
153161 }
154162
155- line += "\n "
156- _ , err := table .writer .Write ([]byte (line ))
163+ line . WriteString ( "\n " )
164+ _ , err := table .writer .Write ([]byte (line . String () ))
157165 return err
158166}
159167
0 commit comments