index = end
case strings.TrimSpace(line) == "---":
out = append(out, "\x1b[2m"+strings.Repeat("-", columns)+"\x1b[0m")
- case index+1 < len(lines) && terminalMarkdownSeparator(lines[index+1]) && len(terminalMarkdownCells(line)) > 1:
+ case index+1 < len(lines) && terminalMarkdownSeparator(lines[index+1]):
rows := [][]string{terminalMarkdownCells(line)}
index += 2
for index < len(lines) && strings.Contains(lines[index], "|") && strings.TrimSpace(lines[index]) != "" {
// terminalMarkdownSeparator tells if a line is a Markdown table separator.
func terminalMarkdownSeparator(line string) bool {
cells := terminalMarkdownCells(line)
- if len(cells) < 2 {
+ if !strings.Contains(line, "|") {
return false
}
if required > columns {
var out []string
- for _, row := range cells {
- for _, cell := range row {
+ for row, values := range cells {
+ for _, cell := range values {
out = append(out, terminalMarkdownLines(cell, columns, "", false)...)
}
+
+ if row == 0 {
+ out = append(out, "\x1b[2m"+strings.Repeat("-", columns)+"\x1b[0m")
+ }
}
return out