Package gomdtable package is needed for generating Markdown tables.
go get github.com/probeldev/gomdtableexample:
package main
import (
"fmt"
"log"
"github.com/probeldev/gomdtable"
)
func main() {
fmt.Println("Table:")
writeTable()
fmt.Println("Table list:")
writeTableList()
fmt.Println("Color table cli:")
writeColorCli()
}
func writeTableList() {
table := gomdtable.NewTable()
err := table.SetHeader([]string{"Имя", "Возраст"})
if err != nil {
log.Panic(err)
}
err = table.AddRow([]string{"Сергей", "31"})
if err != nil {
log.Panic(err)
}
err = table.AddRow([]string{"Ян", "9"})
if err != nil {
log.Panic(err)
}
err = table.AddRow([]string{"Яна", "110"})
if err != nil {
log.Panic(err)
}
table2 := gomdtable.NewTable()
err = table2.SetHeader([]string{"Имя", "Возраст"})
if err != nil {
log.Panic(err)
}
err = table2.AddRow([]string{"Сергей Игоревич", "31"})
if err != nil {
log.Panic(err)
}
err = table2.AddRow([]string{"Ян Васильев", "9"})
if err != nil {
log.Panic(err)
}
err = table2.AddRow([]string{"Яна Александровна", "110"})
if err != nil {
log.Panic(err)
}
tableList, err := gomdtable.GenerateTableList([]gomdtable.Table{
table,
table2,
})
if err != nil {
log.Panic(err)
}
for _, tableStr := range tableList {
fmt.Println(tableStr)
}
}
func writeTable() {
table := gomdtable.NewTable()
err := table.SetHeader([]string{"Имя", "Возраст"})
if err != nil {
log.Panic(err)
}
err = table.AddRow([]string{"Сергей", "31"})
if err != nil {
log.Panic(err)
}
err = table.AddRow([]string{"Ян", "9"})
if err != nil {
log.Panic(err)
}
err = table.AddRow([]string{"Яна", "110"})
if err != nil {
log.Panic(err)
}
tableStr, err := gomdtable.GenerateTable(table)
if err != nil {
log.Panic(err)
}
fmt.Println(tableStr)
}
func writeColorCli() {
table := gomdtable.NewTable()
err := table.SetHeaderWithStyle(
[]gomdtable.CellWithStyle{
{Value: "Amount"},
{Value: "Profit", ColorCli: gomdtable.MagentaColorCli},
})
if err != nil {
log.Panic(err)
}
err = table.AddRowWithStyle([]gomdtable.CellWithStyle{
{Value: "100"},
{Value: "-5", ColorCli: gomdtable.RedColorCli},
})
if err != nil {
log.Panic(err)
}
err = table.AddRowWithStyle([]gomdtable.CellWithStyle{
{Value: "2000"},
{Value: "15", ColorCli: gomdtable.GreenColorCli},
})
if err != nil {
log.Panic(err)
}
tableStr, err := gomdtable.GenerateTable(table)
if err != nil {
log.Panic(err)
}
fmt.Println(tableStr)
}
result:
❯ go run main.go
Table:
| Имя | Возраст |
|--------|---------|
| Сергей | 31 |
| Ян | 9 |
| Яна | 110 |
Table list:
| Имя | Возраст |
|-------------------|---------|
| Сергей | 31 |
| Ян | 9 |
| Яна | 110 |
| Имя | Возраст |
|-------------------|---------|
| Сергей Игоревич | 31 |
| Ян Васильев | 9 |
| Яна Александровна | 110 |
Color table cli:
| Amount | Profit |
|--------|--------|
| 100 | -5 |
| 2000 | 15 |