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 output

上下文函数

注意: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
}

注意事项

  1. cfmt在Windows上可能需要启用ANSI颜色支持
  2. 复杂的样式可能会在某些终端中显示不正常
  3. 对于生产环境日志,建议同时提供无颜色版本

cfmt是一个简单但功能强大的库,特别适合需要美化命令行输出的Go应用程序。通过使用Bootstrap风格的颜色名称,开发者可以轻松创建一致且美观的控制台界面。

希望这个介绍对你有所帮助!如果你需要更复杂的功能,可以查看cfmt的GitHub仓库获取更多示例和文档。

回到顶部