logrusorgru/aurora
logrusorgru/aurora は、Go言語のターミナル出力に色やスタイルを追加するANSIカラーライブラリ。
PrintfやSprintfとの互換性があり、メソッドチェーンで複数のスタイルを組み合わせられる。
インストール
go get -u github.com/logrusorgru/aurora/v4
もしくはimport "github.com/logrusorgru/aurora/v4"を記述してgo mod tidyを実行し、go.modに追加する。
基本的な使い方
文字列に色をつける
aurora.色名(文字列)で文字列に色をつけられる。
package main
import (
"fmt"
"github.com/logrusorgru/aurora/v4"
)
func main() {
fmt.Println("Hello,", aurora.Magenta("Aurora"))
fmt.Println(aurora.Green("Success!"))
fmt.Println(aurora.Red("Error!"))
}
メソッドチェーンでスタイルを組み合わせる
複数のメソッドをチェーンして、色と装飾を組み合わせられる。
fmt.Println(aurora.Bold(aurora.Cyan("Cyan Bold Text")))
fmt.Println(aurora.Red("Red").Bold().Underline())
fmt.Println(aurora.Green("Green").BgBlue().Bold())
Printf/Sprintfとの互換性
PrintfやSprintfで数値やフォーマット済み文字列にも色をつけられる。
fmt.Printf("Count: %d\n", aurora.Green(42))
fmt.Printf("PI: %+1.2e\n", aurora.Cyan(3.14))
aurora.Sprintfでフォーマット文字列自体に色をつけることも可能。
fmt.Println(aurora.Sprintf(aurora.Magenta("Got it %d times"), aurora.Green(1240)))
利用可能なメソッド
文字色
基本的な8色と明るいバリエーションを使用できる。
Black()/BrightBlack()Red()/BrightRed()Green()/BrightGreen()Yellow()/BrightYellow()Blue()/BrightBlue()Magenta()/BrightMagenta()Cyan()/BrightCyan()White()/BrightWhite()
背景色
Bgプレフィックスで背景色を指定する。
BgBlack()/BgBrightBlack()BgRed()/BgBrightRed()BgGreen()/BgBrightGreen()BgYellow()/BgBrightYellow()BgBlue()/BgBrightBlue()BgMagenta()/BgBrightMagenta()BgCyan()/BgBrightCyan()BgWhite()/BgBrightWhite()
fmt.Println(aurora.Black("Black text").BgWhite())
fmt.Println(aurora.White("White text").BgRed())
テキスト装飾
Bold()- 太字Faint()- 薄いItalic()- イタリックUnderline()- 下線SlowBlink()/RapidBlink()- 点滅Reverse()- 反転表示Conceal()- 隠すCrossedOut()- 取り消し線DoublyUnderline()- 二重下線
fmt.Println(aurora.Bold("Bold text"))
fmt.Println(aurora.Underline("Underlined text"))
fmt.Println(aurora.Red("Red").Bold().Underline())
8ビットカラー
Gray()とIndex()で256色パレットの色を指定できる。
// グレースケール(0-23)
fmt.Println(aurora.Gray(12, "Medium gray"))
// 8ビットカラーインデックス(0-255)
fmt.Println(aurora.Index(82, "Color 82"))
fmt.Println(aurora.BgIndex(200, "Background color 200"))
色の有効/無効の切り替え
環境変数や設定で色の出力を動的に制御できる。
// カラー出力を無効にする
au := aurora.New(aurora.WithColors(false))
fmt.Println(au.Red("This will not be colored"))
// カラー出力を有効にする
au = aurora.New(aurora.WithColors(true))
fmt.Println(au.Red("This will be red"))
\第一線のプログラマーの行動原理を学べる!/
