Set ansi colors in strings using XML and chalk
npm install chalker[![NPM version][npm-image]][npm-url] [![Build Status][travis-image]][travis-url]
[![Dependency Status][daviddm-image]][daviddm-url] [![devDependency Status][daviddm-dev-image]][daviddm-dev-url]
Set ansi colors in strings using <> markers and [chalk].
``js
const chalker = require("chalker");
console.log(chalker("
// with template string tagging
console.log(chalker);`
A typical use case is to easily manage colors for logs that could go to console or log servers.
`js
const msg = ;
// 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));
`
``
npm i --save chalker
![demo][demo]
- Color markers has the format. You can use any valid methods [chalk] supports.
- For example, will colorize blue bold text with chalk.blue.bold.>
- Closing marker can be simply
- The following HTML entities escapes are supported:
| Entity | Character | Entity | Character |
| -------- | --------- | -------- | ------------------ |
| < | < | > | > |&
| | & | | non-breaking space |'
| | ' | © | © |"
| | " | ® | ® |
- HTML escape using code points also works:
- Hex - hhhh; where hhhh is the Hex code point.nnnn;
- Decimal - where nnnn is the Decimal code point.
- ie: makes 👩
#### Advanced Chalk Colors
[Chalk advanced colors] can be applied with:
| [chalk] API | chalker marker | [chalk] API | chalker marker |
| --------------- | --------------------------------------------- | ----------------- | ---------------------------------------------------- |
| chalk.rgb | <(255, 10, 20)>, | chalk.bgRgb | , |chalk.hex
| | <#FF0000>, | chalk.bgHex | , |chalk.keyword
| | , <(orange)>, | chalk.bgKeyword | , , |chalk.hsl
| | | chalk.bgHsl | |chalk.hsv
| | | chalk.bgHsv | |chalk.hwb
| | | chalk.bgHwb | |
##### More details
- a marker is tried with chalk.keyword if:
- it's not detected as hex value
- it doesn't contain params enclosed in ()chalk
- it's not found as a basic color that supports
- for example, this is a chalk color keyword: "bg-"
- If it's prefixed with then it's tried using chalk.bgKeyword
- 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)>
`js`
chalker(str, [chalkInstance]);
- str - String with chalker color markerschalkInstance
- - Optional custom instance of [chalk].new chalk.constructor({level: 2})
- ie: created from
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.
`js`
chalker.remove(str, keepHtml);
- str - String with chalker color markerskeepHtml
- - 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
`js`
chalker.decodeHtml(str);
- str` - String to decode HTML entities
Returns: String with HTML entities escapes decoded
Copyright (c) 2019-present, Joel Chen
Licensed under the Apache License, Version 2.0.
---
[demo]: ./images/demo.png
[chalk]: https://www.npmjs.com/package/chalk
[chalk advanced colors]: https://github.com/chalk/chalk#256-and-truecolor-color-support
[travis-image]: https://travis-ci.org/jchip/chalker.svg?branch=master
[travis-url]: https://travis-ci.org/jchip/chalker
[npm-image]: https://badge.fury.io/js/chalker.svg
[npm-url]: https://npmjs.org/package/chalker
[daviddm-image]: https://david-dm.org/jchip/chalker/status.svg
[daviddm-url]: https://david-dm.org/jchip/chalker
[daviddm-dev-image]: https://david-dm.org/jchip/chalker/dev-status.svg
[daviddm-dev-url]: https://david-dm.org/jchip/chalker?type=dev