mirror of
https://github.com/ergochat/ergo.git
synced 2024-12-29 14:12:38 +01:00
2.3 KiB
2.3 KiB
ansi
Package ansi is a small, fast library to create ANSI colored strings and codes.
Install
Get it
go get -u github.com/mgutz/ansi
Example
import "github.com/mgutz/ansi"
// colorize a string, SLOW
:= ansi.Color("foo", "red+b:white")
msg
// create a FAST closure function to avoid computation of ANSI code
:= ansi.ColorFunc("green+h:black")
phosphorize = phosphorize("Bring back the 80s!")
msg := phospohorize("Look, I'm a CRT!")
msg2
// cache escape codes and build strings manually
:= ansi.ColorCode("green+h:black")
lime := ansi.ColorCode("reset")
reset
.Println(lime, "Bring back the 80s!", reset) fmt
Other examples
(s, "red") // red
Color(s, "red+b") // red bold
Color(s, "red+B") // red blinking
Color(s, "red+u") // red underline
Color(s, "red+bh") // red bold bright
Color(s, "red:white") // red on white
Color(s, "red+b:white+h") // red bold on white bright
Color(s, "red+B:white+h") // red blink on white bright
Color(s, "off") // turn off ansi codes Color
To view color combinations, from project directory in terminal.
go test
Style format
"foregroundColor+attributes:backgroundColor+attributes"
Colors
- black
- red
- green
- yellow
- blue
- magenta
- cyan
- white
- 0…255 (256 colors)
Foreground Attributes
- B = Blink
- b = bold
- h = high intensity (bright)
- i = inverse
- s = strikethrough
- u = underline
Background Attributes
- h = high intensity (bright)
Constants
- ansi.Reset
- ansi.DefaultBG
- ansi.DefaultFG
- ansi.Black
- ansi.Red
- ansi.Green
- ansi.Yellow
- ansi.Blue
- ansi.Magenta
- ansi.Cyan
- ansi.White
- ansi.LightBlack
- ansi.LightRed
- ansi.LightGreen
- ansi.LightYellow
- ansi.LightBlue
- ansi.LightMagenta
- ansi.LightCyan
- ansi.LightWhite
References
Wikipedia ANSI escape codes Colors
General tips and formatting
What about support on Windows? Use colorable by mattn. Ansi and colorable are used by logxi to support logging in color on Windows.
MIT License
Copyright (c) 2013 Mario Gutierrez mario@mgutz.com
See the file LICENSE for copying permission.