Show More
@@ -284,11 +284,19 b' define([' | |||||
284 | function ansispan(str) { |
|
284 | function ansispan(str) { | |
285 | // ansispan function adapted from github.com/mmalecki/ansispan (MIT License) |
|
285 | // ansispan function adapted from github.com/mmalecki/ansispan (MIT License) | |
286 | // regular ansi escapes (using the table above) |
|
286 | // regular ansi escapes (using the table above) | |
|
287 | var is_open = false | |||
287 | return str.replace(/\033\[(0?[01]|22|39)?([;\d]+)?m/g, function(match, prefix, pattern) { |
|
288 | return str.replace(/\033\[(0?[01]|22|39)?([;\d]+)?m/g, function(match, prefix, pattern) { | |
288 | if (!pattern) { |
|
289 | if (!pattern) { | |
289 | // [(01|22|39|)m close spans |
|
290 | // [(01|22|39|)m close spans | |
|
291 | if (is_open) { | |||
|
292 | is_open = false; | |||
290 | return "</span>"; |
|
293 | return "</span>"; | |
|
294 | } else { | |||
|
295 | return ""; | |||
291 | } |
|
296 | } | |
|
297 | } else { | |||
|
298 | is_open = true; | |||
|
299 | ||||
292 | // consume sequence of color escapes |
|
300 | // consume sequence of color escapes | |
293 | var numbers = pattern.match(/\d+/g); |
|
301 | var numbers = pattern.match(/\d+/g); | |
294 | var attrs = {}; |
|
302 | var attrs = {}; | |
@@ -302,6 +310,7 b' define([' | |||||
302 | span = span + " " + attr + '="' + attrs[attr] + '"'; |
|
310 | span = span + " " + attr + '="' + attrs[attr] + '"'; | |
303 | } |
|
311 | } | |
304 | return span + ">"; |
|
312 | return span + ">"; | |
|
313 | } | |||
305 | }); |
|
314 | }); | |
306 | }; |
|
315 | }; | |
307 |
|
316 |
General Comments 0
You need to be logged in to leave comments.
Login now