开源中国 2018 年度最后一场技术盛会邀你来约~错过就要等明年啦!点此立即预约

inhere / colorGoMIT

Watch 1 Star 1 Fork 0
加入码云
与超过 300 万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
Golang下的命令行色彩使用库,支持丰富的颜色输出,通用的API方法,支持html标签式的颜色渲染,兼容Windows系统环境 展开 收起

Loading...
README_cn.md

CLI Color

GoDoc Build Status Coverage Status Go Report Card

golang下的命令行色彩使用库, 拥有丰富的色彩渲染输出,通用的API方法,兼容Windows系统

EN Readme

基本颜色预览:

basic-color

功能特色

  • 使用简单方便,无其他依赖
  • 支持丰富的颜色输出, 16色(4bit),256色(8bit),RGB色彩(24bit)
    • 16色(4bit)是最常用和支持最广的,支持Windows cmd.exe
    • 另外两种支持 linux mac 和 Windows下的 ConEmu git-bash mintty 等部分终端
  • 通用的API方法:Print Printf Println Sprint Sprintf
  • 同时支持html标签式的颜色渲染. eg: <green>message</>
  • 基础色彩: Bold Black White Gray Red Green Yellow Blue Magenta Cyan
  • 扩展风格: Info Note Light Error Danger Notice Success Comment Primary Warning Question Secondary
  • 兼容Windows系统环境

GoDoc

快速开始

如下,引入当前包就可以快速的使用

import "gopkg.in/gookit/color.v1" // 推荐
// or
import "github.com/gookit/color"

如何使用

package main

import (
	"fmt"
	"github.com/gookit/color"
)

func main() {
	// simple usage
	color.Cyan.Printf("Simple to use %s\n", "color")

	// use like func
	red := color.FgRed.Render
	green := color.FgGreen.Render
	fmt.Printf("%s line %s library\n", red("Command"), green("color"))

	// custom color
	color.New(color.FgWhite, color.BgBlack).Println("custom color style")

	// can also:
	color.Style{color.FgCyan, color.OpBold}.Println("custom color style")
	
	// internal style:
	color.Info.Println("message")
	color.Warn.Println("message")
	color.Error.Println("message")
	
	// use style tag
	color.Print("<suc>he</><comment>llo</>, <cyan>wel</><red>come</>\n")

	// apply a style tag
	color.Tag("info").Println("info style text")

	// prompt message
	color.Info.Prompt("prompt style message")
	color.Warn.Prompt("prompt style message")

	// tips message
	color.Info.Tips("tips style message")
	color.Warn.Tips("tips style message")
}

运行 demo: go run ./_examples/app.go

colored-out

构建风格

// 仅设置前景色
color.FgCyan.Printf("Simple to use %s\n", "color")
// 仅设置背景色
color.BgRed.Printf("Simple to use %s\n", "color")

// 完全自定义 前景色 背景色 选项
style := color.New(color.FgWhite, color.BgBlack, color.OpBold)
style.Println("custom color style")

// can also:
color.Style{color.FgCyan, color.OpBold}.Println("custom color style")
// 设置console颜色
color.Set(color.FgCyan)

// 输出信息
fmt.Print("message")

// 重置console颜色
color.Reset()

使用内置风格

基础颜色方法

支持在windows cmd.exe 使用

  • color.Bold
  • color.Black
  • color.White
  • color.Gray
  • color.Red
  • color.Green
  • color.Yellow
  • color.Blue
  • color.Magenta
  • color.Cyan
color.Bold.Println("bold message")
color.Yellow.Println("yellow message")

运行 demo: go run ./_examples/basiccolor.go

basic-color

扩展风格方法

支持在windows cmd.exe 使用

  • color.Info
  • color.Note
  • color.Light
  • color.Error
  • color.Danger
  • color.Notice
  • color.Success
  • color.Comment
  • color.Primary
  • color.Warning
  • color.Question
  • color.Secondary
color.Info.Println("Info message")
color.Success.Println("Success message")

运行 demo: go run ./_examples/theme_style.go

theme-style

使用颜色标签

支持在windows cmd.exe 使用,但不影响使用,会自动去除颜色标签

使用内置的颜色标签,可以非常方便简单的构建自己需要的任何格式

// 使用内置的 color tag
color.Print("<suc>he</><comment>llo</>, <cyan>wel</><red>come</>")
color.Println("<suc>hello</>")
color.Println("<error>hello</>")
color.Println("<warning>hello</>")

// 自定义颜色属性
color.Print("<fg=yellow;bg=black;op=underscore;>hello, welcome</>\n")
  • 使用 color.Tag

给后面输出的文本信息加上给定的颜色风格标签

// set a style tag
color.Tag("info").Print("info style text")
color.Tag("info").Printf("%s style text", "info")
color.Tag("info").Println("info style text")

运行 demo: go run ./_examples/colortag.go

color-tags

256色使用

使用前景或后景色

  • color.C256(val uint8, isBg ...bool) Color256
c := color.C256(132) // fg color
c.Println("message")
c.Printf("format %s", "message")

c := color.C256(132, true) // bg color
c.Println("message")
c.Printf("format %s", "message")

使用风格

可同时设置前景和背景色

  • color.S256(fgAndBg ...uint8) *Style256
s := color.S256(32, 203)
s.Println("message")
s.Printf("format %s", "message")

运行 demo: go run ./_examples/color256.go

color-tags

RGB色彩使用

使用前景或后景色

  • color.RGB(r, g, b uint8, isBg ...bool) RGBColor
c := color.RGB(30,144,255) // fg color
c.Println("message")
c.Printf("format %s", "message")

c := color.RGB(30,144,255, true) // bg color
c.Println("message")
c.Printf("format %s", "message")
  • color.HEX(hex string, isBg ...bool) RGBColor 从16进制颜色创建
c := HEX("ccc") // 也可以写为: "cccccc" "#cccccc"
c.Println("message")
c.Printf("format %s", "message")

c = HEX("aabbcc", true) // as bg color
c.Println("message")
c.Printf("format %s", "message")

使用风格

可同时设置前景和背景色

  • color.NewRGBStyle(fg RGBColor, bg ...RGBColor) *RGBStyle
s := NewRGBStyle(RGB(20, 144, 234), RGB(234, 78, 23))
s.Println("message")
s.Printf("format %s", "message")
  • color.HEXStyle(fg string, bg ...string) *RGBStyle 从16进制颜色创建
s := HEXStyle("11aa23", "eee")
s.Println("message")
s.Printf("format %s", "message")

参考项目

License

MIT

项目点评 ( 0 )

你可以在登录后,发表评论

搜索帮助

12_float_left_people 12_float_left_close