GitHub - logrusorgru/aurora: Golang ultimate ANSI-colors that supports Printf/Sp...
source link: https://github.com/logrusorgru/aurora
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
README.md
Aurora
Ultimate ANSI colors for Golang. The package supports Printf/Sprintf etc.
Installation
Get
go get -u github.com/logrusorgru/aurora
Test
go test -cover github.com/logrusorgru/aurora
Usage
Simple
package main import ( "fmt" . "github.com/logrusorgru/aurora" ) func main() { fmt.Println("Hello,", Magenta("Aurora")) fmt.Println(Bold(Cyan("Cya!"))) }
Printf
package main import ( "fmt" . "github.com/logrusorgru/aurora" ) func main() { fmt.Printf("Got it %d times\n", Green(1240)) fmt.Printf("PI is %+1.2e\n", Cyan(3.14)) }
aurora.Sprintf
package main import ( "fmt" . "github.com/logrusorgru/aurora" ) func main() { fmt.Println(Sprintf(Magenta("Got it %d times"), Green(1240))) }
Enable/Disable colors
package main import ( "fmt" "flag" "github.com/logrusorgru/aurora" ) // colorizer var au aurora.Aurora var colors = flag.Bool("colors", false, "enable or disable colors") func init() { flag.Parse() au = aurora.NewAurora(*colors) } func main() { // use colorizer fmt.Println(au.Green("Hello")) }
Chains
The following samples are equal
x := BgMagenta(Bold(Red("x")))
x := Red("x").Bold().BgMagenta()
The second is more readable
Colorize
There is Colorize
function that allows to choose some colors and
format from a side
func getColors() Color { // some stuff that returns appropriate colors and format } // [...] func main() { fmt.Println(Colorize("Greeting", getColors())) }
Less complicated example
x := Colorize("Greeting", GreenFg|GrayBg|BoldFm)
Unlike other color functions and methods (such as Red/BgBlue etc)
a Colorize
clears previous colors
x := Red("x").Colorize(BgGreen) // will be with green background only
Grayscale
fmt.Println(" ", Gray(1-1, " 00-23 ").BgGray(24-1), Gray(4-1, " 03-19 ").BgGray(20-1), Gray(8-1, " 07-15 ").BgGray(16-1), Gray(12-1, " 11-11 ").BgGray(12-1), Gray(16-1, " 15-07 ").BgGray(8-1), Gray(20-1, " 19-03 ").BgGray(4-1), Gray(24-1, " 23-00 ").BgGray(1-1), )
8-bit colors
Methods Index
and BgIndex
implements 8-bit colors.
Supported colors & formats
- formats
- bold (1)
- faint (2)
- doubly-underline (21)
- fraktur (20)
- italic (3)
- underline (4)
- slow blink (5)
- rapid blink (6)
- reverse video (7)
- conceal (8)
- crossed out (9)
- framed (51)
- encircled (52)
- overlined (53)
- background and foreground colors, including bright
- black
- red
- green
- yellow (brown)
- blue
- magenta
- cyan
- white
- 24 grayscale colors
- 216 8-bit colors
All colors
Standard and bright colors
Formats are likely supported
Formats are likely unsupported
Limitations
There is no way to represent %T
and %p
with colors using
a standard approach
package main import ( "fmt" . "github.com/logrusorgru/aurora" ) func main() { r := Red("red") var i int fmt.Printf("%T %p\n", r, Green(&i)) }
Output will be without colors
aurora.value %!p(aurora.value={0xc42000a310 768 0})
The obvious workaround is Red(fmt.Sprintf("%T", some))
Licensing
Copyright © 2016-2109 The Aurora Authors. This work is free. It comes without any warranty, to the extent permitted by applicable law. You can redistribute it and/or modify it under the terms of the Do What The Fuck You Want To Public License, Version 2, as published by Sam Hocevar. See the LICENSE file for more details.
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK