前言
我们都知道,在nodejs环境下使用普通的console.log,console.error,console.info输出都是不会有颜色的,如果你不知道,那你现在知道啦"color: #ff0000">chalk使用方法
基本用法
const chalk = require('chalk') console.log(chalk.red.bold.bgWhite('Leo\'s Blog'))
上面代码执行的结果如下,Leo's Blog 加粗,字体颜色是红色,背景颜色是白色。
注意:背景颜色要在 bg 后面加上具体的颜色,颜色的第一个字母大写。
在 HTML 中支持 RGB 颜色,在这里同样支持,而且是支持所有 HTML 中支持的颜色,如十六进制颜色。这里仅仅说明十六进制颜色。
下面的代码会和上面的代码实现相同的效果。
const chalk = require('chalk') console.log(chalk.rgb(255,0,0).bold.bgRgb(255,255,255)('Leo\'s Blog'))
使用模板
该模块有一个很方便的用法就是支持模板输出,也就是说,不管在字符串中的哪个位置想改变输出的颜色,都是可以的。
const chalk = require('chalk') console.log(chalk`{red.bold.bgWhite Leo\'s Blog}`)
当然,也可以使用 RGB 颜色值。
const chalk = require('chalk') console.log(chalk`{rgb(255,0,0).bold.bgRgb(255,255,255) Leo\'s Blog}`)
常见形式
我们经常看到的警告、错误提示就是这么来的
const chalk = require('chalk') const error = chalk.bold.red; const warning = chalk.keyword('orange') console.log(error('Error!')) console.log(warning('Warning!'))
常用API
样式
- reset - 样式重置
- bold - 加粗
- dim - 浅高亮
- italic - 斜体
- underline - 下划线
- inverse- 反转前景和背景色
- hidden - 隐藏内容
- strikethrough - 删除线
- visible- 显示chalk level > 0 的内容
前景色关键字(非全支持)
- black
- red
- green
- yellow
- blue
- magenta
- cyan
- white
- blackBright (alias: gray, grey)
- redBright
- greenBright
- yellowBright
- blueBright
- magentaBright
- cyanBright
- whiteBright
背景色关键字(非全支持)
- bgBlack
- bgRed
- bgGreen
- bgYellow
- bgBlue
- bgMagenta
- bgCyan
- bgWhite
- bgBlackBright (alias: bgGray, bgGrey)
- bgRedBright
- bgGreenBright
- bgYellowBright
- bgBlueBright
- bgMagentaBright
- bgCyanBright
- bgWhiteBright
更多API可以看看官方文档。
chalk让控制台输出样式多变的原理
其原理最重要的一个知识点就是ANSI Escape code.
ASCII编码中有些字符是不能用来在终端中打印显示的,比如'\a' 0x7代表响铃,'\n' 0x0A代表换行,这些字符被称为控制符。
而其中的一个控制符 '\e' 0x1B比较特殊,这个字符代表 ESC ,即键盘上 ESC 按键的作用。ESC 是单词 escape 的缩写,即逃逸的意思。文本中出现这个控制符,表示接下来的字符是ANSI Escape code编码。
而ANSI Escape code编码中有专门控制字符颜色的控制符,例如:\e[31;44;4;1m
其意义如下:
- \e 代表开始ANSI Escape code
- [ 代表转义序列开始符 CSI,Control Sequence Introducer
- 31;44;4;1 代表以; 分隔的文本样式控制符,其中 31 代表文本前景色为红色,44代表背景为蓝色,4代表下划线,1代表加粗
- m 代表结束控制符序列
我们可以在终端中输入如下命令:
echo -e "\e[37;44;4;1mLEO\e[0m"
会有如下输出,带下划线的LEO字样:
因为 \e 控制符的16进制码为 0x1B , 8 进制码为 033 ,也可以用以下写法达到同样效果:
echo -e "\e[37;44;4;1mLEO\e[0m" echo -e "\x1b[37;44;4;1mLEO\x1b[0m" echo -e "\x1B[37;44;4;1mLEO\x1B[0m" echo -e "\033[37;44;4;1mLEO\033[0m"
通过维基百科,我查到有以下参数控制符:
代码
作用
备注
0
重置/正常
关闭所有属性。
1
粗体或增加强度
2
弱化(降低强度)
未广泛支持。
3
斜体
未广泛支持。有时视为反相显示。
4
下划线
5
缓慢闪烁
低于每分钟150次。
6
快速闪烁
MS-DOS ANSI.SYS;每分钟150以上;未广泛支持。
7
反显
前景色与背景色交换。
8
隐藏
未广泛支持。
9
划除
字符清晰,但标记为删除。未广泛支持。
10
主要(默认)字体
11–19
替代字体
选择替代字体{\displaystyle n-10}{\displaystyle n-10}。
20
尖角体
几乎无支持。
21
关闭粗体或双下划线
关闭粗体未广泛支持;双下划线几乎无支持。
22
正常颜色或强度
不强不弱。
23
非斜体、非尖角体
24
关闭下划线
去掉单双下划线。
25
关闭闪烁
27
关闭反显
28
关闭隐藏
29
关闭划除
30–37
设置前景色
参见下面的颜色表。
38
设置前景色
下一个参数是5;n或2;r;g;b,见下。
39
默认前景色
由具体实现定义(按照标准)。
40–47
设置背景色
参见下面的颜色表。
48
设置背景色
下一个参数是5;n或2;r;g;b,见下。
49
默认背景色
由具体实现定义(按照标准)。
51
Framed
52
Encircled
53
上划线
54
Not framed or encircled
55
关闭上划线
60
表意文字下划线或右边线
几乎无支持。
61
表意文字双下划线或双右边线
62
表意文字上划线或左边线
63
表意文字双上划线或双左边线
64
表意文字着重标志
65
表意文字属性关闭
重置60–64的所有效果。
90–97
设置明亮的前景色
aixterm(非标准)。
100–107
设置明亮的背景色
aixterm(非标准)。
颜色编码表如下:
名称
前景色代码
背景色代码
黑
30
40
红
31
41
绿
32
42
黄
33
43
蓝
34
44
品红
35
45
青
36
46
白
37
47
亮黑(灰)
90
100
亮红
91
101
亮绿
92
102
亮黄
93
103
亮蓝
94
104
亮品红
95
105
亮青
96
106
亮白
97
107
示例:
\e[31m 红色 \e[36;5;1;4m 缓慢闪烁的青色加粗带下划线字体
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对的支持。
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
稳了!魔兽国服回归的3条重磅消息!官宣时间再确认!
昨天有一位朋友在大神群里分享,自己亚服账号被封号之后居然弹出了国服的封号信息对话框。
这里面让他访问的是一个国服的战网网址,com.cn和后面的zh都非常明白地表明这就是国服战网。
而他在复制这个网址并且进行登录之后,确实是网易的网址,也就是我们熟悉的停服之后国服发布的暴雪游戏产品运营到期开放退款的说明。这是一件比较奇怪的事情,因为以前都没有出现这样的情况,现在突然提示跳转到国服战网的网址,是不是说明了简体中文客户端已经开始进行更新了呢?
更新日志
- 凤飞飞《我们的主题曲》飞跃制作[正版原抓WAV+CUE]
- 刘嘉亮《亮情歌2》[WAV+CUE][1G]
- 红馆40·谭咏麟《歌者恋歌浓情30年演唱会》3CD[低速原抓WAV+CUE][1.8G]
- 刘纬武《睡眠宝宝竖琴童谣 吉卜力工作室 白噪音安抚》[320K/MP3][193.25MB]
- 【轻音乐】曼托凡尼乐团《精选辑》2CD.1998[FLAC+CUE整轨]
- 邝美云《心中有爱》1989年香港DMIJP版1MTO东芝首版[WAV+CUE]
- 群星《情叹-发烧女声DSD》天籁女声发烧碟[WAV+CUE]
- 刘纬武《睡眠宝宝竖琴童谣 吉卜力工作室 白噪音安抚》[FLAC/分轨][748.03MB]
- 理想混蛋《Origin Sessions》[320K/MP3][37.47MB]
- 公馆青少年《我其实一点都不酷》[320K/MP3][78.78MB]
- 群星《情叹-发烧男声DSD》最值得珍藏的完美男声[WAV+CUE]
- 群星《国韵飘香·贵妃醉酒HQCD黑胶王》2CD[WAV]
- 卫兰《DAUGHTER》【低速原抓WAV+CUE】
- 公馆青少年《我其实一点都不酷》[FLAC/分轨][398.22MB]
- ZWEI《迟暮的花 (Explicit)》[320K/MP3][57.16MB]