专栏首页青笔原创nodejs 打印五彩斑斓的"黑"

nodejs 打印五彩斑斓的"黑"

前言

笔者上一篇博客 《如何在命令行中显示五彩斑斓的“黑”》,讲到了任何编程都可以在命令行终端打印彩色字体和彩色背景的文字,以及一些简单文本格式(粗体,下划线,闪烁,反转背景色,隐藏),并给出了 python 语言的实现。为了让前端开发的同学也能快速使用这一功能,在自己的项目中输出漂亮的日志,笔者用 js 重写了一遍,并发布到 github 和 npm 。读者可以到 github 查看源码,项目地址:https://github.com/kenblikylee/colorconsole,也可以直接 npm 安装使用。

关于实现原理,可以参考 《如何在命令行中显示五彩斑斓的“黑”》 。下面将直接介绍 colorconsole 的使用。

1. 安装

本来是直接使用 colorconsole 作为包名的,但是在 publish 时,提示与已有库名称相似。对!是相似,不是重名,但实际搜索包 colorconsole 并没有找到相关的包。无奈,官方说不能用就不能用,因此,只能加上一个 scope 前缀 @kenworks

npm install --save-dev @kenworks/colorconsole

2. 使用

亲测,浏览器环境的控制台不支持ANSI转义序列,因此只能在 nodejs 环境使用。

var colorconsole = require('@kenworks/colorconsole')

colorconsole 提供三个函数:

colorconsole.log(text, color, bgcolor, effect)

在命令行终端打印彩色文本。

  • text: 要打印的文本
  • color: 文本字体颜色,颜色字符串或 0~255 整数
  • bgcolor: 文本背景颜色,颜色字符串或 0~255 整数
  • effect: 文本“特效”,仅支持 5 种,'bold'(粗体), 'underline' (下划线)), 'blink' (闪烁), 'reverse' (背景色反转), 'hide' (隐藏)

使用字符串指定颜色仅支持 8 种:

字符串

颜色

'black'

'red'

'green'

绿

'yellow'

'blue'

'magenta'

品红

'cyan'

'white'

colorconsole.text(text, color, bgcolor, effect)

返回带 ANSI转义序列 的字符串,再使用 console.log 打印该字符串,即可看到彩色的日志输出。事实上 colorconsole.log() 就是这样做的,它们的参数定义也是完全一样的,因此可直接参考 colorconsole.log() 的参数使用。

colorconsole.plate()

在命令行终端显示 256 种颜色和颜色对应的数值,相当于一个调色板功能。这 256 个颜色数值对应 colorconsole.log()colorconsole.text() 整数颜色取值,因此,可以把 colorconsole.plate() 看作是一个调色板,通过它来指定喜欢的颜色。

示例1 :colorconsole.log() 与 colorconsole.text

复制下面的代码到文件 test.js:

var colorconsole = require('@kenworks/colorconsole')

colorconsole.log('hello world!', 'red', null, 'bold')

colorconsole.log('hello world!', 'green', null, 'underline')

colorconsole.log('hello world!', 'blue', null, 'blink')

colorconsole.log('hello world!', 'magenta', null, 'hide')

colorconsole.log('hello world!', 'yellow', null, 'reverse')

colorconsole.log('hello world!', 'magenta', 'cyan')

colorconsole.log('hello world!', 228, null, 'blink')

colorconsole.log('hello world!', 9, 228, 'blink')

colorconsole.log('hello world!', null, null, 'reverse')

colorconsole.log('hello world!', 300, 600)

colorconsole.log('hello world!', 100)

colorconsole.log('hello world!', null, 100)

colorconsole.log('hello world!', 200, 300, 'blink', 'I\'m %s!', 'ken')

console.log(colorconsole.text('hello world!', 100, null, 'bold'), 'I\'m ken!')

终端运行:

node test.js

示例2 :colorconsole.plate() 显示调色板

var colorconsole = require('@kenworks/colorconsole')

colorconsole.plate()

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 那些年删过的库,跑过的路,你从中找到解决方法了吗?

    导读:本文我们盘点了往年发生的一些删库事件,我们该如何做到更好地预防和处理删库实践呢?

    数据和云
  • Python爬虫-萌妹子图片

    最近发现一个可以看图的地方,一张张翻有点累,毕竟只有一只手(难道鼠标还能两只手翻?)。能不能下到电脑上看呢,毕竟不用等网速,还可以预览多张,总之很方便,想怎么就...

    用户6362579
  • 增强学习Q-learning分析与演示(入门)

    https://github.com/MorvanZhou/Reinforcement-learning-with-tensorflow/blob/master...

    嘘、小点声
  • 个人渗透测试思路(cheatsheets)及技巧全汇总

    大多数渗透人员在对一个系统做渗透测试的时候,最大的痛点是无法获得一个全面的测试思路和流程,以至于遗漏真正存在的漏洞或在不存在漏洞的点上浪费太多时间。

    Jayway
  • 当我用了这些 Chrome 扩展插件,突然多出了好多时间!

    使用浏览器扩展程序可以使你的工作效率提高数倍不止,那么下面我就向大家分享一下我日常使用的扩展,可能大多数扩展大家都已经在使用了,不过也难免有一两个是你不知道的。

    Rocky0429
  • 【Rust日报】2019-09-26 Rust 1.38 发布

    Read More: https://blog.rust-lang.org/2019/09/26/Rust-1.38.0.html

    MikeLoveRust
  • 使用公钥访问码云

    命令:ssh-keygen -t rsa -C "youremail@youremail.com" 例如:ssh-keygen -t rsa -C "wanw...

    用户6362579
  • 一百款wordpress经典主题盘点,找主题不发愁

    一百款wordpress经典主题盘点,找主题不发愁,wordpress有哪些经典的主题,今天给大家盘点一些wordpress经典的主题吧,将会用连载的形式,每次...

    wordpress建站吧
  • 从青铜到王者10个css3伪类使用技巧和运用

    伪类经常与伪元素混淆,伪元素的效果类似于通过添加一个实际的元素才能达到,而伪类的效果类似于通过添加一个实际的类来达到。实际上css3为了区分两者,已经明确规定了...

    Nealyang
  • 【Rust日报】 2019-09-28 Yew v0.9发布

    Amethyst-imgui提供包imgui-rs在Amethyst游戏引擎中的集成。

    MikeLoveRust

扫码关注云+社区

领取腾讯云代金券