golang基于Bootstrap风格的颜色格式化输出插件cfmt的使用
Golang基于Bootstrap风格的颜色格式化输出插件cfmt的使用
简介
cfmt是一个提供上下文格式化功能的Go语言包,其用法与标准库fmt包几乎相同。它的设计灵感来源于Bootstrap的上下文颜色类。
安装
go get github.com/mingrammer/cfmt
使用示例
package main
import (
"log"
"github.com/mingrammer/cfmt"
)
func main() {
// 成功消息(绿色)
cfmt.Success("User was created successfully")
// 信息消息(青色)
cfmt.Infoln("Here are some candidates")
// 警告消息(黄色)
cfmt.Warningf("%s is not valid integer value\n", "123a")
// 错误消息(红色)
log.Fatal(cfmt.Serrorf("Only numeric is allowed, got %s", "123.456a"))
}
输出效果:
上下文函数
注意:cfmt.Errorf函数与fmt.Errorf的功能不同,它实际上是带有红色文本的fmt.Printf。
-
Success (绿色)
- Fsuccess, Fsuccessf, Fsuccessln
- Success, Successf, Successln
- Ssuccess, Ssuccessf, Ssuccessln
-
Info (青色)
- Finfo, Finfof, Finfoln
- Info, Infof, Infoln
- Sinfo, Sinfof, Sinfoln
-
Warning (黄色)
- Fwarning, Fwarningf, Fwarningln
- Warning, Warningf, Warningln
- Swarning, Swarningf, Swarningln
-
Error (红色)
- Ferror, Ferrorf, Ferrorln
- Error, Errorf, Errorln
- Serror, Serrorf, Serrorln
许可证
MIT
更多关于golang基于Bootstrap风格的颜色格式化输出插件cfmt的使用的实战教程也可以访问 https://www.itying.com/category-94-b0.html
1 回复
更多关于golang基于Bootstrap风格的颜色格式化输出插件cfmt的使用的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html
Golang中使用cfmt进行Bootstrap风格的颜色格式化输出
cfmt是一个基于Bootstrap风格的Go语言颜色格式化输出库,它可以让你的命令行输出更加美观和易读。下面我将详细介绍如何使用cfmt。
安装cfmt
首先使用go get安装cfmt:
go get github.com/i582/cfmt
基本用法
1. 简单文本格式化
package main
import "github.com/i582/cfmt"
func main() {
// 基本颜色输出
cfmt.Println("{{This is red}}::red")
cfmt.Println("{{This is green}}::green")
cfmt.Println("{{This is blue}}::blue")
cfmt.Println("{{This is yellow}}::yellow")
// 背景色
cfmt.Println("{{This has red background}}::bgRed")
// 组合样式
cfmt.Println("{{Bold red text}}::bold|red")
cfmt.Println("{{Underlined green text}}::underline|green")
}
2. Bootstrap风格颜色
cfmt支持Bootstrap的标准颜色类:
package main
import "github.com/i582/cfmt"
func main() {
// Bootstrap主要颜色
cfmt.Println("{{Primary}}::primary")
cfmt.Println("{{Secondary}}::secondary")
cfmt.Println("{{Success}}::success")
cfmt.Println("{{Danger}}::danger")
cfmt.Println("{{Warning}}::warning")
cfmt.Println("{{Info}}::info")
cfmt.Println("{{Light}}::light")
cfmt.Println("{{Dark}}::dark")
// 带背景色
cfmt.Println("{{Primary background}}::bgPrimary")
}
3. 格式化字符串
除了直接输出,还可以使用Sprintf格式化字符串:
package main
import (
"fmt"
"github.com/i582/cfmt"
)
func main() {
formatted := cfmt.Sprintf("{{Error}}: %s::danger", "File not found")
fmt.Println(formatted)
// 多行格式化
message := cfmt.Sprintf(`
{{System Status}}::bold|underline
CPU: {{%d%%}}::warning
Memory: {{%d%%}}::danger
Disk: {{%d%%}}::success
`, 85, 92, 30)
fmt.Println(message)
}
4. 自定义样式
你可以定义自己的样式组合:
package main
import "github.com/i582/cfmt"
func main() {
// 自定义样式
cfmt.RegisterStyle("error", []string{"bold", "red", "underline"})
cfmt.Println("{{Critical error!}}::error")
// 临时样式
cfmt.Println("{{Temporary style}}::bold|#FF00FF") // 使用RGB颜色
}
高级用法
1. 表格输出
package main
import "github.com/i582/cfmt"
func main() {
data := [][]string{
{"{{ID}}::bold", "{{Name}}::bold", "{{Status}}::bold"},
{"1", "John", "{{Active}}::success"},
{"2", "Alice", "{{Inactive}}::secondary"},
{"3", "Bob", "{{Pending}}::warning"},
}
for _, row := range data {
cfmt.Printf("| %-5s | %-10s | %-10s |\n", row[0], row[1], row[2])
}
}
2. 进度条
package main
import (
"github.com/i582/cfmt"
"time"
)
func main() {
for i := 0; i <= 100; i += 5 {
cfmt.Printf("Progress: [%-20s] %d%%::green\n",
"{{"+repeat("=", i/5)+"}}::green", i)
time.Sleep(200 * time.Millisecond)
}
}
func repeat(s string, count int) string {
result := ""
for i := 0; i < count; i++ {
result += s
}
return result
}
注意事项
- cfmt在Windows上可能需要启用ANSI颜色支持
- 复杂的样式可能会在某些终端中显示不正常
- 对于生产环境日志,建议同时提供无颜色版本
cfmt是一个简单但功能强大的库,特别适合需要美化命令行输出的Go应用程序。通过使用Bootstrap风格的颜色名称,开发者可以轻松创建一致且美观的控制台界面。
希望这个介绍对你有所帮助!如果你需要更复杂的功能,可以查看cfmt的GitHub仓库获取更多示例和文档。