chalker v1.2.0
chalker
Set ansi colors in strings using <>
markers and chalk.
Usage
const chalker = require("chalker");
console.log(chalker("<red.bgGreen>Red on Green Text</>"));
// with template string tagging
console.log(chalker`<green>hello world</green>`);
A typical use case is to easily manage colors for logs that could go to console or log servers.
const msg = `<red>some error occurred...</red>`;
// log to console for visual with colors
if (!production) console.log(chalker(msg));
// log to log server with colors removed
logger.log(chalker.remove(msg));
Install
npm i --save chalker
Demo
Marker Details
Color markers has the
<red>red text</red>
format. You can use any valid methods chalk supports.- For example,
<blue.bold>blue bold text</blue.bold>
will colorizeblue bold text
withchalk.blue.bold
. - Closing marker can be simply
</>
- For example,
The following HTML entities escapes are supported:
Entity Character Entity Character <
< >
> &
&
non-breaking space '
' ©
© "
" ®
® HTML escape using code points also works:
- Hex -
&#xhhhh;
wherehhhh
is the Hex code point. - Decimal -
&#nnnn;
wherennnn
is the Decimal code point. - ie:
��
makes 👩
- Hex -
Advanced Chalk Colors
Chalk advanced colors can be applied with:
chalk API | chalker marker | chalk API | chalker marker |
---|---|---|---|
chalk.rgb | <(255, 10, 20)> , <rgb(255,10,20)> | chalk.bgRgb | <bg(255, 10, 20)> , <bgRgb(255,10,20)> |
chalk.hex | <#FF0000> , <hex(#FF0000)> | chalk.bgHex | <bg#0000FF> , <bgHex(#0000FF)> |
chalk.keyword | <orange> , <(orange)> , <keyword(orange)> | chalk.bgKeyword | <bg-orange> , <bg(orange)> , <bgKeyword(orange)> |
chalk.hsl | <hsl(32,100,50)> | chalk.bgHsl | <bgHsl(32,100,50)> |
chalk.hsv | <hsv(32,100,100)> | chalk.bgHsv | <bgHsv(32,100,100)> |
chalk.hwb | <hwb(32,0,50)> | chalk.bgHwb | <bgHwb(32,0,50)> |
More details
a marker is tried with
chalk.keyword
if:- it's not detected as hex value
- it doesn't contain params enclosed in
()
- it's not found as a basic color that
chalk
supports - for example, this is a chalk color keyword:
<orange>
If it's prefixed with
"bg-"
then it's tried usingchalk.bgKeyword
- ie:
<bg-orange>
- ie:
All markers can be comined with
.
in any order as long as they work with chalk- ie:
<#FF0000.bg#0000FF.bg-orange.keyword(red)>
- ie:
APIs
chalker
chalker(str, [chalkInstance]);
str
- String with chalker color markerschalkInstance
- Optional custom instance of chalk.- ie: created from
new chalk.constructor({level: 2})
- ie: created from
Returns: A string with terminal/ansi color codes
If
chalk.supportsColor
isfalse
, then it will simply remove the<>
markers and decode HTML entities only.
chalker.remove
chalker.remove(str, keepHtml);
str
- String with chalker color markerskeepHtml
- Iftrue
, then don't decode HTML entity escapes.
Simply remove all chalker markers and return the plain text string, with HTML escapes decoded.
Returns: A plain text string without chalker color markers
chalker.decodeHtml
chalker.decodeHtml(str);
str
- String to decode HTML entities
Returns: String with HTML entities escapes decoded
License
Copyright (c) 2019-present, Joel Chen
Licensed under the Apache License, Version 2.0.