1.2.0 • Published 5 years ago

chalker v1.2.0

Weekly downloads
543
License
Apache-2.0
Repository
github
Last release
5 years ago

NPM version Build Status Dependency Status devDependency Status

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

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 colorize blue bold text with chalk.blue.bold.
    • Closing marker can be simply </>
  • The following HTML entities escapes are supported:

    EntityCharacterEntityCharacter
    &lt;<&gt;>
    &amp;&&nbsp;non-breaking space
    &apos;'&copy;©
    &quot;"&reg;®
  • HTML escape using code points also works:

    • Hex - &#xhhhh; where hhhh is the Hex code point.
    • Decimal - &#nnnn; where nnnn is the Decimal code point.
    • ie: &#xD83D;&#xDC69; makes 👩

Advanced Chalk Colors

Chalk advanced colors can be applied with:

chalk APIchalker markerchalk APIchalker 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 using chalk.bgKeyword

      • ie: <bg-orange>
  • All markers can be comined with . in any order as long as they work with chalk

    • ie: <#FF0000.bg#0000FF.bg-orange.keyword(red)>

APIs

chalker

chalker(str, [chalkInstance]);
  • str - String with chalker color markers
  • chalkInstance - Optional custom instance of chalk.
    • ie: created from new chalk.constructor({level: 2})

Returns: A string with terminal/ansi color codes

If chalk.supportsColor is false, then it will simply remove the <> markers and decode HTML entities only.

chalker.remove

chalker.remove(str, keepHtml);
  • str - String with chalker color markers
  • keepHtml - If true, 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.