Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions header_styles.go
Original file line number Diff line number Diff line change
Expand Up @@ -115,7 +115,7 @@ func (hs HeaderStyle) ApplyStyle(text string) string {
}

var prefix string
var suffix = AnsiReset
suffix := AnsiReset

// Add custom prefix if specified
if hs.CustomPrefix != "" {
Expand Down Expand Up @@ -218,7 +218,7 @@ func (hs HeaderStyle) getSuffix() string {
return ""
}

var suffix = AnsiReset
suffix := AnsiReset

// Add custom suffix if specified
if hs.CustomSuffix != "" {
Expand Down
36 changes: 22 additions & 14 deletions markdown.go
Original file line number Diff line number Diff line change
Expand Up @@ -77,7 +77,7 @@ func (r *MarkdownRenderer) IsRendered() bool {

// renderMarkdownHeader renders the header row in Markdown format.
func (r *MarkdownRenderer) renderMarkdownHeader(table *Table) error {
var line string
var line strings.Builder
var stylePrefix, styleSuffix string

// Apply header style to the entire line if configured
Expand All @@ -87,44 +87,50 @@ func (r *MarkdownRenderer) renderMarkdownHeader(table *Table) error {
}

// Start the line with style prefix
line = stylePrefix + "|"
line.WriteString(stylePrefix)
line.WriteString("|")

for _, col := range table.columns {
// Apply alignment to header content (headers are typically centered)
content := col.Title
if table.autoAlign {
content = table.formatCell(col.Title, col.Width, Center)
}
line += content + "|"
line.WriteString(content)
line.WriteString("|")
}

// End the line with style suffix
line += styleSuffix + "\n"
_, err := table.writer.Write([]byte(line))
line.WriteString(styleSuffix)
line.WriteString("\n")
_, err := table.writer.Write([]byte(line.String()))
return err
}

// renderMarkdownSeparator renders the separator row with alignment indicators.
func (r *MarkdownRenderer) renderMarkdownSeparator(table *Table) error {
line := "|"
var line strings.Builder
line.WriteString("|")

for _, col := range table.columns {
separatorWidth := max(col.Width, 1)
if table.borderConfig.Padding {
separatorWidth += (table.padding * 2)
}
separator := r.getAlignmentSeparator(col.Align, separatorWidth)
line += separator + "|"
line.WriteString(separator)
line.WriteString("|")
}

line += "\n"
_, err := table.writer.Write([]byte(line))
line.WriteString("\n")
_, err := table.writer.Write([]byte(line.String()))
return err
}

// renderMarkdownRow renders a data row in Markdown format.
func (r *MarkdownRenderer) renderMarkdownRow(table *Table, row Row) error {
line := "|"
var line strings.Builder
line.WriteString("|")

// Ensure row.Cells has at least as many elements as table.columns
cells := row.Cells
Expand All @@ -137,7 +143,8 @@ func (r *MarkdownRenderer) renderMarkdownRow(table *Table, row Row) error {

for i, col := range table.columns {
if !table.autoAlign {
line += cells[i].Content + "|"
line.WriteString(cells[i].Content)
line.WriteString("|")
continue // Skip alignment if noAlign is set
}

Expand All @@ -149,11 +156,12 @@ func (r *MarkdownRenderer) renderMarkdownRow(table *Table, row Row) error {
}
// Format cell content with alignment
content = table.formatCell(cells[i].Content, col.Width, cellAlign)
line += content + "|"
line.WriteString(content)
line.WriteString("|")
}

line += "\n"
_, err := table.writer.Write([]byte(line))
line.WriteString("\n")
_, err := table.writer.Write([]byte(line.String()))
return err
}

Expand Down