ansispan
Version:
Change your ANSI color codes into HTML `<span>`s
46 lines (38 loc) • 1.08 kB
JavaScript
var ansispan = function (str) {
Object.keys(ansispan.foregroundColors).forEach(function (ansi) {
var span = '<span style="color: ' + ansispan.foregroundColors[ansi] + '">';
//
// `\033[Xm` == `\033[0;Xm` sets foreground color to `X`.
//
str = str.replace(
new RegExp('\033\\[' + ansi + 'm', 'g'),
span
).replace(
new RegExp('\033\\[0;' + ansi + 'm', 'g'),
span
);
});
//
// `\033[1m` enables bold font, `\033[22m` disables it
//
str = str.replace(/\033\[1m/g, '<b>').replace(/\033\[22m/g, '</b>');
//
// `\033[3m` enables italics font, `\033[23m` disables it
//
str = str.replace(/\033\[3m/g, '<i>').replace(/\033\[23m/g, '</i>');
str = str.replace(/\033\[m/g, '</span>');
str = str.replace(/\033\[0m/g, '</span>');
return str.replace(/\033\[39m/g, '</span>');
};
ansispan.foregroundColors = {
'30': 'black',
'31': 'red',
'32': 'green',
'33': 'yellow',
'35': 'purple',
'36': 'cyan',
'37': 'white'
};
if (typeof module !== 'undefined' && module.exports) {
module.exports = ansispan;
}