- Notifications
You must be signed in to change notification settings - Fork55
Golang ultimate ANSI-colors that supports Printf/Sprintf methods
License
logrusorgru/aurora
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
Ultimate ANSI colors for Golang. The package supports Printf/Sprintf etc.
Using gopkg.in.
go get -u gopkg.in/logrusorgru/aurora.v1
go get -u github.com/logrusorgru/aurora
Get
go get -u github.com/logrusorgru/aurora/v3
The v3 was introduced to supportgo.mod
and leave previous import paths as is.Currently, there is no changes between them (excluding the importpath's /v3 tail).
go get -u github.com/logrusorgru/aurora/v4
With hyperlinks.
go test -cover -race github.com/logrusorgru/aurora/v4
Replace the import path with your, if it's different.
package mainimport ("fmt""github.com/logrusorgru/aurora/v4")funcmain() {fmt.Println("Hello,",aurora.Magenta("Aurora"))fmt.Println(aurora.Bold(aurora.Cyan("Cya!")))}
package mainimport ("fmt""github.com/logrusorgru/aurora/v4")funcmain() {fmt.Printf("Got it %d times\n",aurora.Green(1240))fmt.Printf("PI is %+1.2e\n",aurora.Cyan(3.14))}
package mainimport ("fmt""github.com/logrusorgru/aurora/v4")funcmain() {fmt.Println(aurora.Sprintf(aurora.Magenta("Got it %d times"),aurora.Green(1240)))}
package mainimport ("fmt""flag""github.com/logrusorgru/aurora/v4")// colorizervarau*aurora.Auroravarcolors=flag.Bool("colors",false,"enable or disable colors")funcinit() {flag.Parse()au=aurora.New(WithColors(*colors))}funcmain() {// use colorizerfmt.Println(au.Green("Hello"))}
Hyperlinks feature description.
Add a red hyperlinks with text "Example" that is referencing tohttp://example.com.
package mainimport ("flag""fmt""github.com/logrusorgru/aurora/v4")funcmain() {varconf=aurora.NewConfig()conf.AddFlags(flag.CommandLine,"prefix.")flag.Parse()aurora.DefaultColorizer=aurora.New(conf.Options()...)// set globalfmt.Println(aurora.Red("Example").Hyperlink("http://example.com/"))}
The following samples are equal
x:=aurora.BgMagenta(aurora.Bold(aurora.Red("x")))
x:=aurora.Red("x").Bold().BgMagenta()
The second is more readable
There isColorize
function that allows to choose some colors andformat from a side
funcgetColors()Color {// some stuff that returns appropriate colors and format}// [...]funcmain() {fmt.Println(aurora.Colorize("Greeting",getColors()))}
Less complicated example
x:=aurora.Colorize("Greeting",GreenFg|GrayBg|BoldFm)
Unlike other color functions and methods (such as Red/BgBlue etc)aColorize
clears previous colors
x:=aurora.Red("x").Colorize(BgGreen)// will be with green background only
fmt.Println(" ",aurora.Gray(1-1," 00-23 ").BgGray(24-1),aurora.Gray(4-1," 03-19 ").BgGray(20-1),aurora.Gray(8-1," 07-15 ").BgGray(16-1),aurora.Gray(12-1," 11-11 ").BgGray(12-1),aurora.Gray(16-1," 15-07 ").BgGray(8-1),aurora.Gray(20-1," 19-03 ").BgGray(4-1),aurora.Gray(24-1," 23-00 ").BgGray(1-1),)
MethodsIndex
andBgIndex
implements 8-bit colors.
Index/BgIndex | Meaning | Foreground | Background |
---|---|---|---|
0- 7 | standard colors | 30- 37 | 40- 47 |
8- 15 | bright colors | 90- 97 | 100-107 |
16-231 | 216 colors | 38;5;n | 48;5;n |
232-255 | 24 grayscale | 38;5;n | 48;5;n |
Example
package mainimport ("fmt""github.com/logrusorgru/aurora")funcmain() {fori:=uint8(16);i<=231;i++ {fmt.Println(i,aurora.Index(i,"pew-pew"),aurora.BgIndex(i,"pew-pew"))}}
- 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
There is no way to represent%T
and%p
with colors usinga standard approach
package mainimport ("fmt""github.com/logrusorgru/aurora")funcmain() {var (r=aurora.Red("red")iint)fmt.Printf("%T %p\n",r,aurora.Green(&i))}
Output will be without colors
aurora.value %!p(aurora.value={0xc42000a310 768 0})
The obvious workaround isRed(fmt.Sprintf("%T", some))
The Aurora provides ANSI colors only, so there is no support for Windows. That said, there are workarounds available.Check out these comments to learn more:
The Aurora has no internal TTY detectors by design. Take a lookthis comment if you want turnon colors for a terminal only, and turn them off for a file.
Copyright © 2016-2022 The Aurora Authors. This work is free.It comes without any warranty, to the extent permitted by applicablelaw. You can redistribute it and/or modify it under the terms of thethe Unlicense. See the LICENSE file for more details.
About
Golang ultimate ANSI-colors that supports Printf/Sprintf methods
Topics
Resources
License
Uh oh!
There was an error while loading.Please reload this page.
Stars
Watchers
Forks
Packages0
Contributors9
Uh oh!
There was an error while loading.Please reload this page.