diff --git a/table.go b/table.go index 6cc99f7..2fde80a 100644 --- a/table.go +++ b/table.go @@ -1,6 +1,9 @@ package markdownTable -import "strings" +import ( + "strings" + "unicode/utf8" +) func CreateMarkdownTable(head []string, body [][]string) string { separator := "|" @@ -8,14 +11,14 @@ func CreateMarkdownTable(head []string, body [][]string) string { //Calculate maximum column width based on headers for i, val := range head { - columnWidths[i] = len(val) + columnWidths[i] = utf8.RuneCountInString(val) } //Calculate maximum column widths based on body data for _, row := range body { for i, val := range row { - if i < len(head) && len(val) > columnWidths[i] { - columnWidths[i] = len(val) + if i < len(head) && utf8.RuneCountInString(val) > columnWidths[i] { + columnWidths[i] = utf8.RuneCountInString(val) } } } @@ -52,5 +55,5 @@ func CreateMarkdownTable(head []string, body [][]string) string { // Helper function to pad a string to the required length func padString(val string, length int) string { - return val + strings.Repeat(" ", length-len(val)) + return val + strings.Repeat(" ", length-utf8.RuneCountInString(val)) }