

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
-
32
Aurora Serveless的红与黑 Original...
-
10
README.md vim-aurora
-
8
The Ultimate Guide to Creating a Design System — Part One, ColorsResponses (1)
-
17
-
7
-
4
Amazon Aurora Supports PostgreSQL 13 Sep 05, 2021 2 min...
-
8
Apple Silicon M1 supports "billion of colors" aka HDR 10-bit output January 24, 2021 · 7 min · Kay Singh Subscribe to stay in touch with the latest updates
-
4
The Xbox button on Elite 2 controllers now supports RGB colorsSkip to main content
-
39
rueidis A Fast Golang Redis client that does auto pipelining and supports client side caching. Features Auto pipeline for non-blocking redis commands Connection pooling for blocking redis commands O...
-
6
Ultimate Ears WONDERBOOM 3 serenades you this spring at $80 in four colors (Save $20) ...
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK