Skip to content

valaxy/shell-color

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

45 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

shell-color

Javascript parse ANSI escape code and render to HTML, for CommonJS package

style

Install

npm install --save shell-color

Constructor

Common parameters

const ShellColor = require('shell-color')

var sc = new ShellColor({
	colorMap: {                       // optional
		white: '#cccccc',
    	black: '#333333'
	},
	defaultBackgroundColor: 'white',  // optional
	defaultForegroundColor: 'black',  // optional
	snippetTag:             'span'    // optional
})

Use Worker

var sc = new ShellColor({
	useWorker: true,
	worker: {
		path: 'node_modules/shell-color/dest/worker.js',
		callback: function() { ... }
	}
})

Usage

sc.on('reset', function() {
	console.log('reset')
})

sc.on('lineStart', function() {
	var startInfo = document.createElement('b')
	startInfo.innerText = 'start:'
	document.body.appendChild(startInfo)
})

sc.on('snippet', function(tag) {
	document.body.appendChild(tag)
})

sc.on('lineEnd', function() {
	var br = document.createElement('br')
	document.body.appendChild(br)
})

sc.reset()
  .write('\x1b[30m black\n\x1b[m\x1b[31m red\nend')

sc.reset()

Create a new stream, before write you must call reset at least once.

sc.write(text)

Push a text to current stream

You can not keep \n in final output, because tag.innerText convert \n to <br>, for example:

var span = document.createElement('span')
span.innerText = '123\n\n456'
assert.equal(span.innerHTML, '123<br><br>567')

sc.on()

sc.on('lineStart', function() { ... })
sc.on('snippet', function(tag) { ... })
sc.on('lineEnd', function() { ... })

ShellColor.strip(text)

var text = '\x1b[30m black \x1b[m\x1b[31m red'
var str = sc.strip(text) // ' black  red'

ShellColor.toBlockTags(text)

var tags = ShellColor.toBlockTags(text)
tags.forEach(function (tag) {
	document.body.appendChild(tag) // <p>...</p>
})

ShellColor.toInlineTags(text)

var tags = ShellColor.toInlineTags(text)
tags.forEach(function (tag) {
	document.body.appendChild(tag) // <span>...</span> or <br>
})

ChangeLog

  • 1.1.0 Add web worker support
  • 2.0.0 Build change to webpack

Reference

About

Javascript to parse ANSI escape code and render to HTML

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published