README ¶
Columnize
Easy column-formatted output for golang
Columnize is a really small Go package that makes building CLI's a little bit easier. In some CLI designs, you want to output a number similar items in a human-readable way with nicely aligned columns. However, figuring out how wide to make each column is a boring problem to solve and eats your valuable time.
Here is an example:
package main
import (
"fmt"
"github.com/ryanuber/columnize"
)
func main() {
output := []string{
"Name | Gender | Age",
"Bob | Male | 38",
"Sally | Female | 26",
}
result := columnize.SimpleFormat(output)
fmt.Println(result)
}
As you can see, you just pass in a list of strings. And the result:
Name Gender Age
Bob Male 38
Sally Female 26
Columnize is tolerant of missing or empty fields, or even empty lines, so passing in extra lines for spacing should show up as you would expect.
Configuration
Columnize is configured using a Config
, which can be obtained by calling the
DefaultConfig()
method. You can then tweak the settings in the resulting
Config
:
config := columnize.DefaultConfig()
config.Delim = "|"
config.Glue = " "
config.Prefix = ""
config.Empty = ""
Delim
is the string by which columns of input are delimitedGlue
is the string by which columns of output are delimitedPrefix
is a string by which each line of output is prefixedEmpty
is a string used to replace blank values found in output
You can then pass the Config
in using the Format
method (signature below) to
have text formatted to your liking.
Usage
SimpleFormat(intput []string) string
Format(input []string, config *Config) string
Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func Format ¶
Format is the public-facing interface that takes either a plain string or a list of strings and returns nicely aligned output.
func SimpleFormat ¶
Convenience function for using Columnize as easy as possible.
Types ¶
type Config ¶ added in v1.1.0
type Config struct { // The string by which the lines of input will be split. Delim string // The string by which columns of output will be separated. Glue string // The string by which columns of output will be prefixed. Prefix string // A replacement string to replace empty fields Empty string }
func DefaultConfig ¶ added in v1.1.0
func DefaultConfig() *Config
Returns a Config with default values.
func MergeConfig ¶
MergeConfig merges two config objects together and returns the resulting configuration. Values from the right take precedence over the left side.