- 介绍:使用类似 BBCode 的简单标签处理 JS 字符串以获取 ANSI,无额外装饰和依赖,仅处理字符串。这是 anansi-tags Python 包的 NodeJS 版本,npm 安装命令为
npm i --save anansi-tags
。 基本标签处理:
parseTags
函数可处理基本标签,如console.log(parseTags('[bold]Hello world[/bold]'))
。
颜色处理:
- 可制作彩色文本,前景色用
[red]
等,用/fg
取消,如console.log(parseTags('[red]Hello world[/fg]'))
。 - 可处理背景色,用
[bg_white]
等,用/bg
取消,如console.log(parseTags('[bg_white]Hello world[/bg]'))
。
- 可制作彩色文本,前景色用
- 组合标签:可组合多种标签,如
console.log(parseTags('[yellow bg_green italic]Oh god this is unreadable[/]'))
。 - 超链接处理:支持超链接,只要终端支持,如
console.log(parseTags('[link=https://github.com/3digitdev/anansi-tags]Anansi[/link] is a very simple library!'))
,还可样式化超链接,但link
标签不能与其他类型标签组合。 转换函数:
parseAnsi
函数可将 ANSI 转换为标签,如console.log(parseAnsi('\x1b[1mHello\x1b[22m'))
。stripTags
函数可去除标签,如console.log(stripTags('[bold]Hello[/bold]'))
,可配置是否保留 URL,如console.log(stripTags('[link=www.google.com]A link to Google[/link]', keepUrl=True))
。stripAnsi
函数可去除 ANSI,如console.log(stripAnsi('\x1b[1mHello\x1b[22m'))
,也可配置是否保留 URL。
- 对比与推荐:与
ansi-colors
对比,认为anansi-tags
在复杂格式处理上更易读,推荐使用ansi-colors
处理更复杂需求,如区分216
和217
颜色。还提到添加了一些可能未广泛支持的标签,如blink
等,对链接测试不充分,发现问题可开 issue。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。