Skip to content

Package gomdtable package is needed for generating Markdown tables.

License

Notifications You must be signed in to change notification settings

probeldev/gomdtable

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Go Markdown Table

Package gomdtable package is needed for generating Markdown tables.

Install

go get github.com/probeldev/gomdtable

Usage

example:

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     |

About

Package gomdtable package is needed for generating Markdown tables.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages