11 个稳定版本

1.2.0 2024年6月17日
1.1.4 2024年2月18日
1.1.2 2023年8月23日
1.1.0 2022年7月8日
0.1.0 2022年5月22日

#58 in 命令行界面

Download history 207/week @ 2024-04-30 144/week @ 2024-05-07 187/week @ 2024-05-14 294/week @ 2024-05-21 189/week @ 2024-05-28 156/week @ 2024-06-04 288/week @ 2024-06-11 241/week @ 2024-06-18 152/week @ 2024-06-25 78/week @ 2024-07-02 137/week @ 2024-07-09 107/week @ 2024-07-16 157/week @ 2024-07-23 207/week @ 2024-07-30 127/week @ 2024-08-06 96/week @ 2024-08-13

612 个月下载量
用于 7 crates

GPL-3.0-or-later

140KB
2K SLoC

     ██████╗ ███████╗  ██████╗  ███╗   ██╗ ████████╗ ███████╗
    ██╔════╝ ██╔════╝ ██╔═══██╗ ████╗  ██║ ╚══██╔══╝ ██╔════╝
    ██║      █████╗   ██║   ██║ ██╔██╗ ██║    ██║    ███████╗
    ██║      ██╔══╝   ██║   ██║ ██║╚██╗██║    ██║    ╚════██║
    ╚██████╗ ██║      ╚██████╔╝ ██║ ╚████║    ██║    ███████║
     ╚═════╝ ╚═╝       ╚═════╝  ╚═╝  ╚═══╝    ╚═╝    ╚══════╝

cfont styles

api example

crates badge crates docs tests build status npm cfonts Coverage Status

这是一个用于控制台性感 ANSI 字体的简单命令行工具。 给你的 CLI 些爱。

实现

Rust

Rust 文件夹 中了解更多。

Nodejs

Nodejs 文件夹 中了解更多。

安装

Rust

homebrew

brew install cfonts

Arch 用户仓库

yay -S cfonts

Fedora

sudo dnf install cfonts

NixOS

nix-env -iA nixos.cfonts

MacPorts

sudo port install cfonts

cargo

cargo install cfonts

NodeJs

npm

npm i cfonts -g

yarn

yarn global add cfonts

用法

使用 CLI 很简单。

Usage: cfonts  "<value>" [option1] <input1> [option2] <input1>,<input2> [option3] etc...

在任何时候,你都可以运行 help 命令来获取所有命令的完整列表以及如何使用它们。

$ cfonts --help

支持的字符

A P 4 $
B Q 5 %
C R 6 &
D S 7 (
E T 8 )
F U 9 /
G V ! :
H W ? ;
I X . ,
J Y + '
K Z - "
L 0 _ (空格)
M 1 =
N 2 @
O 3 #

字符 | 将被替换为换行符

选项

-h, --help

类型: <command>
默认值: none

这显示了所有可用选项的列表。

$ cfonts --help

Help command

-V, --version

类型: <command>
默认值: none

这显示了已安装的版本。

$ cfonts --version

Version command

text

类型: <string>
默认值: ""

这是要转换为美好字体的 "文本输入"。
字符 | 将会被替换为换行。

$ cfonts "Hello world"

Text command

-f, --font

类型: <string>
默认值: "block"

这是您希望使用的字体样式。目前此插件附带以下字体样式

$ cfonts "text" --font "chrome"

Font command

  • block [颜色:2] (默认) block 字体样式
  • slick [颜色:2] slick 字体样式
  • tiny [颜色:1] tiny 字体样式
  • grid [颜色:2] grid 字体样式
  • pallet [颜色:2] pallet 字体样式
  • shade [颜色:2] shade 字体样式
  • chrome [颜色:3] chrome 字体样式
  • simple [颜色:1] simple 字体样式
  • simpleBlock [颜色:1] simple-block 字体样式
  • 3d [颜色:2] 3d 字体样式
  • simple3d [颜色:1] simple-3d 字体样式
  • huge [颜色:2] huge 字体样式
  • console [颜色:1] console 字体样式

-a, --align

类型: <string>
默认值: "left"

您可以使用此选项在终端中对齐文本。使用以下关键词

  • left (默认)
  • center
  • right
  • top (与无空格选项一起使用时将被忽略)
  • bottom (与无空格选项一起使用时将被忽略)
$ cfonts "text" --align "center"

Align command

-c, --colors

类型: <字符串列表>
默认值: ['system']

使用此设置,您可以设置字体颜色。使用以下颜色字符串或十六进制颜色。
以逗号分隔的字符串提供颜色,例如:red,blue(无空格)
如果您使用十六进制颜色,请确保包含前缀 #(在大多数终端中,请在十六进制颜色周围加引号)
system 颜色默认为终端的系统颜色。

💡 有可以影响终端中颜色显示的 环境变量

  • system (默认)
  • black
  • red
  • green
  • yellow
  • blue
  • magenta
  • cyan
  • white
  • gray
  • redBright
  • greenBright
  • yellowBright
  • blueBright
  • magentaBright
  • cyanBright
  • whiteBright
  • #ff8800 (任何有效的十六进制颜色)
  • #f80 (也支持简写形式)
$ cfonts "text" --colors white,"#f80"

Colors command

-g, --gradient

类型: <字符串列表>
默认值: false

使用此设置,您可以在输出上设置渐变。
此设置将覆盖颜色选项。
渐变需要两种颜色,从左到右的起始颜色和结束颜色。
(如果您想为渐变设置自己的颜色,请使用 过渡 选项。)
cfonts 将生成一个渐变,通过尽可能多的颜色,以使输出最为引人注目。
以逗号分隔的字符串提供两种颜色,例如:red,blue(无空格)
如果您使用十六进制颜色,请确保包含前缀 #(在终端中,请在十六进制颜色周围加引号)

  • black
  • red
  • green
  • yellow
  • blue
  • magenta
  • cyan
  • white
  • gray
  • grey
  • #ff8800 (任何有效的十六进制颜色)
  • #f80 (也支持简写形式)
$ cfonts "text" --gradient red,"#f80"

Gradient command

-i, --independent-gradient

类型: <boolean>
默认值: false

将此选项设置为针对每行重新计算渐变颜色。
仅与 渐变 选项一起使用。

$ cfonts "text|next line" --gradient red,"#f80" --independent-gradient

Independent gradient command

-t, --transition-gradient

类型: <boolean>
默认值: false

将此选项设置为生成自己的渐变。渐变选项中设置的每个颜色将直接过渡。此选项允许您为渐变指定更多颜色。
仅与 渐变 选项一起使用。

$ cfonts "text" --gradient red,"#f80",green,blue --transition-gradient

Independent gradient command

-b, --background

类型: <string>
默认值: "transparent"

使用此设置,您可以设置输出的背景颜色。使用以下颜色字符串。提供以下支持的列表中的背景颜色,例如:'white'

  • transparent (默认)
  • black
  • red
  • green
  • yellow
  • blue
  • magenta
  • cyan
  • white
  • blackBright
  • redBright
  • greenBright
  • yellowBright
  • blueBright
  • magentaBright
  • cyanBright
  • whiteBright
  • #ff8800 (任何有效的十六进制颜色)
  • #f80 (也支持简写形式)
$ cfonts "text" --background "Green"

Background command

-l, --letter-spacing

类型: <integer>
默认值: 1

将此选项设置为扩大字符间距。

$ cfonts "text" --letter-spacing 2

Letter spacing command

-z, --line-height

类型: <integer>
默认值: 1

将此选项设置为扩大行间距。

$ cfonts "text" --line-height 2

Line height command

-s, --spaceless

类型: <boolean>
默认值: false

如果您不想插件在输出顶部和底部插入两个空行,请将此选项设置为false。

$ cfonts "text" --spaceless

Spaceless command

-m, --max-length

类型: <integer>
默认值: 0

此选项设置一行中要打印的最大字符数。
cfonts会检测您的终端大小,但您可以选择退出并自行确定最大宽度。
0表示没有最大宽度,文本将在终端窗口的边缘断行。

$ cfonts "text" --max-length 15

Max length command

-r, --raw-mode

类型: <boolean>
默认值: false

将此选项设置为使cfonts使用CRLF (\r\n)而不是默认的LF (\n)进行换行。
这在终端原始模式下或在较旧的Windows计算机上可能很有用。

use crossterm::terminal;
use std::io::Write;
use cfonts;

fn main() -> std::io::Result<()> {
	terminal::enable_raw_mode()?;

	cfonts::say(cfonts::Options {
		text: String::from("Hello|world"),
		raw_mode: true,
		..cfonts::Options::default()
	});

	std::io::stdout().flush()?;
	terminal::disable_raw_mode()?;
	Ok(())
}

Raw mode command

-e, --env

类型: <string>
默认值: cli

此选项允许您使用cfonts生成HTML而不是ANSI代码。
请注意,max-length将被设置为非常大。

$ cfonts "text" --env browser

Max length command

一致性

cfonts会检测您的平台支持的颜色。它会自动设置一个支持级别。在cfonts中,您可以通过传递FORCE_COLOR环境变量来覆盖此设置。

FORCE_COLOR=3 cfonts "hello world" -c "#0088ff"

您还可以使用NO_COLOR环境变量来为CI等环境设置无颜色输出。

NO_COLOR="" cfonts "hello world" -c "#0088ff"

💡 如果同时设置了FORCE_COLORNO_COLOR,则FORCE_COLOR会覆盖NO_COLOR

Color consistency via env vars

许可证

版权所有 (c) 2023 Dominik Wilkowski。许可协议为GNU GPL-3.0-or-later

依赖关系

~2–15MB
~154K SLoC