.m-code .il { color: #c7cf2f }
.m-console .hll { background-color: #ffffcc }
+.m-console .g-AnsiBackgroundBlack { background-color: #232627 }
+.m-console .g-AnsiBackgroundBlue { background-color: #1d99f3 }
+.m-console .g-AnsiBackgroundBrightBlack { background-color: #7f8c8d }
+.m-console .g-AnsiBackgroundBrightBlue { background-color: #3daee9 }
+.m-console .g-AnsiBackgroundBrightCyan { background-color: #16a085 }
+.m-console .g-AnsiBackgroundBrightGreen { background-color: #1cdc9a }
+.m-console .g-AnsiBackgroundBrightMagenta { background-color: #8e44ad }
+.m-console .g-AnsiBackgroundBrightRed { background-color: #c0392b }
+.m-console .g-AnsiBackgroundBrightWhite { background-color: #ffffff }
+.m-console .g-AnsiBackgroundBrightYellow { background-color: #fdbc4b }
+.m-console .g-AnsiBackgroundCyan { background-color: #1abc9c }
+.m-console .g-AnsiBackgroundDefault { background-color: #fcfcfc }
+.m-console .g-AnsiBackgroundGreen { background-color: #11d116 }
+.m-console .g-AnsiBackgroundMagenta { background-color: #9b59b6 }
+.m-console .g-AnsiBackgroundRed { background-color: #ed1515 }
+.m-console .g-AnsiBackgroundWhite { background-color: #fcfcfc }
+.m-console .g-AnsiBackgroundYellow { background-color: #f67400 }
.m-console .g-AnsiBlack { color: #232627 }
.m-console .g-AnsiBlue { color: #1d99f3 }
.m-console .g-AnsiBrightBlack { color: #7f8c8d; font-weight: bold }
.m-code .il { color: #c7cf2f }
.m-console .hll { background-color: #ffffcc }
+.m-console .g-AnsiBackgroundBlack { background-color: #232627 }
+.m-console .g-AnsiBackgroundBlue { background-color: #1d99f3 }
+.m-console .g-AnsiBackgroundBrightBlack { background-color: #7f8c8d }
+.m-console .g-AnsiBackgroundBrightBlue { background-color: #3daee9 }
+.m-console .g-AnsiBackgroundBrightCyan { background-color: #16a085 }
+.m-console .g-AnsiBackgroundBrightGreen { background-color: #1cdc9a }
+.m-console .g-AnsiBackgroundBrightMagenta { background-color: #8e44ad }
+.m-console .g-AnsiBackgroundBrightRed { background-color: #c0392b }
+.m-console .g-AnsiBackgroundBrightWhite { background-color: #ffffff }
+.m-console .g-AnsiBackgroundBrightYellow { background-color: #fdbc4b }
+.m-console .g-AnsiBackgroundCyan { background-color: #1abc9c }
+.m-console .g-AnsiBackgroundDefault { background-color: #fcfcfc }
+.m-console .g-AnsiBackgroundGreen { background-color: #11d116 }
+.m-console .g-AnsiBackgroundMagenta { background-color: #9b59b6 }
+.m-console .g-AnsiBackgroundRed { background-color: #ed1515 }
+.m-console .g-AnsiBackgroundWhite { background-color: #fcfcfc }
+.m-console .g-AnsiBackgroundYellow { background-color: #f67400 }
.m-console .g-AnsiBlack { color: #232627 }
.m-console .g-AnsiBlue { color: #1d99f3 }
.m-console .g-AnsiBrightBlack { color: #7f8c8d; font-weight: bold }
}
.m-console .hll { background-color: #ffffcc }
+.m-console .g-AnsiBackgroundBlack { background-color: #232627 }
+.m-console .g-AnsiBackgroundBlue { background-color: #1d99f3 }
+.m-console .g-AnsiBackgroundBrightBlack { background-color: #7f8c8d }
+.m-console .g-AnsiBackgroundBrightBlue { background-color: #3daee9 }
+.m-console .g-AnsiBackgroundBrightCyan { background-color: #16a085 }
+.m-console .g-AnsiBackgroundBrightGreen { background-color: #1cdc9a }
+.m-console .g-AnsiBackgroundBrightMagenta { background-color: #8e44ad }
+.m-console .g-AnsiBackgroundBrightRed { background-color: #c0392b }
+.m-console .g-AnsiBackgroundBrightWhite { background-color: #ffffff }
+.m-console .g-AnsiBackgroundBrightYellow { background-color: #fdbc4b }
+.m-console .g-AnsiBackgroundCyan { background-color: #1abc9c }
+.m-console .g-AnsiBackgroundDefault { background-color: #fcfcfc }
+.m-console .g-AnsiBackgroundGreen { background-color: #11d116 }
+.m-console .g-AnsiBackgroundMagenta { background-color: #9b59b6 }
+.m-console .g-AnsiBackgroundRed { background-color: #ed1515 }
+.m-console .g-AnsiBackgroundWhite { background-color: #fcfcfc }
+.m-console .g-AnsiBackgroundYellow { background-color: #f67400 }
.m-console .g-AnsiBlack { color: #232627 }
.m-console .g-AnsiBlue { color: #1d99f3 }
.m-console .g-AnsiBrightBlack { color: #7f8c8d; font-weight: bold }
}
.m-console .hll { background-color: #ffffcc }
+.m-console .g-AnsiBackgroundBlack { background-color: #232627 }
+.m-console .g-AnsiBackgroundBlue { background-color: #1d99f3 }
+.m-console .g-AnsiBackgroundBrightBlack { background-color: #7f8c8d }
+.m-console .g-AnsiBackgroundBrightBlue { background-color: #3daee9 }
+.m-console .g-AnsiBackgroundBrightCyan { background-color: #16a085 }
+.m-console .g-AnsiBackgroundBrightGreen { background-color: #1cdc9a }
+.m-console .g-AnsiBackgroundBrightMagenta { background-color: #8e44ad }
+.m-console .g-AnsiBackgroundBrightRed { background-color: #c0392b }
+.m-console .g-AnsiBackgroundBrightWhite { background-color: #ffffff }
+.m-console .g-AnsiBackgroundBrightYellow { background-color: #fdbc4b }
+.m-console .g-AnsiBackgroundCyan { background-color: #1abc9c }
+.m-console .g-AnsiBackgroundDefault { background-color: #fcfcfc }
+.m-console .g-AnsiBackgroundGreen { background-color: #11d116 }
+.m-console .g-AnsiBackgroundMagenta { background-color: #9b59b6 }
+.m-console .g-AnsiBackgroundRed { background-color: #ed1515 }
+.m-console .g-AnsiBackgroundWhite { background-color: #fcfcfc }
+.m-console .g-AnsiBackgroundYellow { background-color: #f67400 }
.m-console .g-AnsiBlack { color: #232627 }
.m-console .g-AnsiBlue { color: #1d99f3 }
.m-console .g-AnsiBrightBlack { color: #7f8c8d; font-weight: bold }
.m-console .hll { background-color: #ffffcc }
+.m-console .g-AnsiBackgroundBlack { background-color: #232627 } /* Generic.AnsiBackgroundBlack */
+.m-console .g-AnsiBackgroundBlue { background-color: #1d99f3 } /* Generic.AnsiBackgroundBlue */
+.m-console .g-AnsiBackgroundBrightBlack { background-color: #7f8c8d } /* Generic.AnsiBackgroundBrightBlack */
+.m-console .g-AnsiBackgroundBrightBlue { background-color: #3daee9 } /* Generic.AnsiBackgroundBrightBlue */
+.m-console .g-AnsiBackgroundBrightCyan { background-color: #16a085 } /* Generic.AnsiBackgroundBrightCyan */
+.m-console .g-AnsiBackgroundBrightGreen { background-color: #1cdc9a } /* Generic.AnsiBackgroundBrightGreen */
+.m-console .g-AnsiBackgroundBrightMagenta { background-color: #8e44ad } /* Generic.AnsiBackgroundBrightMagenta */
+.m-console .g-AnsiBackgroundBrightRed { background-color: #c0392b } /* Generic.AnsiBackgroundBrightRed */
+.m-console .g-AnsiBackgroundBrightWhite { background-color: #ffffff } /* Generic.AnsiBackgroundBrightWhite */
+.m-console .g-AnsiBackgroundBrightYellow { background-color: #fdbc4b } /* Generic.AnsiBackgroundBrightYellow */
+.m-console .g-AnsiBackgroundCyan { background-color: #1abc9c } /* Generic.AnsiBackgroundCyan */
+.m-console .g-AnsiBackgroundDefault { background-color: #fcfcfc } /* Generic.AnsiBackgroundDefault */
+.m-console .g-AnsiBackgroundGreen { background-color: #11d116 } /* Generic.AnsiBackgroundGreen */
+.m-console .g-AnsiBackgroundMagenta { background-color: #9b59b6 } /* Generic.AnsiBackgroundMagenta */
+.m-console .g-AnsiBackgroundRed { background-color: #ed1515 } /* Generic.AnsiBackgroundRed */
+.m-console .g-AnsiBackgroundWhite { background-color: #fcfcfc } /* Generic.AnsiBackgroundWhite */
+.m-console .g-AnsiBackgroundYellow { background-color: #f67400 } /* Generic.AnsiBackgroundYellow */
.m-console .g-AnsiBlack { color: #232627 } /* Generic.AnsiBlack */
.m-console .g-AnsiBlue { color: #1d99f3 } /* Generic.AnsiBlue */
.m-console .g-AnsiBrightBlack { color: #7f8c8d; font-weight: bold } /* Generic.AnsiBrightBlack */
:code: ansi
:class: m-nopad
-Apart from the basic color set there's also a very rudimentary support for
-24bit colors using the ``\033[{?};2;{r};{g};{b}m`` color sequence --- currently
-either just the foreground (the ``\033[38;2;`` prefix) or foreground
-immediately followed by background color specification (the
-``\033[48;2;`` prefix):
+There's support for the basic foreground and background color sets, 256 palette
+colors using the ``\033[38;5;{p}m`` or ``\033[48;5;{p}m`` color sequences,
+and 24bit colors using the ``\033[38;2;{r};{g};{b}m`` and
+``\033[48;2;{r};{g};{b}m`` color sequences. The non-bright basic foreground
+colors can be independently brightened using the ``\033[1m`` color sequence:
.. include:: math-and-code-console-colors.ansi
:code: ansi
# This file is part of m.css.
#
# Copyright © 2017, 2018, 2019, 2020 Vladimír Vondruš <mosra@centrum.cz>
+# Copyright © 2020 Blair Conrad <blair@blairconrad.com>
#
# Permission is hereby granted, free of charge, to any person obtaining a
# copy of this software and associated documentation files (the "Software"),
from pygments.formatters import HtmlFormatter
from pygments.token import *
+# Support ANSI SGR codes in input, styling the output.
+# Code definitions are taken from
+# http://man7.org/linux/man-pages/man4/console_codes.4.html, which
+# appears in part below, in case it disappears:
+#
+# ECMA-48 Set Graphics Rendition
+#
+# The ECMA-48 SGR sequence ESC [ parameters m sets display attributes.
+# Several attributes can be set in the same sequence, separated by
+# semicolons. An empty parameter (between semicolons or string
+# initiator or terminator) is interpreted as a zero.
+# param result
+# 0 reset all attributes to their defaults
+# 1 set bold
+# 2 set half-bright (simulated with color on a color display)
+# 4 set underscore (simulated with color on a color display)
+# (the colors used to simulate dim or underline are set
+# using ESC ] ...)
+# 5 set blink
+# 7 set reverse video
+# 10 reset selected mapping, display control flag, and toggle
+# meta flag (ECMA-48 says "primary font").
+# 11 select null mapping, set display control flag, reset
+# toggle meta flag (ECMA-48 says "first alternate font").
+# 12 select null mapping, set display control flag, set toggle
+# meta flag (ECMA-48 says "second alternate font"). The
+# toggle meta flag causes the high bit of a byte to be
+# toggled before the mapping table translation is done.
+# 21 set underline; before Linux 4.17, this value set normal
+# intensity (as is done in many other terminals)
+# 22 set normal intensity
+# 24 underline off
+# 25 blink off
+# 27 reverse video off
+# 30 set black foreground
+# 31 set red foreground
+# 32 set green foreground
+# 33 set brown foreground
+# 34 set blue foreground
+# 35 set magenta foreground
+# 36 set cyan foreground
+# 37 set white foreground
+# 38 256/24-bit foreground color follows, shoehorned into 16
+# basic colors (before Linux 3.16: set underscore on, set
+# default foreground color)
+# 39 set default foreground color (before Linux 3.16: set
+# underscore off, set default foreground color)
+# 40 set black background
+# 41 set red background
+# 42 set green background
+# 43 set brown background
+# 44 set blue background
+# 45 set magenta background
+# 46 set cyan background
+# 47 set white background
+# 48 256/24-bit background color follows, shoehorned into 8
+# basic colors
+# 49 set default background color
+# 90..97 set foreground to bright versions of 30..37
+# 100..107 set background, same as 40..47 (bright not supported)
+#
+# Commands 38 and 48 require further arguments:
+# ;5;x 256 color: values 0..15 are IBGR (black, red, green,
+# ... white), 16..231 a 6x6x6 color cube, 232..255 a
+# grayscale ramp
+# ;2;r;g;b 24-bit color, r/g/b components are in the range 0..255
+#
+# For historical reasons, all "brown"s above are replaced with "yellow"
+# by m.css.
+#
+# AnsiLexer supports commands 0, 1, 22, 30–39, 40–49, 90–97, and 100–107
+# (ranges inclusive).
+# All other commands will be ignored completely.
+#
+# Foreground colors named Bright* are not affected by the "bright" SGR
+# setting—they will always appear bright, even after command 22 resets the
+# normal intensity. Likewise, they will not affect the "bright" setting—a
+# directive to use Red after BrightGreen will result in Red being displayed,
+# not BrightRed.
+#
+# Palette or RGB Foreground colors from command 38 likewise do not interact
+# with the "bright" setting, nor do any background colors.
class AnsiLexer(RegexLexer):
name = 'Ansi escape lexer'
- def callback(lexer, match):
- bright = match.group(1)
- color = match.group(2)
- text = match.group(3)
+ _sgrs_and_text = '(?P<commands>(\x1b\\[(\\d*;)*\\d*m)+)(?P<text>[^\x1b]*)'
+ _sgr_split = re.compile('m\x1b\\[|;|m|\x1b\\[')
- if int(bright) == 0:
- token = 'Generic.Ansi'
- elif int(bright) == 1:
- token = 'Generic.AnsiBright'
+ _named_colors = [
+ 'Black',
+ 'Red',
+ 'Green',
+ 'Yellow',
+ 'Blue',
+ 'Magenta',
+ 'Cyan',
+ 'White',
+ ]
+ _palette_start_colors = [
+ '000000',
+ '800000',
+ '008000',
+ '808000',
+ '000080',
+ '800080',
+ '008080',
+ 'c0c0c0',
+ '808080',
+ 'ff0000',
+ '00ff00',
+ 'ffff00',
+ '0000ff',
+ 'ff00ff',
+ '00ffff',
+ 'ffffff',
+ ]
+ _palette_cube_steps = ['00', '5f', '87', 'af', 'd7', 'ff']
+
+ def __init__(self, **options):
+ RegexLexer.__init__(self, **options)
+
+ self._bright = False
+ self._foreground = 'Default'
+ self._background = 'Default'
+
+ def _callback(self, match):
+ commands = match.group('commands')
+ text = match.group('text')
+
+ # split the commands strings into their constituent parameter codes
+ parameters = self._sgr_split.split(commands)[1:-1]
+ parameters = [int(p) if p else 0 for p in parameters]
+
+ # loop over the parameters, consuming them to create commands, some
+ # of which will have arguments
+ while parameters:
+ command = parameters.pop(0)
+ if command == 0:
+ self._bright = False
+ self._foreground = 'Default'
+ self._background = 'Default'
+ elif command == 1:
+ self._bright = True
+ elif command == 22:
+ self._bright = False
+ elif command >= 30 and command <= 37:
+ self._foreground = self._named_colors[command - 30]
+ elif command == 38:
+ mode = parameters.pop(0)
+ if mode == 2:
+ rgb = self._read_rgb(parameters)
+ else:
+ offset = parameters.pop(0)
+ rgb = self._make_color_from_palette(offset)
+ self._foreground = 'ForegroundColor' + rgb
+ elif command == 39:
+ self._foreground = 'Default'
+ elif command >= 40 and command <= 47:
+ self._background = self._named_colors[command - 40]
+ elif command == 48:
+ mode = parameters.pop(0)
+ if mode == 2:
+ rgb = self._read_rgb(parameters)
+ else:
+ offset = parameters.pop()
+ rgb = self._make_color_from_palette(offset)
+ self._background = rgb
+ elif command == 49:
+ self._background = 'Default'
+ elif command >= 90 and command <= 97:
+ self._foreground = ('Bright' +
+ self._named_colors[command - 90])
+ elif command >= 100 and command <= 107:
+ self._background = ('Bright' +
+ self._named_colors[command - 100])
+
+ if (self._bright
+ and not self._foreground.startswith('Bright')
+ and not self._foreground.startswith('ForegroundColor')):
+ token = 'Generic.AnsiBright' + self._foreground
else:
+ token = 'Generic.Ansi' + self._foreground
+
+ if (self._background != 'Default'):
+ token += 'BackgroundColor' + self._background
+
+ if token == 'Generic.AnsiDefault':
yield (match.start(), Text, text)
- return
-
- if color == '30':
- token += 'Black'
- elif color == '31':
- token += 'Red'
- elif color == '32':
- token += 'Green'
- elif color == '33':
- token += 'Yellow'
- elif color == '34':
- token += 'Blue'
- elif color == '35':
- token += 'Magenta'
- elif color == '36':
- token += 'Cyan'
- elif color == '37':
- token += 'White'
- elif color == '39':
- token += 'Default'
else:
- yield (match.start(), Text, text)
- return
+ yield (match.start(), string_to_tokentype(token), text)
- yield (match.start(), string_to_tokentype(token), text)
+ def _read_rgb(self, parameters):
+ r = parameters.pop(0)
+ g = parameters.pop(0)
+ b = parameters.pop(0)
+ return self._to_hex(r,g,b)
- def callback_fg_color(lexer, match):
- token = 'Generic.AnsiForegroundColor{:02x}{:02x}{:02x}'.format(
- int(match.group(1)), int(match.group(2)), int(match.group(3)))
- yield (match.start, string_to_tokentype(token), match.group(4))
+ def _make_color_from_palette(self, offset):
+ # the palette runs from 0–255 inclusive, consisting of
+ # - 16 specific colors intended to give a good range
+ # - 216 colors laid out on a color cube, with axes for
+ # each of red, green, and blue
+ # - 24 shades of grey, from grey3 to grey93
+ if offset < 16:
+ return self._palette_start_colors[offset]
+ elif offset < 232:
+ offset = offset - 16
+ offset, b = divmod (offset,6)
+ r, g = divmod(offset, 6)
+ r = self._palette_cube_steps[r]
+ g = self._palette_cube_steps[g]
+ b = self._palette_cube_steps[b]
+ return r + g + b
+ else:
+ shade = 8 + 10 * (offset - 232)
+ return self._to_hex(shade, shade, shade)
- def callback_fg_bg_color(lexer, match):
- token = 'Generic.AnsiForegroundBackgroundColor{:02x}{:02x}{:02x}'.format(
- int(match.group(1)), int(match.group(2)), int(match.group(3)))
- yield (match.start, string_to_tokentype(token), match.group(4))
+ def _to_hex(self, r, g, b):
+ return '{:02x}{:02x}{:02x}'.format(r, g, b)
tokens = {
'root': [
('[^\x1b]+', Text),
- ('\x1b\\[38;2;(\\d+);(\\d+);(\\d+)m\x1b\\[48;2;\\d+;\\d+;\\d+m([^\x1b]+)\x1b\\[0m', callback_fg_bg_color),
- ('\x1b\\[38;2;(\\d+);(\\d+);(\\d+)m([^\x1b]+)\x1b\\[0m', callback_fg_color),
- # Brightness and color separately (used by ASan reports)
- ('\x1b\\[([01])m\x1b\\[(\\d+)m([^\x1b]*)', callback),
- ('\x1b\\[(\\d+)(?:;(\\d+))?m([^\x1b]*)', callback)
+ (_sgrs_and_text, _callback),
]
}
-_ansi_fg_color_re = re.compile('class="g g-AnsiForegroundColor([0-9a-f]{6})"')
-_ansi_fg_bg_color_re = re.compile('class="g g-AnsiForegroundBackgroundColor([0-9a-f]{6})"')
-
class HtmlAnsiFormatter(HtmlFormatter):
+ _ansi_color_re = re.compile(
+ r'(?P<Prefix>class="g )(?P<AnsiClass>g-Ansi\S+)(?P<Suffix>")'
+ )
+ _rgb_code_re = re.compile(r'[0-9a-f]{6}$')
+
def wrap(self, source, outfile):
return self._wrap_code(source)
def _wrap_code(self, source):
for i, t in source:
if i == 1: # it's a line of formatted code
- t = _ansi_fg_bg_color_re.sub('style="color: #\\1; background-color: #\\1"', t)
- t = _ansi_fg_color_re.sub('style="color: #\\1"', t)
- #t += 'H'
+ t = self._ansi_color_re.sub(self._replace_ansi_class, t)
yield i, t
+
+ def _replace_ansi_class(self, match):
+ html_classes = ['g']
+ html_styles = []
+ foreground_color = None
+ background_color = None
+ ansi_class = match.group('AnsiClass')
+
+ i = ansi_class.find('BackgroundColor')
+ if i >= 0:
+ background_color = ansi_class[i + 15:]
+ ansi_class = ansi_class[:i]
+
+ if self._rgb_code_re.match(background_color):
+ html_styles.append('background-color: #' + background_color)
+ else:
+ html_classes.append('g-AnsiBackground' + background_color)
+
+ i = ansi_class.find('ForegroundColor')
+ if i >= 0:
+ foreground_color = ansi_class[i + 15:]
+ ansi_class = ansi_class[:i]
+ html_styles.insert(0, 'color: #' + foreground_color)
+
+ if ansi_class != 'g-Ansi':
+ html_classes.insert(1, ansi_class)
+
+ result = ''
+ if len(html_classes) > 1: # we don't want to emit just g
+ result = 'class="' + ' '.join(html_classes) + '"'
+
+ if html_styles:
+ if result:
+ result += ' '
+ result += 'style="' + '; '.join(html_styles) + '"'
+
+ return result
-\e[38;2;220;220;220m\e[48;2;220;220;220m██\e[0m \e[38;2;165;201;234m\e[48;2;165;201;234m██\e[0m \e[38;2;59;210;103m\e[48;2;59;210;103m██\e[0m \e[38;2;199;207;47m\e[48;2;199;207;47m██\e[0m \e[38;2;205;52;49m\e[48;2;205;52;49m██\e[0m \e[38;2;47;131;204m\e[48;2;47;131;204m▓▓\e[0m \e[38;2;116;116;116m\e[48;2;116;116;116m▒▒\e[0m
+\e[1mNamed foreground colors:\e[0m
+ \e[30mBlack \e[31mRed \e[32mGreen \e[33mYellow \e[34mBlue \e[35mMagenta \e[36mCyan \e[37mWhite \e[39mDefault\e[0m
+ \e[90mBrightBlack \e[91mBrightRed \e[92mBrightGreen \e[93mBrightYellow
+ \e[94mBrightBlue \e[95mBrightMagenta \e[96mBrightCyan \e[97mBrightWhite\e[0m
-Leading zeros: \e[38;2;15;116;3m\e[48;2;15;116;3m▒▒\e[0m \e[38;2;15;116;3m▒▒\e[0m
+\e[1mRGB foreground colors:\e[0m
+ \e[38;2;91;157;217m91,157,217 \e[38;2;157;217;91m157,217,91 \e[38;2;217;91;157m217,91,157\e[0m
-\e[38;2;59;210;103m \e[0m \e[38;2;59;210;103m \e[0m \e[38;2;59;210;103m░░\e[0m \e[38;2;59;210;103m▒▒\e[0m \e[38;2;59;210;103m▓▓\e[0m \e[38;2;59;210;103m\e[48;2;59;210;103m██\e[0m
+\e[1mPalette-based foreground colors:\e[0m
+ \e[38;5;0m 0 \e[38;5;1m 1 \e[38;5;2m 2 \e[38;5;3m 3 \e[38;5;4m 4 \e[38;5;5m 5 \e[38;5;6m 6 \e[38;5;7m 7 \e[38;5;8m 8 \e[38;5;9m 9 \e[38;5;10m 10 \e[38;5;11m 11 \e[38;5;12m 12 \e[38;5;13m 13 \e[38;5;14m 14 \e[38;5;15m 15
+ \e[38;5;16m 16 \e[38;5;17m 17 \e[38;5;18m 18 \e[38;5;19m 19 \e[38;5;20m 20 \e[38;5;21m 21 \e[38;5;22m 22 \e[38;5;23m 23 \e[38;5;24m 24 \e[38;5;25m 25 \e[38;5;26m 26 \e[38;5;27m 27 \e[38;5;28m 28 \e[38;5;29m 29 \e[38;5;30m 30 \e[38;5;31m 31
+ \e[38;5;32m 32 \e[38;5;33m 33 \e[38;5;34m 34 \e[38;5;35m 35 \e[38;5;36m 36 \e[38;5;37m 37 \e[38;5;38m 38 \e[38;5;39m 39 \e[38;5;40m 40 \e[38;5;41m 41 \e[38;5;42m 42 \e[38;5;43m 43 \e[38;5;44m 44 \e[38;5;45m 45 \e[38;5;46m 46 \e[38;5;47m 47
+ \e[38;5;48m 48 \e[38;5;49m 49 \e[38;5;50m 50 \e[38;5;51m 51 \e[38;5;52m 52 \e[38;5;53m 53 \e[38;5;54m 54 \e[38;5;55m 55 \e[38;5;56m 56 \e[38;5;57m 57 \e[38;5;58m 58 \e[38;5;59m 59 \e[38;5;60m 60 \e[38;5;61m 61 \e[38;5;62m 62 \e[38;5;63m 63
+ \e[38;5;64m 64 \e[38;5;65m 65 \e[38;5;66m 66 \e[38;5;67m 67 \e[38;5;68m 68 \e[38;5;69m 69 \e[38;5;70m 70 \e[38;5;71m 71 \e[38;5;72m 72 \e[38;5;73m 73 \e[38;5;74m 74 \e[38;5;75m 75 \e[38;5;76m 76 \e[38;5;77m 77 \e[38;5;78m 78 \e[38;5;79m 79
+ \e[38;5;80m 80 \e[38;5;81m 81 \e[38;5;82m 82 \e[38;5;83m 83 \e[38;5;84m 84 \e[38;5;85m 85 \e[38;5;86m 86 \e[38;5;87m 87 \e[38;5;88m 88 \e[38;5;89m 89 \e[38;5;90m 90 \e[38;5;91m 91 \e[38;5;92m 92 \e[38;5;93m 93 \e[38;5;94m 94 \e[38;5;95m 95
+ \e[38;5;96m 96 \e[38;5;97m 97 \e[38;5;98m 98 \e[38;5;99m 99 \e[38;5;100m100 \e[38;5;101m101 \e[38;5;102m102 \e[38;5;103m103 \e[38;5;104m104 \e[38;5;105m105 \e[38;5;106m106 \e[38;5;107m107 \e[38;5;108m108 \e[38;5;109m109 \e[38;5;110m110 \e[38;5;111m111
+ \e[38;5;112m112 \e[38;5;113m113 \e[38;5;114m114 \e[38;5;115m115 \e[38;5;116m116 \e[38;5;117m117 \e[38;5;118m118 \e[38;5;119m119 \e[38;5;120m120 \e[38;5;121m121 \e[38;5;122m122 \e[38;5;123m123 \e[38;5;124m124 \e[38;5;125m125 \e[38;5;126m126 \e[38;5;127m127
+ \e[38;5;128m128 \e[38;5;129m129 \e[38;5;130m130 \e[38;5;131m131 \e[38;5;132m132 \e[38;5;133m133 \e[38;5;134m134 \e[38;5;135m135 \e[38;5;136m136 \e[38;5;137m137 \e[38;5;138m138 \e[38;5;139m139 \e[38;5;140m140 \e[38;5;141m141 \e[38;5;142m142 \e[38;5;143m143
+ \e[38;5;144m144 \e[38;5;145m145 \e[38;5;146m146 \e[38;5;147m147 \e[38;5;148m148 \e[38;5;149m149 \e[38;5;150m150 \e[38;5;151m151 \e[38;5;152m152 \e[38;5;153m153 \e[38;5;154m154 \e[38;5;155m155 \e[38;5;156m156 \e[38;5;157m157 \e[38;5;158m158 \e[38;5;159m159
+ \e[38;5;160m160 \e[38;5;161m161 \e[38;5;162m162 \e[38;5;163m163 \e[38;5;164m164 \e[38;5;165m165 \e[38;5;166m166 \e[38;5;167m167 \e[38;5;168m168 \e[38;5;169m169 \e[38;5;170m170 \e[38;5;171m171 \e[38;5;172m172 \e[38;5;173m173 \e[38;5;174m174 \e[38;5;175m175
+ \e[38;5;176m176 \e[38;5;177m177 \e[38;5;178m178 \e[38;5;179m179 \e[38;5;180m180 \e[38;5;181m181 \e[38;5;182m182 \e[38;5;183m183 \e[38;5;184m184 \e[38;5;185m185 \e[38;5;186m186 \e[38;5;187m187 \e[38;5;188m188 \e[38;5;189m189 \e[38;5;190m190 \e[38;5;191m191
+ \e[38;5;192m192 \e[38;5;193m193 \e[38;5;194m194 \e[38;5;195m195 \e[38;5;196m196 \e[38;5;197m197 \e[38;5;198m198 \e[38;5;199m199 \e[38;5;200m200 \e[38;5;201m201 \e[38;5;202m202 \e[38;5;203m203 \e[38;5;204m204 \e[38;5;205m205 \e[38;5;206m206 \e[38;5;207m207
+ \e[38;5;208m208 \e[38;5;209m209 \e[38;5;210m210 \e[38;5;211m211 \e[38;5;212m212 \e[38;5;213m213 \e[38;5;214m214 \e[38;5;215m215 \e[38;5;216m216 \e[38;5;217m217 \e[38;5;218m218 \e[38;5;219m219 \e[38;5;220m220 \e[38;5;221m221 \e[38;5;222m222 \e[38;5;223m223
+ \e[38;5;224m224 \e[38;5;225m225 \e[38;5;226m226 \e[38;5;227m227 \e[38;5;228m228 \e[38;5;229m229 \e[38;5;230m230 \e[38;5;231m231 \e[38;5;232m232 \e[38;5;233m233 \e[38;5;234m234 \e[38;5;235m235 \e[38;5;236m236 \e[38;5;237m237 \e[38;5;238m238 \e[38;5;239m239
+ \e[38;5;240m240 \e[38;5;241m241 \e[38;5;242m242 \e[38;5;243m243 \e[38;5;244m244 \e[38;5;245m245 \e[38;5;246m246 \e[38;5;247m247 \e[38;5;248m248 \e[38;5;249m249 \e[38;5;250m250 \e[38;5;251m251 \e[38;5;252m252 \e[38;5;253m253 \e[38;5;254m254 \e[38;5;255m255\e[0m
+
+\e[1mReset undoes foreground color\e[0m
+ \e[32mGreen\e[0m Reset
+ \e[31mRed\e[m Reset, with implicit '0'\e[0m
+
+\e[1mReset or normal intensity undo brightness\e[0m
+ \e[1mBright\e[0m Reset\e[0m
+ \e[1mBright\e[22m Normal intensity\e[0m
+
+\e[1mNon-bright named foreground colors and brightness stack \e[0m
+ \e[1;33mBright and Yellow foreground in one Sequence\e[0m
+ \e[33;1mYellow foreground and Bright in one Sequence\e[0m
+ \e[1mBright Sequence\e[33m and Yellow foreground Sequence\e[0m
+ \e[33mYellow foreground Sequence\e[1m and Bright Sequence\e[0m
+
+\e[1mBright named foreground colors do not heed or change brightness flag,
+nor do RGB or palette-based colors\e[0m
+ \e[1mBright \e[92mBrightGreen \e[32m(still bright) Green\e[0m
+ \e[39mDefault \e[92mBrightGreen \e[32mGreen\e[0m
+ \e[1mBright \e[38;5;9mpalette 9 \e[34m(still bright) Blue \e[38;5;9mpalette 9\e[0m
+ \e[34mBlue \e[38;5;9mpalette 9 \e[34mBlue \e[38;5;9mpalette 9\e[0m
+ \e[1mBright \e[38;2;255;255;mrgb(255,255,0) \e[34m(still bright) Blue \e[38;2;255;255;mrgb(255,255,0)\e[0m
+ \e[34mBlue \e[38;2;255;255;mrgb(255,255,0) \e[34mBlue \e[38;2;255;255;mrgb(255,255,0)\e[0m
+
+\e[1mNamed background colors:\e[0m
+ \e[40mBlack\e[0m \e[41mRed\e[0m \e[42mGreen\e[0m \e[43mYellow\e[0m \e[44mBlue\e[0m \e[45mMagenta\e[0m \e[46mCyan\e[0m \e[47mWhite\e[0m \e[49mDefault\e[0m
+ \e[100mBrightBlack\e[0m \e[101mBrightRed\e[0m \e[102mBrightGreen\e[0m \e[103mBrightYellow\e[0m
+ \e[104mBrightBlue\e[0m \e[105mBrightMagenta\e[0m \e[106mBrightCyan\e[0m \e[107mBrightWhite\e[0m
+
+\e[1mRGB background colors:\e[0m
+ \e[48;2;91;157;217m91,157,217\e[0m \e[48;2;157;217;91m157,217,91\e[0m \e[48;2;217;91;157m217,91,157\e[0m
+
+\e[1mPalette-based background colors:\e[0m
+ \e[48;5;0m 0\e[0m \e[48;5;1m 1\e[0m \e[48;5;2m 2\e[0m \e[48;5;3m 3\e[0m \e[48;5;4m 4\e[0m \e[48;5;5m 5\e[0m \e[48;5;6m 6\e[0m \e[48;5;7m 7\e[0m \e[48;5;8m 8\e[0m \e[48;5;9m 9\e[0m \e[48;5;10m 10\e[0m \e[48;5;11m 11\e[0m \e[48;5;12m 12\e[0m \e[48;5;13m 13\e[0m \e[48;5;14m 14\e[0m \e[48;5;15m 15\e[0m
+ \e[48;5;16m 16\e[0m \e[48;5;17m 17\e[0m \e[48;5;18m 18\e[0m \e[48;5;19m 19\e[0m \e[48;5;20m 20\e[0m \e[48;5;21m 21\e[0m \e[48;5;22m 22\e[0m \e[48;5;23m 23\e[0m \e[48;5;24m 24\e[0m \e[48;5;25m 25\e[0m \e[48;5;26m 26\e[0m \e[48;5;27m 27\e[0m \e[48;5;28m 28\e[0m \e[48;5;29m 29\e[0m \e[48;5;30m 30\e[0m \e[48;5;31m 31\e[0m
+ \e[48;5;32m 32\e[0m \e[48;5;33m 33\e[0m \e[48;5;34m 34\e[0m \e[48;5;35m 35\e[0m \e[48;5;36m 36\e[0m \e[48;5;37m 37\e[0m \e[48;5;38m 38\e[0m \e[48;5;39m 39\e[0m \e[48;5;40m 40\e[0m \e[48;5;41m 41\e[0m \e[48;5;42m 42\e[0m \e[48;5;43m 43\e[0m \e[48;5;44m 44\e[0m \e[48;5;45m 45\e[0m \e[48;5;46m 46\e[0m \e[48;5;47m 47\e[0m
+ \e[48;5;48m 48\e[0m \e[48;5;49m 49\e[0m \e[48;5;50m 50\e[0m \e[48;5;51m 51\e[0m \e[48;5;52m 52\e[0m \e[48;5;53m 53\e[0m \e[48;5;54m 54\e[0m \e[48;5;55m 55\e[0m \e[48;5;56m 56\e[0m \e[48;5;57m 57\e[0m \e[48;5;58m 58\e[0m \e[48;5;59m 59\e[0m \e[48;5;60m 60\e[0m \e[48;5;61m 61\e[0m \e[48;5;62m 62\e[0m \e[48;5;63m 63\e[0m
+ \e[48;5;64m 64\e[0m \e[48;5;65m 65\e[0m \e[48;5;66m 66\e[0m \e[48;5;67m 67\e[0m \e[48;5;68m 68\e[0m \e[48;5;69m 69\e[0m \e[48;5;70m 70\e[0m \e[48;5;71m 71\e[0m \e[48;5;72m 72\e[0m \e[48;5;73m 73\e[0m \e[48;5;74m 74\e[0m \e[48;5;75m 75\e[0m \e[48;5;76m 76\e[0m \e[48;5;77m 77\e[0m \e[48;5;78m 78\e[0m \e[48;5;79m 79\e[0m
+ \e[48;5;80m 80\e[0m \e[48;5;81m 81\e[0m \e[48;5;82m 82\e[0m \e[48;5;83m 83\e[0m \e[48;5;84m 84\e[0m \e[48;5;85m 85\e[0m \e[48;5;86m 86\e[0m \e[48;5;87m 87\e[0m \e[48;5;88m 88\e[0m \e[48;5;89m 89\e[0m \e[48;5;90m 90\e[0m \e[48;5;91m 91\e[0m \e[48;5;92m 92\e[0m \e[48;5;93m 93\e[0m \e[48;5;94m 94\e[0m \e[48;5;95m 95\e[0m
+ \e[48;5;96m 96\e[0m \e[48;5;97m 97\e[0m \e[48;5;98m 98\e[0m \e[48;5;99m 99\e[0m \e[48;5;100m100\e[0m \e[48;5;101m101\e[0m \e[48;5;102m102\e[0m \e[48;5;103m103\e[0m \e[48;5;104m104\e[0m \e[48;5;105m105\e[0m \e[48;5;106m106\e[0m \e[48;5;107m107\e[0m \e[48;5;108m108\e[0m \e[48;5;109m109\e[0m \e[48;5;110m110\e[0m \e[48;5;111m111\e[0m
+ \e[48;5;112m112\e[0m \e[48;5;113m113\e[0m \e[48;5;114m114\e[0m \e[48;5;115m115\e[0m \e[48;5;116m116\e[0m \e[48;5;117m117\e[0m \e[48;5;118m118\e[0m \e[48;5;119m119\e[0m \e[48;5;120m120\e[0m \e[48;5;121m121\e[0m \e[48;5;122m122\e[0m \e[48;5;123m123\e[0m \e[48;5;124m124\e[0m \e[48;5;125m125\e[0m \e[48;5;126m126\e[0m \e[48;5;127m127\e[0m
+ \e[48;5;128m128\e[0m \e[48;5;129m129\e[0m \e[48;5;130m130\e[0m \e[48;5;131m131\e[0m \e[48;5;132m132\e[0m \e[48;5;133m133\e[0m \e[48;5;134m134\e[0m \e[48;5;135m135\e[0m \e[48;5;136m136\e[0m \e[48;5;137m137\e[0m \e[48;5;138m138\e[0m \e[48;5;139m139\e[0m \e[48;5;140m140\e[0m \e[48;5;141m141\e[0m \e[48;5;142m142\e[0m \e[48;5;143m143\e[0m
+ \e[48;5;144m144\e[0m \e[48;5;145m145\e[0m \e[48;5;146m146\e[0m \e[48;5;147m147\e[0m \e[48;5;148m148\e[0m \e[48;5;149m149\e[0m \e[48;5;150m150\e[0m \e[48;5;151m151\e[0m \e[48;5;152m152\e[0m \e[48;5;153m153\e[0m \e[48;5;154m154\e[0m \e[48;5;155m155\e[0m \e[48;5;156m156\e[0m \e[48;5;157m157\e[0m \e[48;5;158m158\e[0m \e[48;5;159m159\e[0m
+ \e[48;5;160m160\e[0m \e[48;5;161m161\e[0m \e[48;5;162m162\e[0m \e[48;5;163m163\e[0m \e[48;5;164m164\e[0m \e[48;5;165m165\e[0m \e[48;5;166m166\e[0m \e[48;5;167m167\e[0m \e[48;5;168m168\e[0m \e[48;5;169m169\e[0m \e[48;5;170m170\e[0m \e[48;5;171m171\e[0m \e[48;5;172m172\e[0m \e[48;5;173m173\e[0m \e[48;5;174m174\e[0m \e[48;5;175m175\e[0m
+ \e[48;5;176m176\e[0m \e[48;5;177m177\e[0m \e[48;5;178m178\e[0m \e[48;5;179m179\e[0m \e[48;5;180m180\e[0m \e[48;5;181m181\e[0m \e[48;5;182m182\e[0m \e[48;5;183m183\e[0m \e[48;5;184m184\e[0m \e[48;5;185m185\e[0m \e[48;5;186m186\e[0m \e[48;5;187m187\e[0m \e[48;5;188m188\e[0m \e[48;5;189m189\e[0m \e[48;5;190m190\e[0m \e[48;5;191m191\e[0m
+ \e[48;5;192m192\e[0m \e[48;5;193m193\e[0m \e[48;5;194m194\e[0m \e[48;5;195m195\e[0m \e[48;5;196m196\e[0m \e[48;5;197m197\e[0m \e[48;5;198m198\e[0m \e[48;5;199m199\e[0m \e[48;5;200m200\e[0m \e[48;5;201m201\e[0m \e[48;5;202m202\e[0m \e[48;5;203m203\e[0m \e[48;5;204m204\e[0m \e[48;5;205m205\e[0m \e[48;5;206m206\e[0m \e[48;5;207m207\e[0m
+ \e[48;5;208m208\e[0m \e[48;5;209m209\e[0m \e[48;5;210m210\e[0m \e[48;5;211m211\e[0m \e[48;5;212m212\e[0m \e[48;5;213m213\e[0m \e[48;5;214m214\e[0m \e[48;5;215m215\e[0m \e[48;5;216m216\e[0m \e[48;5;217m217\e[0m \e[48;5;218m218\e[0m \e[48;5;219m219\e[0m \e[48;5;220m220\e[0m \e[48;5;221m221\e[0m \e[48;5;222m222\e[0m \e[48;5;223m223\e[0m
+ \e[48;5;224m224\e[0m \e[48;5;225m225\e[0m \e[48;5;226m226\e[0m \e[48;5;227m227\e[0m \e[48;5;228m228\e[0m \e[48;5;229m229\e[0m \e[48;5;230m230\e[0m \e[48;5;231m231\e[0m \e[48;5;232m232\e[0m \e[48;5;233m233\e[0m \e[48;5;234m234\e[0m \e[48;5;235m235\e[0m \e[48;5;236m236\e[0m \e[48;5;237m237\e[0m \e[48;5;238m238\e[0m \e[48;5;239m239\e[0m
+ \e[48;5;240m240\e[0m \e[48;5;241m241\e[0m \e[48;5;242m242\e[0m \e[48;5;243m243\e[0m \e[48;5;244m244\e[0m \e[48;5;245m245\e[0m \e[48;5;246m246\e[0m \e[48;5;247m247\e[0m \e[48;5;248m248\e[0m \e[48;5;249m249\e[0m \e[48;5;250m250\e[0m \e[48;5;251m251\e[0m \e[48;5;252m252\e[0m \e[48;5;253m253\e[0m \e[48;5;254m254\e[0m \e[48;5;255m255\e[0m
+
+\e[1mBackground colors do not heed or change brightness flag\e[0m
+ \e[1mBright \e[102mBrightGreen \e[42mGreen\e[0m
+ \e[102mBrightGreen \e[30mBlack\e[0m
+
+\e[1mForeground and background colors stack:\e[0m
+ \e[34;43mBlue on Yellow\e[0m
+ \e[38;5;12;103mPalette 12 on BrightYellow\e[0m
+ \e[37;48;5;88mWhite on Palette 88\e[0m
+ \e[97;48;2;128;0;128mBrightWhite on RGB 128,0,128\e[0m
+ \e[38;2;0;128;128;48;2;0;128;128mRGB 0,128,128 on RGB 0,128,128\e[0m
+ \e[38;2;192;192;0;48;2;0;128;128mRGB 192,192,0 on RGB 0,128,128\e[0m
+
+\e[1mOther commands are ignored\e[0m
+ \e[2mhalf-bright\e[0m
+ \e[4mset underscore\e[0m
+ \e[5mset blink\e[0m
+ \e[7mset reverse video\e[0m
+ \e[10mreset selected mapping, display control flag, and toggle\e[0m
+ \e[11mselect null mapping, set display control flag, reset\e[0m
+ \e[12mselect null mapping, set display control flag, set toggle\e[0m
+ \e[21mset underline\e[0m
+ \e[24munderline off\e[0m
+ \e[25mblink off\e[0m
+ \e[27mreverse video off\e[0m
=>0x0c287fff8030: 00[<span class="g g-AnsiBrightBlue">fc</span>]<span class="g g-AnsiBrightBlue">fc</span> <span class="g g-AnsiBrightBlue">fc</span> <span class="g g-AnsiBrightBlue">fc</span> <span class="g g-AnsiBrightBlue">fc</span> <span class="g g-AnsiBrightBlue">fc</span> <span class="g g-AnsiBrightBlue">fc</span> <span class="g g-AnsiBrightBlue">fc</span> <span class="g g-AnsiBrightBlue">fc</span> <span class="g g-AnsiBrightBlue">fc</span> <span class="g g-AnsiBrightRed">fa</span> <span class="g g-AnsiBrightRed">fa</span> <span class="g g-AnsiBrightRed">fa</span> <span class="g g-AnsiBrightRed">fa</span> <span class="g g-AnsiBrightRed">fa</span></pre>
<p>Console colors:</p>
-<pre class="m-console"><span style="color: #dcdcdc; background-color: #dcdcdc">██</span> <span style="color: #a5c9ea; background-color: #a5c9ea">██</span> <span style="color: #3bd267; background-color: #3bd267">██</span> <span style="color: #c7cf2f; background-color: #c7cf2f">██</span> <span style="color: #cd3431; background-color: #cd3431">██</span> <span style="color: #2f83cc; background-color: #2f83cc">▓▓</span> <span style="color: #747474; background-color: #747474">▒▒</span>
+<pre class="m-console"><span class="g g-AnsiBrightDefault">Named foreground colors:</span>
+ <span class="g g-AnsiBlack">Black </span><span class="g g-AnsiRed">Red </span><span class="g g-AnsiGreen">Green </span><span class="g g-AnsiYellow">Yellow </span><span class="g g-AnsiBlue">Blue </span><span class="g g-AnsiMagenta">Magenta </span><span class="g g-AnsiCyan">Cyan </span><span class="g g-AnsiWhite">White </span>Default
+ <span class="g g-AnsiBrightBlack">BrightBlack </span><span class="g g-AnsiBrightRed">BrightRed </span><span class="g g-AnsiBrightGreen">BrightGreen </span><span class="g g-AnsiBrightYellow">BrightYellow</span>
+<span class="g g-AnsiBrightYellow"> </span><span class="g g-AnsiBrightBlue">BrightBlue </span><span class="g g-AnsiBrightMagenta">BrightMagenta </span><span class="g g-AnsiBrightCyan">BrightCyan </span><span class="g g-AnsiBrightWhite">BrightWhite</span>
-Leading zeros: <span style="color: #0f7403; background-color: #0f7403">▒▒</span> <span style="color: #0f7403">▒▒</span>
+<span class="g g-AnsiBrightDefault">RGB foreground colors:</span>
+ <span style="color: #5b9dd9">91,157,217 </span><span style="color: #9dd95b">157,217,91 </span><span style="color: #d95b9d">217,91,157</span>
-<span style="color: #3bd267"> </span> <span style="color: #3bd267"> </span> <span style="color: #3bd267">░░</span> <span style="color: #3bd267">▒▒</span> <span style="color: #3bd267">▓▓</span> <span style="color: #3bd267; background-color: #3bd267">██</span></pre>
+<span class="g g-AnsiBrightDefault">Palette-based foreground colors:</span>
+ <span style="color: #000000"> 0 </span><span style="color: #800000"> 1 </span><span style="color: #008000"> 2 </span><span style="color: #808000"> 3 </span><span style="color: #000080"> 4 </span><span style="color: #800080"> 5 </span><span style="color: #008080"> 6 </span><span style="color: #c0c0c0"> 7 </span><span style="color: #808080"> 8 </span><span style="color: #ff0000"> 9 </span><span style="color: #00ff00"> 10 </span><span style="color: #ffff00"> 11 </span><span style="color: #0000ff"> 12 </span><span style="color: #ff00ff"> 13 </span><span style="color: #00ffff"> 14 </span><span style="color: #ffffff"> 15</span>
+<span style="color: #ffffff"> </span><span style="color: #000000"> 16 </span><span style="color: #00005f"> 17 </span><span style="color: #000087"> 18 </span><span style="color: #0000af"> 19 </span><span style="color: #0000d7"> 20 </span><span style="color: #0000ff"> 21 </span><span style="color: #005f00"> 22 </span><span style="color: #005f5f"> 23 </span><span style="color: #005f87"> 24 </span><span style="color: #005faf"> 25 </span><span style="color: #005fd7"> 26 </span><span style="color: #005fff"> 27 </span><span style="color: #008700"> 28 </span><span style="color: #00875f"> 29 </span><span style="color: #008787"> 30 </span><span style="color: #0087af"> 31</span>
+<span style="color: #0087af"> </span><span style="color: #0087d7"> 32 </span><span style="color: #0087ff"> 33 </span><span style="color: #00af00"> 34 </span><span style="color: #00af5f"> 35 </span><span style="color: #00af87"> 36 </span><span style="color: #00afaf"> 37 </span><span style="color: #00afd7"> 38 </span><span style="color: #00afff"> 39 </span><span style="color: #00d700"> 40 </span><span style="color: #00d75f"> 41 </span><span style="color: #00d787"> 42 </span><span style="color: #00d7af"> 43 </span><span style="color: #00d7d7"> 44 </span><span style="color: #00d7ff"> 45 </span><span style="color: #00ff00"> 46 </span><span style="color: #00ff5f"> 47</span>
+<span style="color: #00ff5f"> </span><span style="color: #00ff87"> 48 </span><span style="color: #00ffaf"> 49 </span><span style="color: #00ffd7"> 50 </span><span style="color: #00ffff"> 51 </span><span style="color: #5f0000"> 52 </span><span style="color: #5f005f"> 53 </span><span style="color: #5f0087"> 54 </span><span style="color: #5f00af"> 55 </span><span style="color: #5f00d7"> 56 </span><span style="color: #5f00ff"> 57 </span><span style="color: #5f5f00"> 58 </span><span style="color: #5f5f5f"> 59 </span><span style="color: #5f5f87"> 60 </span><span style="color: #5f5faf"> 61 </span><span style="color: #5f5fd7"> 62 </span><span style="color: #5f5fff"> 63</span>
+<span style="color: #5f5fff"> </span><span style="color: #5f8700"> 64 </span><span style="color: #5f875f"> 65 </span><span style="color: #5f8787"> 66 </span><span style="color: #5f87af"> 67 </span><span style="color: #5f87d7"> 68 </span><span style="color: #5f87ff"> 69 </span><span style="color: #5faf00"> 70 </span><span style="color: #5faf5f"> 71 </span><span style="color: #5faf87"> 72 </span><span style="color: #5fafaf"> 73 </span><span style="color: #5fafd7"> 74 </span><span style="color: #5fafff"> 75 </span><span style="color: #5fd700"> 76 </span><span style="color: #5fd75f"> 77 </span><span style="color: #5fd787"> 78 </span><span style="color: #5fd7af"> 79</span>
+<span style="color: #5fd7af"> </span><span style="color: #5fd7d7"> 80 </span><span style="color: #5fd7ff"> 81 </span><span style="color: #5fff00"> 82 </span><span style="color: #5fff5f"> 83 </span><span style="color: #5fff87"> 84 </span><span style="color: #5fffaf"> 85 </span><span style="color: #5fffd7"> 86 </span><span style="color: #5fffff"> 87 </span><span style="color: #870000"> 88 </span><span style="color: #87005f"> 89 </span><span style="color: #870087"> 90 </span><span style="color: #8700af"> 91 </span><span style="color: #8700d7"> 92 </span><span style="color: #8700ff"> 93 </span><span style="color: #875f00"> 94 </span><span style="color: #875f5f"> 95</span>
+<span style="color: #875f5f"> </span><span style="color: #875f87"> 96 </span><span style="color: #875faf"> 97 </span><span style="color: #875fd7"> 98 </span><span style="color: #875fff"> 99 </span><span style="color: #878700">100 </span><span style="color: #87875f">101 </span><span style="color: #878787">102 </span><span style="color: #8787af">103 </span><span style="color: #8787d7">104 </span><span style="color: #8787ff">105 </span><span style="color: #87af00">106 </span><span style="color: #87af5f">107 </span><span style="color: #87af87">108 </span><span style="color: #87afaf">109 </span><span style="color: #87afd7">110 </span><span style="color: #87afff">111</span>
+<span style="color: #87afff"> </span><span style="color: #87d700">112 </span><span style="color: #87d75f">113 </span><span style="color: #87d787">114 </span><span style="color: #87d7af">115 </span><span style="color: #87d7d7">116 </span><span style="color: #87d7ff">117 </span><span style="color: #87ff00">118 </span><span style="color: #87ff5f">119 </span><span style="color: #87ff87">120 </span><span style="color: #87ffaf">121 </span><span style="color: #87ffd7">122 </span><span style="color: #87ffff">123 </span><span style="color: #af0000">124 </span><span style="color: #af005f">125 </span><span style="color: #af0087">126 </span><span style="color: #af00af">127</span>
+<span style="color: #af00af"> </span><span style="color: #af00d7">128 </span><span style="color: #af00ff">129 </span><span style="color: #af5f00">130 </span><span style="color: #af5f5f">131 </span><span style="color: #af5f87">132 </span><span style="color: #af5faf">133 </span><span style="color: #af5fd7">134 </span><span style="color: #af5fff">135 </span><span style="color: #af8700">136 </span><span style="color: #af875f">137 </span><span style="color: #af8787">138 </span><span style="color: #af87af">139 </span><span style="color: #af87d7">140 </span><span style="color: #af87ff">141 </span><span style="color: #afaf00">142 </span><span style="color: #afaf5f">143</span>
+<span style="color: #afaf5f"> </span><span style="color: #afaf87">144 </span><span style="color: #afafaf">145 </span><span style="color: #afafd7">146 </span><span style="color: #afafff">147 </span><span style="color: #afd700">148 </span><span style="color: #afd75f">149 </span><span style="color: #afd787">150 </span><span style="color: #afd7af">151 </span><span style="color: #afd7d7">152 </span><span style="color: #afd7ff">153 </span><span style="color: #afff00">154 </span><span style="color: #afff5f">155 </span><span style="color: #afff87">156 </span><span style="color: #afffaf">157 </span><span style="color: #afffd7">158 </span><span style="color: #afffff">159</span>
+<span style="color: #afffff"> </span><span style="color: #d70000">160 </span><span style="color: #d7005f">161 </span><span style="color: #d70087">162 </span><span style="color: #d700af">163 </span><span style="color: #d700d7">164 </span><span style="color: #d700ff">165 </span><span style="color: #d75f00">166 </span><span style="color: #d75f5f">167 </span><span style="color: #d75f87">168 </span><span style="color: #d75faf">169 </span><span style="color: #d75fd7">170 </span><span style="color: #d75fff">171 </span><span style="color: #d78700">172 </span><span style="color: #d7875f">173 </span><span style="color: #d78787">174 </span><span style="color: #d787af">175</span>
+<span style="color: #d787af"> </span><span style="color: #d787d7">176 </span><span style="color: #d787ff">177 </span><span style="color: #d7af00">178 </span><span style="color: #d7af5f">179 </span><span style="color: #d7af87">180 </span><span style="color: #d7afaf">181 </span><span style="color: #d7afd7">182 </span><span style="color: #d7afff">183 </span><span style="color: #d7d700">184 </span><span style="color: #d7d75f">185 </span><span style="color: #d7d787">186 </span><span style="color: #d7d7af">187 </span><span style="color: #d7d7d7">188 </span><span style="color: #d7d7ff">189 </span><span style="color: #d7ff00">190 </span><span style="color: #d7ff5f">191</span>
+<span style="color: #d7ff5f"> </span><span style="color: #d7ff87">192 </span><span style="color: #d7ffaf">193 </span><span style="color: #d7ffd7">194 </span><span style="color: #d7ffff">195 </span><span style="color: #ff0000">196 </span><span style="color: #ff005f">197 </span><span style="color: #ff0087">198 </span><span style="color: #ff00af">199 </span><span style="color: #ff00d7">200 </span><span style="color: #ff00ff">201 </span><span style="color: #ff5f00">202 </span><span style="color: #ff5f5f">203 </span><span style="color: #ff5f87">204 </span><span style="color: #ff5faf">205 </span><span style="color: #ff5fd7">206 </span><span style="color: #ff5fff">207</span>
+<span style="color: #ff5fff"> </span><span style="color: #ff8700">208 </span><span style="color: #ff875f">209 </span><span style="color: #ff8787">210 </span><span style="color: #ff87af">211 </span><span style="color: #ff87d7">212 </span><span style="color: #ff87ff">213 </span><span style="color: #ffaf00">214 </span><span style="color: #ffaf5f">215 </span><span style="color: #ffaf87">216 </span><span style="color: #ffafaf">217 </span><span style="color: #ffafd7">218 </span><span style="color: #ffafff">219 </span><span style="color: #ffd700">220 </span><span style="color: #ffd75f">221 </span><span style="color: #ffd787">222 </span><span style="color: #ffd7af">223</span>
+<span style="color: #ffd7af"> </span><span style="color: #ffd7d7">224 </span><span style="color: #ffd7ff">225 </span><span style="color: #ffff00">226 </span><span style="color: #ffff5f">227 </span><span style="color: #ffff87">228 </span><span style="color: #ffffaf">229 </span><span style="color: #ffffd7">230 </span><span style="color: #ffffff">231 </span><span style="color: #080808">232 </span><span style="color: #121212">233 </span><span style="color: #1c1c1c">234 </span><span style="color: #262626">235 </span><span style="color: #303030">236 </span><span style="color: #3a3a3a">237 </span><span style="color: #444444">238 </span><span style="color: #4e4e4e">239</span>
+<span style="color: #4e4e4e"> </span><span style="color: #585858">240 </span><span style="color: #626262">241 </span><span style="color: #6c6c6c">242 </span><span style="color: #767676">243 </span><span style="color: #808080">244 </span><span style="color: #8a8a8a">245 </span><span style="color: #949494">246 </span><span style="color: #9e9e9e">247 </span><span style="color: #a8a8a8">248 </span><span style="color: #b2b2b2">249 </span><span style="color: #bcbcbc">250 </span><span style="color: #c6c6c6">251 </span><span style="color: #d0d0d0">252 </span><span style="color: #dadada">253 </span><span style="color: #e4e4e4">254 </span><span style="color: #eeeeee">255</span>
+
+<span class="g g-AnsiBrightDefault">Reset undoes foreground color</span>
+ <span class="g g-AnsiGreen">Green</span> Reset
+ <span class="g g-AnsiRed">Red</span> Reset, with implicit '0'
+
+<span class="g g-AnsiBrightDefault">Reset or normal intensity undo brightness</span>
+ <span class="g g-AnsiBrightDefault">Bright</span> Reset
+ <span class="g g-AnsiBrightDefault">Bright</span> Normal intensity
+
+<span class="g g-AnsiBrightDefault">Non-bright named foreground colors and brightness stack </span>
+ <span class="g g-AnsiBrightYellow">Bright and Yellow foreground in one Sequence</span>
+ <span class="g g-AnsiBrightYellow">Yellow foreground and Bright in one Sequence</span>
+ <span class="g g-AnsiBrightDefault">Bright Sequence</span><span class="g g-AnsiBrightYellow"> and Yellow foreground Sequence</span>
+ <span class="g g-AnsiYellow">Yellow foreground Sequence</span><span class="g g-AnsiBrightYellow"> and Bright Sequence</span>
+
+<span class="g g-AnsiBrightDefault">Bright named foreground colors do not heed or change brightness flag,</span>
+<span class="g g-AnsiBrightDefault">nor do RGB or palette-based colors</span>
+ <span class="g g-AnsiBrightDefault">Bright </span><span class="g g-AnsiBrightGreen">BrightGreen (still bright) Green</span>
+ Default <span class="g g-AnsiBrightGreen">BrightGreen </span><span class="g g-AnsiGreen">Green</span>
+ <span class="g g-AnsiBrightDefault">Bright </span><span style="color: #ff0000">palette 9 </span><span class="g g-AnsiBrightBlue">(still bright) Blue </span><span style="color: #ff0000">palette 9</span>
+ <span class="g g-AnsiBlue">Blue </span><span style="color: #ff0000">palette 9 </span><span class="g g-AnsiBlue">Blue </span><span style="color: #ff0000">palette 9</span>
+ <span class="g g-AnsiBrightDefault">Bright </span><span style="color: #ffff00">rgb(255,255,0) </span><span class="g g-AnsiBrightBlue">(still bright) Blue </span><span style="color: #ffff00">rgb(255,255,0)</span>
+ <span class="g g-AnsiBlue">Blue </span><span style="color: #ffff00">rgb(255,255,0) </span><span class="g g-AnsiBlue">Blue </span><span style="color: #ffff00">rgb(255,255,0)</span>
+
+<span class="g g-AnsiBrightDefault">Named background colors:</span>
+ <span class="g g-AnsiDefault g-AnsiBackgroundBlack">Black</span> <span class="g g-AnsiDefault g-AnsiBackgroundRed">Red</span> <span class="g g-AnsiDefault g-AnsiBackgroundGreen">Green</span> <span class="g g-AnsiDefault g-AnsiBackgroundYellow">Yellow</span> <span class="g g-AnsiDefault g-AnsiBackgroundBlue">Blue</span> <span class="g g-AnsiDefault g-AnsiBackgroundMagenta">Magenta</span> <span class="g g-AnsiDefault g-AnsiBackgroundCyan">Cyan</span> <span class="g g-AnsiDefault g-AnsiBackgroundWhite">White</span> Default
+ <span class="g g-AnsiDefault g-AnsiBackgroundBrightBlack">BrightBlack</span> <span class="g g-AnsiDefault g-AnsiBackgroundBrightRed">BrightRed</span> <span class="g g-AnsiDefault g-AnsiBackgroundBrightGreen">BrightGreen</span> <span class="g g-AnsiDefault g-AnsiBackgroundBrightYellow">BrightYellow</span>
+ <span class="g g-AnsiDefault g-AnsiBackgroundBrightBlue">BrightBlue</span> <span class="g g-AnsiDefault g-AnsiBackgroundBrightMagenta">BrightMagenta</span> <span class="g g-AnsiDefault g-AnsiBackgroundBrightCyan">BrightCyan</span> <span class="g g-AnsiDefault g-AnsiBackgroundBrightWhite">BrightWhite</span>
+
+<span class="g g-AnsiBrightDefault">RGB background colors:</span>
+ <span class="g g-AnsiDefault" style="background-color: #5b9dd9">91,157,217</span> <span class="g g-AnsiDefault" style="background-color: #9dd95b">157,217,91</span> <span class="g g-AnsiDefault" style="background-color: #d95b9d">217,91,157</span>
+
+<span class="g g-AnsiBrightDefault">Palette-based background colors:</span>
+ <span class="g g-AnsiDefault" style="background-color: #000000"> 0</span> <span class="g g-AnsiDefault" style="background-color: #800000"> 1</span> <span class="g g-AnsiDefault" style="background-color: #008000"> 2</span> <span class="g g-AnsiDefault" style="background-color: #808000"> 3</span> <span class="g g-AnsiDefault" style="background-color: #000080"> 4</span> <span class="g g-AnsiDefault" style="background-color: #800080"> 5</span> <span class="g g-AnsiDefault" style="background-color: #008080"> 6</span> <span class="g g-AnsiDefault" style="background-color: #c0c0c0"> 7</span> <span class="g g-AnsiDefault" style="background-color: #808080"> 8</span> <span class="g g-AnsiDefault" style="background-color: #ff0000"> 9</span> <span class="g g-AnsiDefault" style="background-color: #00ff00"> 10</span> <span class="g g-AnsiDefault" style="background-color: #ffff00"> 11</span> <span class="g g-AnsiDefault" style="background-color: #0000ff"> 12</span> <span class="g g-AnsiDefault" style="background-color: #ff00ff"> 13</span> <span class="g g-AnsiDefault" style="background-color: #00ffff"> 14</span> <span class="g g-AnsiDefault" style="background-color: #ffffff"> 15</span>
+ <span class="g g-AnsiDefault" style="background-color: #000000"> 16</span> <span class="g g-AnsiDefault" style="background-color: #00005f"> 17</span> <span class="g g-AnsiDefault" style="background-color: #000087"> 18</span> <span class="g g-AnsiDefault" style="background-color: #0000af"> 19</span> <span class="g g-AnsiDefault" style="background-color: #0000d7"> 20</span> <span class="g g-AnsiDefault" style="background-color: #0000ff"> 21</span> <span class="g g-AnsiDefault" style="background-color: #005f00"> 22</span> <span class="g g-AnsiDefault" style="background-color: #005f5f"> 23</span> <span class="g g-AnsiDefault" style="background-color: #005f87"> 24</span> <span class="g g-AnsiDefault" style="background-color: #005faf"> 25</span> <span class="g g-AnsiDefault" style="background-color: #005fd7"> 26</span> <span class="g g-AnsiDefault" style="background-color: #005fff"> 27</span> <span class="g g-AnsiDefault" style="background-color: #008700"> 28</span> <span class="g g-AnsiDefault" style="background-color: #00875f"> 29</span> <span class="g g-AnsiDefault" style="background-color: #008787"> 30</span> <span class="g g-AnsiDefault" style="background-color: #0087af"> 31</span>
+ <span class="g g-AnsiDefault" style="background-color: #0087d7"> 32</span> <span class="g g-AnsiDefault" style="background-color: #0087ff"> 33</span> <span class="g g-AnsiDefault" style="background-color: #00af00"> 34</span> <span class="g g-AnsiDefault" style="background-color: #00af5f"> 35</span> <span class="g g-AnsiDefault" style="background-color: #00af87"> 36</span> <span class="g g-AnsiDefault" style="background-color: #00afaf"> 37</span> <span class="g g-AnsiDefault" style="background-color: #00afd7"> 38</span> <span class="g g-AnsiDefault" style="background-color: #00afff"> 39</span> <span class="g g-AnsiDefault" style="background-color: #00d700"> 40</span> <span class="g g-AnsiDefault" style="background-color: #00d75f"> 41</span> <span class="g g-AnsiDefault" style="background-color: #00d787"> 42</span> <span class="g g-AnsiDefault" style="background-color: #00d7af"> 43</span> <span class="g g-AnsiDefault" style="background-color: #00d7d7"> 44</span> <span class="g g-AnsiDefault" style="background-color: #00d7ff"> 45</span> <span class="g g-AnsiDefault" style="background-color: #00ff00"> 46</span> <span class="g g-AnsiDefault" style="background-color: #00ff5f"> 47</span>
+ <span class="g g-AnsiDefault" style="background-color: #00ff87"> 48</span> <span class="g g-AnsiDefault" style="background-color: #00ffaf"> 49</span> <span class="g g-AnsiDefault" style="background-color: #00ffd7"> 50</span> <span class="g g-AnsiDefault" style="background-color: #00ffff"> 51</span> <span class="g g-AnsiDefault" style="background-color: #5f0000"> 52</span> <span class="g g-AnsiDefault" style="background-color: #5f005f"> 53</span> <span class="g g-AnsiDefault" style="background-color: #5f0087"> 54</span> <span class="g g-AnsiDefault" style="background-color: #5f00af"> 55</span> <span class="g g-AnsiDefault" style="background-color: #5f00d7"> 56</span> <span class="g g-AnsiDefault" style="background-color: #5f00ff"> 57</span> <span class="g g-AnsiDefault" style="background-color: #5f5f00"> 58</span> <span class="g g-AnsiDefault" style="background-color: #5f5f5f"> 59</span> <span class="g g-AnsiDefault" style="background-color: #5f5f87"> 60</span> <span class="g g-AnsiDefault" style="background-color: #5f5faf"> 61</span> <span class="g g-AnsiDefault" style="background-color: #5f5fd7"> 62</span> <span class="g g-AnsiDefault" style="background-color: #5f5fff"> 63</span>
+ <span class="g g-AnsiDefault" style="background-color: #5f8700"> 64</span> <span class="g g-AnsiDefault" style="background-color: #5f875f"> 65</span> <span class="g g-AnsiDefault" style="background-color: #5f8787"> 66</span> <span class="g g-AnsiDefault" style="background-color: #5f87af"> 67</span> <span class="g g-AnsiDefault" style="background-color: #5f87d7"> 68</span> <span class="g g-AnsiDefault" style="background-color: #5f87ff"> 69</span> <span class="g g-AnsiDefault" style="background-color: #5faf00"> 70</span> <span class="g g-AnsiDefault" style="background-color: #5faf5f"> 71</span> <span class="g g-AnsiDefault" style="background-color: #5faf87"> 72</span> <span class="g g-AnsiDefault" style="background-color: #5fafaf"> 73</span> <span class="g g-AnsiDefault" style="background-color: #5fafd7"> 74</span> <span class="g g-AnsiDefault" style="background-color: #5fafff"> 75</span> <span class="g g-AnsiDefault" style="background-color: #5fd700"> 76</span> <span class="g g-AnsiDefault" style="background-color: #5fd75f"> 77</span> <span class="g g-AnsiDefault" style="background-color: #5fd787"> 78</span> <span class="g g-AnsiDefault" style="background-color: #5fd7af"> 79</span>
+ <span class="g g-AnsiDefault" style="background-color: #5fd7d7"> 80</span> <span class="g g-AnsiDefault" style="background-color: #5fd7ff"> 81</span> <span class="g g-AnsiDefault" style="background-color: #5fff00"> 82</span> <span class="g g-AnsiDefault" style="background-color: #5fff5f"> 83</span> <span class="g g-AnsiDefault" style="background-color: #5fff87"> 84</span> <span class="g g-AnsiDefault" style="background-color: #5fffaf"> 85</span> <span class="g g-AnsiDefault" style="background-color: #5fffd7"> 86</span> <span class="g g-AnsiDefault" style="background-color: #5fffff"> 87</span> <span class="g g-AnsiDefault" style="background-color: #870000"> 88</span> <span class="g g-AnsiDefault" style="background-color: #87005f"> 89</span> <span class="g g-AnsiDefault" style="background-color: #870087"> 90</span> <span class="g g-AnsiDefault" style="background-color: #8700af"> 91</span> <span class="g g-AnsiDefault" style="background-color: #8700d7"> 92</span> <span class="g g-AnsiDefault" style="background-color: #8700ff"> 93</span> <span class="g g-AnsiDefault" style="background-color: #875f00"> 94</span> <span class="g g-AnsiDefault" style="background-color: #875f5f"> 95</span>
+ <span class="g g-AnsiDefault" style="background-color: #875f87"> 96</span> <span class="g g-AnsiDefault" style="background-color: #875faf"> 97</span> <span class="g g-AnsiDefault" style="background-color: #875fd7"> 98</span> <span class="g g-AnsiDefault" style="background-color: #875fff"> 99</span> <span class="g g-AnsiDefault" style="background-color: #878700">100</span> <span class="g g-AnsiDefault" style="background-color: #87875f">101</span> <span class="g g-AnsiDefault" style="background-color: #878787">102</span> <span class="g g-AnsiDefault" style="background-color: #8787af">103</span> <span class="g g-AnsiDefault" style="background-color: #8787d7">104</span> <span class="g g-AnsiDefault" style="background-color: #8787ff">105</span> <span class="g g-AnsiDefault" style="background-color: #87af00">106</span> <span class="g g-AnsiDefault" style="background-color: #87af5f">107</span> <span class="g g-AnsiDefault" style="background-color: #87af87">108</span> <span class="g g-AnsiDefault" style="background-color: #87afaf">109</span> <span class="g g-AnsiDefault" style="background-color: #87afd7">110</span> <span class="g g-AnsiDefault" style="background-color: #87afff">111</span>
+ <span class="g g-AnsiDefault" style="background-color: #87d700">112</span> <span class="g g-AnsiDefault" style="background-color: #87d75f">113</span> <span class="g g-AnsiDefault" style="background-color: #87d787">114</span> <span class="g g-AnsiDefault" style="background-color: #87d7af">115</span> <span class="g g-AnsiDefault" style="background-color: #87d7d7">116</span> <span class="g g-AnsiDefault" style="background-color: #87d7ff">117</span> <span class="g g-AnsiDefault" style="background-color: #87ff00">118</span> <span class="g g-AnsiDefault" style="background-color: #87ff5f">119</span> <span class="g g-AnsiDefault" style="background-color: #87ff87">120</span> <span class="g g-AnsiDefault" style="background-color: #87ffaf">121</span> <span class="g g-AnsiDefault" style="background-color: #87ffd7">122</span> <span class="g g-AnsiDefault" style="background-color: #87ffff">123</span> <span class="g g-AnsiDefault" style="background-color: #af0000">124</span> <span class="g g-AnsiDefault" style="background-color: #af005f">125</span> <span class="g g-AnsiDefault" style="background-color: #af0087">126</span> <span class="g g-AnsiDefault" style="background-color: #af00af">127</span>
+ <span class="g g-AnsiDefault" style="background-color: #af00d7">128</span> <span class="g g-AnsiDefault" style="background-color: #af00ff">129</span> <span class="g g-AnsiDefault" style="background-color: #af5f00">130</span> <span class="g g-AnsiDefault" style="background-color: #af5f5f">131</span> <span class="g g-AnsiDefault" style="background-color: #af5f87">132</span> <span class="g g-AnsiDefault" style="background-color: #af5faf">133</span> <span class="g g-AnsiDefault" style="background-color: #af5fd7">134</span> <span class="g g-AnsiDefault" style="background-color: #af5fff">135</span> <span class="g g-AnsiDefault" style="background-color: #af8700">136</span> <span class="g g-AnsiDefault" style="background-color: #af875f">137</span> <span class="g g-AnsiDefault" style="background-color: #af8787">138</span> <span class="g g-AnsiDefault" style="background-color: #af87af">139</span> <span class="g g-AnsiDefault" style="background-color: #af87d7">140</span> <span class="g g-AnsiDefault" style="background-color: #af87ff">141</span> <span class="g g-AnsiDefault" style="background-color: #afaf00">142</span> <span class="g g-AnsiDefault" style="background-color: #afaf5f">143</span>
+ <span class="g g-AnsiDefault" style="background-color: #afaf87">144</span> <span class="g g-AnsiDefault" style="background-color: #afafaf">145</span> <span class="g g-AnsiDefault" style="background-color: #afafd7">146</span> <span class="g g-AnsiDefault" style="background-color: #afafff">147</span> <span class="g g-AnsiDefault" style="background-color: #afd700">148</span> <span class="g g-AnsiDefault" style="background-color: #afd75f">149</span> <span class="g g-AnsiDefault" style="background-color: #afd787">150</span> <span class="g g-AnsiDefault" style="background-color: #afd7af">151</span> <span class="g g-AnsiDefault" style="background-color: #afd7d7">152</span> <span class="g g-AnsiDefault" style="background-color: #afd7ff">153</span> <span class="g g-AnsiDefault" style="background-color: #afff00">154</span> <span class="g g-AnsiDefault" style="background-color: #afff5f">155</span> <span class="g g-AnsiDefault" style="background-color: #afff87">156</span> <span class="g g-AnsiDefault" style="background-color: #afffaf">157</span> <span class="g g-AnsiDefault" style="background-color: #afffd7">158</span> <span class="g g-AnsiDefault" style="background-color: #afffff">159</span>
+ <span class="g g-AnsiDefault" style="background-color: #d70000">160</span> <span class="g g-AnsiDefault" style="background-color: #d7005f">161</span> <span class="g g-AnsiDefault" style="background-color: #d70087">162</span> <span class="g g-AnsiDefault" style="background-color: #d700af">163</span> <span class="g g-AnsiDefault" style="background-color: #d700d7">164</span> <span class="g g-AnsiDefault" style="background-color: #d700ff">165</span> <span class="g g-AnsiDefault" style="background-color: #d75f00">166</span> <span class="g g-AnsiDefault" style="background-color: #d75f5f">167</span> <span class="g g-AnsiDefault" style="background-color: #d75f87">168</span> <span class="g g-AnsiDefault" style="background-color: #d75faf">169</span> <span class="g g-AnsiDefault" style="background-color: #d75fd7">170</span> <span class="g g-AnsiDefault" style="background-color: #d75fff">171</span> <span class="g g-AnsiDefault" style="background-color: #d78700">172</span> <span class="g g-AnsiDefault" style="background-color: #d7875f">173</span> <span class="g g-AnsiDefault" style="background-color: #d78787">174</span> <span class="g g-AnsiDefault" style="background-color: #d787af">175</span>
+ <span class="g g-AnsiDefault" style="background-color: #d787d7">176</span> <span class="g g-AnsiDefault" style="background-color: #d787ff">177</span> <span class="g g-AnsiDefault" style="background-color: #d7af00">178</span> <span class="g g-AnsiDefault" style="background-color: #d7af5f">179</span> <span class="g g-AnsiDefault" style="background-color: #d7af87">180</span> <span class="g g-AnsiDefault" style="background-color: #d7afaf">181</span> <span class="g g-AnsiDefault" style="background-color: #d7afd7">182</span> <span class="g g-AnsiDefault" style="background-color: #d7afff">183</span> <span class="g g-AnsiDefault" style="background-color: #d7d700">184</span> <span class="g g-AnsiDefault" style="background-color: #d7d75f">185</span> <span class="g g-AnsiDefault" style="background-color: #d7d787">186</span> <span class="g g-AnsiDefault" style="background-color: #d7d7af">187</span> <span class="g g-AnsiDefault" style="background-color: #d7d7d7">188</span> <span class="g g-AnsiDefault" style="background-color: #d7d7ff">189</span> <span class="g g-AnsiDefault" style="background-color: #d7ff00">190</span> <span class="g g-AnsiDefault" style="background-color: #d7ff5f">191</span>
+ <span class="g g-AnsiDefault" style="background-color: #d7ff87">192</span> <span class="g g-AnsiDefault" style="background-color: #d7ffaf">193</span> <span class="g g-AnsiDefault" style="background-color: #d7ffd7">194</span> <span class="g g-AnsiDefault" style="background-color: #d7ffff">195</span> <span class="g g-AnsiDefault" style="background-color: #ff0000">196</span> <span class="g g-AnsiDefault" style="background-color: #ff005f">197</span> <span class="g g-AnsiDefault" style="background-color: #ff0087">198</span> <span class="g g-AnsiDefault" style="background-color: #ff00af">199</span> <span class="g g-AnsiDefault" style="background-color: #ff00d7">200</span> <span class="g g-AnsiDefault" style="background-color: #ff00ff">201</span> <span class="g g-AnsiDefault" style="background-color: #ff5f00">202</span> <span class="g g-AnsiDefault" style="background-color: #ff5f5f">203</span> <span class="g g-AnsiDefault" style="background-color: #ff5f87">204</span> <span class="g g-AnsiDefault" style="background-color: #ff5faf">205</span> <span class="g g-AnsiDefault" style="background-color: #ff5fd7">206</span> <span class="g g-AnsiDefault" style="background-color: #ff5fff">207</span>
+ <span class="g g-AnsiDefault" style="background-color: #ff8700">208</span> <span class="g g-AnsiDefault" style="background-color: #ff875f">209</span> <span class="g g-AnsiDefault" style="background-color: #ff8787">210</span> <span class="g g-AnsiDefault" style="background-color: #ff87af">211</span> <span class="g g-AnsiDefault" style="background-color: #ff87d7">212</span> <span class="g g-AnsiDefault" style="background-color: #ff87ff">213</span> <span class="g g-AnsiDefault" style="background-color: #ffaf00">214</span> <span class="g g-AnsiDefault" style="background-color: #ffaf5f">215</span> <span class="g g-AnsiDefault" style="background-color: #ffaf87">216</span> <span class="g g-AnsiDefault" style="background-color: #ffafaf">217</span> <span class="g g-AnsiDefault" style="background-color: #ffafd7">218</span> <span class="g g-AnsiDefault" style="background-color: #ffafff">219</span> <span class="g g-AnsiDefault" style="background-color: #ffd700">220</span> <span class="g g-AnsiDefault" style="background-color: #ffd75f">221</span> <span class="g g-AnsiDefault" style="background-color: #ffd787">222</span> <span class="g g-AnsiDefault" style="background-color: #ffd7af">223</span>
+ <span class="g g-AnsiDefault" style="background-color: #ffd7d7">224</span> <span class="g g-AnsiDefault" style="background-color: #ffd7ff">225</span> <span class="g g-AnsiDefault" style="background-color: #ffff00">226</span> <span class="g g-AnsiDefault" style="background-color: #ffff5f">227</span> <span class="g g-AnsiDefault" style="background-color: #ffff87">228</span> <span class="g g-AnsiDefault" style="background-color: #ffffaf">229</span> <span class="g g-AnsiDefault" style="background-color: #ffffd7">230</span> <span class="g g-AnsiDefault" style="background-color: #ffffff">231</span> <span class="g g-AnsiDefault" style="background-color: #080808">232</span> <span class="g g-AnsiDefault" style="background-color: #121212">233</span> <span class="g g-AnsiDefault" style="background-color: #1c1c1c">234</span> <span class="g g-AnsiDefault" style="background-color: #262626">235</span> <span class="g g-AnsiDefault" style="background-color: #303030">236</span> <span class="g g-AnsiDefault" style="background-color: #3a3a3a">237</span> <span class="g g-AnsiDefault" style="background-color: #444444">238</span> <span class="g g-AnsiDefault" style="background-color: #4e4e4e">239</span>
+ <span class="g g-AnsiDefault" style="background-color: #585858">240</span> <span class="g g-AnsiDefault" style="background-color: #626262">241</span> <span class="g g-AnsiDefault" style="background-color: #6c6c6c">242</span> <span class="g g-AnsiDefault" style="background-color: #767676">243</span> <span class="g g-AnsiDefault" style="background-color: #808080">244</span> <span class="g g-AnsiDefault" style="background-color: #8a8a8a">245</span> <span class="g g-AnsiDefault" style="background-color: #949494">246</span> <span class="g g-AnsiDefault" style="background-color: #9e9e9e">247</span> <span class="g g-AnsiDefault" style="background-color: #a8a8a8">248</span> <span class="g g-AnsiDefault" style="background-color: #b2b2b2">249</span> <span class="g g-AnsiDefault" style="background-color: #bcbcbc">250</span> <span class="g g-AnsiDefault" style="background-color: #c6c6c6">251</span> <span class="g g-AnsiDefault" style="background-color: #d0d0d0">252</span> <span class="g g-AnsiDefault" style="background-color: #dadada">253</span> <span class="g g-AnsiDefault" style="background-color: #e4e4e4">254</span> <span class="g g-AnsiDefault" style="background-color: #eeeeee">255</span>
+
+<span class="g g-AnsiBrightDefault">Background colors do not heed or change brightness flag</span>
+ <span class="g g-AnsiBrightDefault">Bright </span><span class="g g-AnsiBrightDefault g-AnsiBackgroundBrightGreen">BrightGreen </span><span class="g g-AnsiBrightDefault g-AnsiBackgroundGreen">Green</span>
+ <span class="g g-AnsiDefault g-AnsiBackgroundBrightGreen">BrightGreen </span><span class="g g-AnsiBlack g-AnsiBackgroundBrightGreen">Black</span>
+
+<span class="g g-AnsiBrightDefault">Foreground and background colors stack:</span>
+ <span class="g g-AnsiBlue g-AnsiBackgroundYellow">Blue on Yellow</span>
+ <span class="g g-AnsiBackgroundBrightYellow" style="color: #0000ff">Palette 12 on BrightYellow</span>
+ <span class="g g-AnsiWhite" style="background-color: #870000">White on Palette 88</span>
+ <span class="g g-AnsiBrightWhite" style="background-color: #800080">BrightWhite on RGB 128,0,128</span>
+ <span style="color: #008080; background-color: #008080">RGB 0,128,128 on RGB 0,128,128</span>
+ <span style="color: #c0c000; background-color: #008080">RGB 192,192,0 on RGB 0,128,128</span>
+
+<span class="g g-AnsiBrightDefault">Other commands are ignored</span>
+ half-bright
+ set underscore
+ set blink
+ set reverse video
+ reset selected mapping, display control flag, and toggle
+ select null mapping, set display control flag, reset
+ select null mapping, set display control flag, set toggle
+ set underline
+ underline off
+ blink off
+ reverse video off</pre>
<pre class="m-code">// this language is not highlighted</pre>
<p>Properly preserve backslashes: <code class="m-code"><span class="k">\frac</span><span class="nb">{</span>a<span class="nb">}{</span>b<span class="nb">}</span></code> ... and backticks:
<code class="m-code"><span class="na">:ref:</span><span class="nv">`a function <os.path.join()>`</span></code></p>