用法
唯一写法:@clicolor.<链首常量>.<链>.text(文本),看示例直接抄。
链首取实际存在的最前一项:有前景用前景色,没有前景用背景色,两色皆无才用 default(纯修饰、运行期色值)。固定顺序 前景 > 背景 > 修饰。链步零参方法带括号(moonbit 语言规则),带参的只有 hex / bg_hex,收尾永远 text。
前景
moonbit
@clicolor.red.text("失败")
@clicolor.blue.underline().inverse().text("锁定")前景 > 背景
moonbit
@clicolor.red.bg_blue().text("失败")前景 > 背景 > 修饰
moonbit
@clicolor.red.bg_blue().bold().text("失败")
@clicolor.green.bold().underline().text("成功")纯背景、纯修饰、运行期色值:default 起步
moonbit
@clicolor.bg_black.text("深色底") // 无前景,背景常量直接起步
@clicolor.default.bold().text("加强")
@clicolor.default.hex(c).text(t) // 色值运行期才确定时常量一览
- 前景:
black到white与bright_*一套十六个 - 背景:
bg_black到bg_bright_white同样一套 - 修饰:
bolditalicunderlineinversestrikethrough - 预设:
error(bold+red)warnokinfodim - 起步兜底:
default
便捷常量起步与复用
moonbit
let label = @clicolor.bold.cyan() // 样式是值,可存可传
println(label.text("[标签]") + label.underline().text("复用"))真彩色
接受 #RGB 与 #RRGGBB,坏值渲染时按黑色降级,不因坏值中断:
moonbit
@clicolor.hex("#FFA500").bold().text("真彩橙")
@clicolor.blue.bg_hex("#101010").text("深底")OSC 8 超链接
moonbit
@clicolor.cyan.underline().text(@clicolor.hyperlink("https://mooncakes.io", "打开 mooncakes"))输出开关
不做 TTY 与 NO_COLOR 自动探测,库是纯函数,判定归调用方:
moonbit
let prev = @clicolor.set_enabled(false) // 返回旧值,方便恢复
print(@clicolor.red.text("管道输出,原样返回"))
@clicolor.set_enabled(prev)
@clicolor.is_enabled()关闭后所有 text 原样返回文本,一字节转义不输出。