@@ -140,10 +140,10 @@ func (m *Markdown) resolveAlignment(ctx tw.Formatting) tw.Alignment {
140
140
141
141
// build default alignment
142
142
for i := 0 ; i < total ; i ++ {
143
- m .alignment = append (m .alignment , tw .AlignLeft )
143
+ m .alignment = append (m .alignment , tw .AlignNone ) // Default to AlignNone
144
144
}
145
145
146
- // add per colum alignment if it exits
146
+ // add per column alignment if it exists
147
147
for i := 0 ; i < total ; i ++ {
148
148
m .alignment [i ] = ctx .Row .Current [i ].Align
149
149
}
@@ -255,9 +255,10 @@ func (m *Markdown) formatSeparator(width int, align tw.Align) string {
255
255
sb .WriteRune (':' )
256
256
sb .WriteString (strings .Repeat ("-" , targetWidth - 2 ))
257
257
sb .WriteRune (':' )
258
+ case tw .AlignNone :
259
+ sb .WriteString (strings .Repeat ("-" , targetWidth ))
258
260
default :
259
- sb .WriteRune (':' )
260
- sb .WriteString (strings .Repeat ("-" , targetWidth - 1 ))
261
+ sb .WriteString (strings .Repeat ("-" , targetWidth )) // Fallback
261
262
}
262
263
263
264
result := sb .String ()
@@ -321,7 +322,6 @@ func (m *Markdown) renderMarkdownLine(line []string, ctx tw.Formatting, isHeader
321
322
322
323
defaultPadding := tw.Padding {Left : tw .Space , Right : tw .Space }
323
324
if ! ok {
324
-
325
325
cellCtx = tw.CellContext {
326
326
Data : tw .Empty , Align : align , Padding : defaultPadding ,
327
327
Width : ctx .Row .Widths .Get (colIndex ), Merge : tw.MergeState {},
@@ -339,18 +339,6 @@ func (m *Markdown) renderMarkdownLine(line []string, ctx tw.Formatting, isHeader
339
339
340
340
// Calculate width and span
341
341
span := 1
342
-
343
- if align == tw .AlignNone || align == tw .Empty {
344
- if ctx .Row .Position == tw .Header && ! isHeaderSep {
345
- align = tw .AlignCenter
346
- } else if ctx .Row .Position == tw .Footer {
347
- align = tw .AlignRight
348
- } else {
349
- align = tw .AlignLeft
350
- }
351
- m .logger .Debugf ("renderMarkdownLine: Col %d using default align '%s'" , colIndex , align )
352
- }
353
-
354
342
visualWidth := 0
355
343
isHMergeStart := ok && cellCtx .Merge .Horizontal .Present && cellCtx .Merge .Horizontal .Start
356
344
if isHMergeStart {
@@ -383,10 +371,11 @@ func (m *Markdown) renderMarkdownLine(line []string, ctx tw.Formatting, isHeader
383
371
var formattedSegment string
384
372
if isHeaderSep {
385
373
// Use header's alignment from ctx.Row.Previous
386
- headerAlign := tw . AlignCenter // Default for headers
374
+ headerAlign := align
387
375
if headerCellCtx , headerOK := ctx .Row .Previous [colIndex ]; headerOK {
388
376
headerAlign = headerCellCtx .Align
389
- if headerAlign == tw .AlignNone || headerAlign == tw .Empty {
377
+ // Preserve tw.AlignNone for separator
378
+ if headerAlign != tw .AlignNone && (headerAlign == tw .Empty || headerAlign == tw .Skip ) {
390
379
headerAlign = tw .AlignCenter
391
380
}
392
381
}
@@ -403,6 +392,16 @@ func (m *Markdown) renderMarkdownLine(line []string, ctx tw.Formatting, isHeader
403
392
rowAlign = headerCellCtx .Align
404
393
}
405
394
}
395
+ if rowAlign == tw .AlignNone || rowAlign == tw .Empty {
396
+ if ctx .Row .Position == tw .Header {
397
+ rowAlign = tw .AlignCenter
398
+ } else if ctx .Row .Position == tw .Footer {
399
+ rowAlign = tw .AlignRight
400
+ } else {
401
+ rowAlign = tw .AlignLeft
402
+ }
403
+ m .logger .Debugf ("renderMarkdownLine: Col %d using default align '%s'" , colIndex , rowAlign )
404
+ }
406
405
formattedSegment = m .formatCell (content , visualWidth , rowAlign , cellCtx .Padding )
407
406
}
408
407
output .WriteString (formattedSegment )
0 commit comments