1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/gookit-color

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

CLI Color

Библиотека для работы с цветом в командной строке с поддержкой true color, универсальными методами API и поддержкой Windows.

中文说明

Основные возможности:

  • Простота использования, отсутствие зависимостей;
  • Поддержка вывода насыщенного цвета: 16-цветный (4-битный), 256-цветный (8-битный) и true color (24-битный RGB);
    • 16-цветная палитра является наиболее распространённой и широко поддерживаемой, работает на любой версии Windows;
    • Начиная с версии v1.2.4, поддерживается работа с 256 цветами (8 бит) и true color (24 бита) в Windows CMD и PowerShell;
    • Дополнительную информацию о поддержке true color можно найти в этом гисте;
  • Возможность конвертировать значения HEX и HSL в RGB;
  • Универсальные методы API: Print, Printf, Println, Sprint, Sprintf;
  • Поддерживается рендеринг цветов в стиле HTML-тегов, таких как <green>message</>.
    • Помимо встроенных тегов, также поддерживаются пользовательские атрибуты цвета;
    • Пользовательские атрибуты позволяют использовать 16 названий цветов, 256 значений цветов, значения цветов RGB и шестнадцатеричные значения цветов;
    • Работает в терминалах Windows cmd и powerShell;
  • Базовые цвета: Bold, Black, White, Gray, Red, Green, Yellow, Blue, Magenta, Cyan;
  • Дополнительные стили: Info, Note, Light, Error, Danger, Notice, Success, Comment, Primary, Warning, Question, Secondary;
  • Можно установить NO_COLOR для отключения цвета или использовать FORCE_COLOR для принудительного включения рендеринга цвета.
  • Поддерживаются преобразования Rgb, 256 и 16 цветов.

GoDoc

Установка

go get github.com/gookit/color

Быстрый старт

package main

import (
    "fmt"

    "github.com/gookit/color"
)

func main() {
    // быстрое использование функций пакета
    color.Redp("Simple to use color")
    color.Redln("Simple to use color")
    color.Greenp("Simple to use color\n")
    color.Cyanln("Simple to use color")
    color.Yellowln("Simple to use color")

    // быстрое использование подобно fmt.Print*
    color.Red.Println("Simple to use color")
    color.Green.Print("Simple to use color\n")
    color.Cyan.Printf("Simple to use %s\n", "color")
    color.Yellow.Printf("Simple to use %s\n", "color")

    // использование подобно функции
    red := color.FgRed.Render
    green := color.FgGreen.Render
    fmt.Printf("%s line %s library\n", red("Command"), green("color"))

    // пользовательский цвет
    color.New(color.FgWhite, color.BgBlack).Println("custom color style")

    // также можно:
    color.Style{color.FgCyan, color.OpBold}.Println("custom color style")

    // внутренняя тема/стиль:
    color.Info.Tips("message")
    color.Info.Prompt("message")
    color.Info.Println("message")
    color.Warn.Println("message")
    color.Error.Println("message")

    // использовать стиль тега
    color.Print("<suc>he</><comment>llo</>, <cyan>wel</><red>come</>\n")
}
``` Данный текст написан на языке Go.

custom label attr: поддерживает использование 16 названий цветов, 256 значений цветов, значений RGB и шестнадцатеричных значений цвета color.Println("<fg=11aa23>he</><bg=120,35,156>llo</>, <fg=167;bg=232>wel</><fg=red>come</>")

// применить тег стиля
color.Tag("info").Println("текст в стиле info")

// сообщение с подсказкой
color.Info.Prompt("сообщение в стиле подсказки")
color.Warn.Prompt("сообщение в стиле подсказки")

// сообщения с советами
color.Info.Tips("сообщение в стиле советов")
color.Warn.Tips("сообщение в стиле советов")

}


Запустите демонстрацию: `go run ./_examples/demo.go`

![colored-out](_examples/images/color-demo.jpg)

## Основные / 16 цветов

Поддерживается в любой версии Windows. Предоставляет общие методы API: `Print`, `Printf`, `Println`, `Sprint`, `Sprintf`.

```go
color.Bold.Println("жирное сообщение")
color.Black.Println("жирное сообщение")
color.White.Println("жирное сообщение")
color.Gray.Println("жирное сообщение")
color.Red.Println("жёлтое сообщение")
color.Blue.Println("жёлтое сообщение")
color.Cyan.Println("жёлтое сообщение")
color.Yellow.Println("жёлтое сообщение")
color.Magenta.Println("жёлтое сообщение")

// Использовать только цвет переднего плана
color.FgCyan.Printf("Простое использование %s\n", "цвет")
// Использовать только фоновый цвет
color.BgRed.Printf("Простое использование %s\n", "цвет")

Запустите демонстрацию: go run ./_examples/color_16.go

basic-color

Пользовательская настройка цвета

// Полностью пользовательский: передний план, фон, опция
myStyle := color.New(color.FgWhite, color.BgBlack, color.OpBold)
myStyle.Println("пользовательский стиль цвета")

// Также можно:
color.Style{color.FgCyan, color.OpBold}.Println("пользовательский стиль цвета")

Пользовательская настройка параметров консоли:

// Установить цвет консоли
color.Set(color.FgCyan)

// Вывести сообщение
fmt.Print("message")

// Сбросить настройки консоли
color.Reset()

Дополнительные стили

Предоставляет общие методы API: Print, Printf, Println, Sprint, Sprintf

Вывести сообщение с использованием определённого стиля:

color.Info.Println("Сообщение Info")
color.Note.Println("Сообщение Note")
color.Notice.Println("Сообщение Notice")
color.Error.Println("Сообщение Error")
color.Danger.Println("Сообщение Danger")
color.Warn.Println("Сообщение Warn")
color.Debug.Println("Сообщение Debug")
color.Primary.Println("Сообщение Primary")
color.Question.Println("Сообщение Question")
color.Secondary.Println("Сообщение Secondary")

Запустите демонстрацию: go run ./_examples/theme_basic.go

theme-basic

Стиль с советами

color.Info.Tips("Советы Info")
color.Note.Tips("Советы Note")
color.Notice.Tips("Советы Notice")
color.Error.Tips("Советы Error")
color.Danger.Tips("Советы Danger")
color.Warn.Tips("Советы Warn")
color.Debug.Tips("Советы Debug")
color.Primary.Tips("Советы Primary")
color.Question.Tips("Советы Question")
color.Secondary.Tips("Советы Secondary")

Запустите демонстрацию: go run ./_examples/theme_tips.go

theme-tips

Стиль запроса

color.Info.Prompt("Запрос Info")
color.Note.Prompt("Запрос Note")
color.Notice.Prompt("Запрос Notice")
color.Error.Prompt("Запрос Error")
color.Danger.Prompt("Запрос Danger")
color.Warn.Prompt("Запрос Warn")
color.Debug.Prompt("Запрос Debug")
color.Primary.Prompt("Запрос Primary")
color.Question.Prompt("Запрос Question")
color.Secondary.Prompt("Запрос Secondary")

Запустите демонстрацию: go run ./_examples/theme_prompt.go

theme-prompt

Блочный стиль

color.Info.Block("Блок сообщений Info")
color.Note.Block("Блок сообщений Note")
color.Notice.Block("Блок сообщений Notice")
color.Error.Block("Блок сообщений Error")
color.Danger.Block("Блок сообщений Danger")
color.Warn.Block("Блок сообщений Warn")
color.Debug.Block("Блок сообщений Debug")
color.Primary.Block("Блок сообщений Primary")
color.Question.Block("Блок сообщений Question")
color.Secondary.Block("Блок сообщений Secondary")

Запустите демонстрацию: go run ./_examples/theme_block.go

theme-block

Использование 256 цветов

Поддержка 256 цветов в Windows CMD, PowerShell environment after v1.2.4

Set the foreground or background color

  • 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")

256-color style

Can be used to set foreground and background colors at the same time.

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

with options:

s := color.S256(32, 203)
s.SetOpts(color.Opts{color.OpBold})

s.Println("style with options")
s.Printf("style with %s\n", "options")

Run demo: go run ./_examples/color_256.go

RGB/True color

RGB colors support Windows CMD, PowerShell environment after v1.2.4

Preview:

Run demo: Run demo: go run ./_examples/color_rgb.go

example:

color.RGB(30, 144, 255).Println("message. use RGB number")

color.HEX("#1976D2").Println("blue-darken")
color.HEX("#D50000", true).Println("red-accent. use HEX style")

color.RGBStyleFromString("213,0,0").Println("red-accent. use RGB number")
color.HEXStyle("eee", "D50000").Println("deep-purple color")

Set the foreground or background color

  • 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")

Create a style from an hexadecimal color string:

  • color.HEX(hex string, isBg ...bool) RGBColor
c := color.HEX("ccc") // can also: "cccccc" "#cccccc"
c.Println("message")
c.Printf("format %s", "message")

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

RGB color style

Can be used to set the foreground and background colors at the same time.

  • color.NewRGBStyle(fg RGBColor, bg ...RGBColor) *RGBStyle
s := color.NewRGBStyle(RGB(20, 144, 234), RGB(234, 78, 23))
s.Println("message")
s.Printf("format %s", "message")

Create a style from an hexadecimal color string:

  • color.HEXStyle(fg string, bg ...string) *RGBStyle
s := color.HEXStyle("11aa23", "eee")
s.Println("message")
s.Printf("format %s", "message")

with options:

s := color.HEXStyle("11aa23", "eee")
s.SetOpts(color.Opts{color.OpBold})

s.Println("style with options")
s.Printf("style with %s\n", "options")

HTML-like tag usage

Supported on Windows cmd.exe PowerShell.

// use style tag
color.Print("<suc>he</><comment>llo</>, <cyan>wel</><red>come</>")
color.Println("<suc>hello</>")
color.Println("<error>hello</>")
color.Println("<warning>hello</>")

// custom color attributes
color.Print("<fg=yellow;bg=black;op=underscore;>hello, welcome</>\n")

// Custom label attr: Supports the use of 16 color names, 256 color values, rgb color values and hex color values
color.Println("<fg=11aa23>he</><bg=120,35,156>llo</>, <fg=167;bg=232>wel</><fg=red>come</>")
  • 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")

Run demo: go run ./_examples/color_tag.go

Color convert

Supports conversion between Rgb, 256, 16 colors, Rgb <=> 256 <=> 16

basic := color.Red
basic.Println("basic color")

c256 := color.Red.C256()
c256.Println("256 color")
c256.C16().Println("basic color")

rgb := color.Red.RGB()
rgb.Println("rgb color")
rgb.C256().Println("256 color")

More functions for convert to RGBColor:

  • func RGBFromSlice(rgb []uint8, isBg ...bool) RGBColor
  • func RGBFromString(rgb string, isBg ...bool) RGBColor
  • func HEX(hex string, isBg ...bool) RGBColor
  • func HSL(h, s, l float64, isBg ...bool) RGBColor
  • func HSLInt(h, s, l int, isBg ...bool) RGBColor Функции для работы с цветом

Есть несколько полезных функций:

  • Disable() — отключить рендеринг цвета;
  • SetOutput(io.Writer) — пользовательская настройка вывода цветного текста;
  • ForceOpenColor() — принудительно открыть рендеринг цвета;
  • Colors2code(colors ...Color) string — преобразовать цвета в код, возвращает что-то вроде «32;45;3»;
  • ClearCode(str string) string — используется для очистки цветовых кодов;
  • ClearTag(s string) string — очистить все цветовые HTML-теги для строки;
  • IsConsole(w io.Writer) — определить, является ли w одним из stderr, stdout, stdin;
  • HexToRgb(hex string) (rgb []int) — преобразовать строку шестнадцатеричного цвета в RGB-числа;
  • RgbToHex(rgb []int) string — преобразовать RGB в шестнадцатеричный код.

Более полезные функции см. на https://pkg.go.dev/github.com/gookit/color.

Проекты, использующие цвет

Вот некоторые проекты, которые используют https://github.com/gookit/color:

Пакеты Gookit

  • gookit/ini — управление конфигурацией Go, использование файлов INI;
  • gookit/rux — простой и быстрый маршрутизатор запросов для HTTP Golang;
  • gookit/gcli — создание приложений CLI, инструментальная библиотека, выполнение команд CLI;
  • gookit/slog — лаконичная и расширяемая библиотека журналов Go;
  • gookit/event — легковесный менеджер событий и диспетчер, реализованный на Go;
  • gookit/cache — универсальный кэш и менеджер кэша для Golang. Поддержка File, Memory, Redis, Memcached;
  • gookit/config — управление конфигурациями Go. Поддержка JSON, YAML, TOML, INI, HCL, ENV и флагов;
  • gookit/color — библиотека цветов командной строки с поддержкой истинных цветов, универсальными методами API и поддержкой Windows;
  • gookit/filter — фильтрация, дезинфекция и преобразование данных Golang;
  • gookit/validate — используется для проверки и фильтрации данных. Поддержка Map, Struct, Form data;
  • gookit/goutil — некоторые утилиты для Go: строка, массив/срез, карта, формат, cli, env, файловая система, тест и многое другое;
  • Больше см. на сайте https://github.com/gookit.

См. также

Лицензия: MIT.

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Написанный на языке GO инструмент CLI для визуализации цвета в консоли, поддерживает 16- и 256- цветовую палитру, рендеринг RGB-цветов. Для использования инструмента применяются функции, подобные Print/Sprintf. Поддерживает работу в среде Windows. Развернуть Свернуть
MIT
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/gookit-color.git
git@api.gitlife.ru:oschina-mirror/gookit-color.git
oschina-mirror
gookit-color
gookit-color
master