Skip to content

Commit 5fd6d50

Browse files
luo6luo6
luo6
authored and
luo6
committed
update
1 parent 5f31c45 commit 5fd6d50

File tree

4 files changed

+74
-8
lines changed

4 files changed

+74
-8
lines changed

README.md

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,51 @@
1010
```shell
1111
go get github.com/ICU-Coders/table
1212
```
13+
```go
14+
import "github.com/ICU-Coders/table"
1315

16+
table.Show([]string{"Module", "Type", "Path", "Author"}, [][]string{
17+
{"1", "2", "3", "4"},
18+
{"1", "2", "3", "4"},
19+
{"1", "2", "3", "4"},
20+
{"1", "2", "3", "4"},
21+
})
22+
```
23+
24+
![example](./example.png)
1425

26+
### Config
27+
```go
28+
var MaxCellWidth = 40
29+
var LineEndTag = "*"
30+
var LineBody = "-"
31+
var LineDivider = "|"
32+
```
33+
Example
34+
```go
35+
func TestShow(t *testing.T) {
36+
LineEndTag = "*"
37+
LineBody = "="
38+
LineDivider = "/"
39+
Show([]string{"Module", "Type", "Path", "Author"}, [][]string{
40+
{"1111", "2", "3", "4"},
41+
{"1", "2", "3", "4"},
42+
{"1", "2", "3", "4"},
43+
{"1", "2", "3", "4"},
44+
})
45+
}
46+
```
47+
Display
48+
```
49+
*========*======*======*========*
50+
/ Module / Type / Path / Author /
51+
*========*======*======*========*
52+
/ 1111 / 2 / 3 / 4 /
53+
/ 1 / 2 / 3 / 4 /
54+
/ 1 / 2 / 3 / 4 /
55+
/ 1 / 2 / 3 / 4 /
56+
*========*======*======*========*
57+
```
1558
## MIT License
1659

1760
Copyright (c) 2022 ICU-Coders

example.png

4.84 KB
Loading

main.go

Lines changed: 16 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,9 @@ import (
77
)
88

99
var MaxCellWidth = 40
10+
var LineEndTag = "*"
11+
var LineBody = "-"
12+
var LineDivider = "|"
1013

1114
func trimTableCell(headers []string, content [][]string) {
1215
for i, header := range headers {
@@ -75,32 +78,37 @@ func tableBorder(maxWidths []int) string {
7578
func row(row []string, maxWidth []int) string {
7679
maxLine := 0
7780
for i, cell := range row {
81+
if i >= len(maxWidth) {
82+
break
83+
}
7884
lines := howManyLine(cell, maxWidth[i])
7985
if lines > maxLine {
8086
maxLine = lines
8187
}
8288
}
8389
bufferString := bytes.NewBufferString("")
8490
for i := 0; i < maxLine; i++ {
85-
bufferString.WriteString("|")
91+
bufferString.WriteString(LineDivider)
8692
for j, s := range row {
87-
// fixme 检查row和maxWidth长度
88-
bufferString.WriteString(" ")
89-
bufferString.WriteString(fixStr(s, i, maxWidth[j]))
90-
bufferString.WriteString(" |")
93+
if j < len(maxWidth) {
94+
bufferString.WriteString(" ")
95+
bufferString.WriteString(fixStr(s, i, maxWidth[j]))
96+
bufferString.WriteString(" ")
97+
bufferString.WriteString(LineDivider)
98+
}
9199
}
92100
bufferString.WriteString("\n")
93101
}
94102
return bufferString.String()
95103
}
96104

97105
func borderWithEnd(length int, end bool) string {
98-
bufferString := bytes.NewBufferString("+")
106+
bufferString := bytes.NewBufferString(LineEndTag)
99107
for i := 0; i < length; i++ {
100-
bufferString.WriteString("-")
108+
bufferString.WriteString(LineBody)
101109
}
102110
if end {
103-
bufferString.WriteString("+")
111+
bufferString.WriteString(LineEndTag)
104112
}
105113
return bufferString.String()
106114
}

main_test.go

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
package table
2+
3+
import "testing"
4+
5+
func TestShow(t *testing.T) {
6+
LineEndTag = "*"
7+
LineBody = "="
8+
LineDivider = "/"
9+
Show([]string{"Module", "Type", "Path", "Author"}, [][]string{
10+
{"1111", "2", "3", "4"},
11+
{"1", "2", "3", "4"},
12+
{"1", "2", "3", "4"},
13+
{"1", "2", "3", "4"},
14+
})
15+
}

0 commit comments

Comments
 (0)