termstr: Coding style
- Add rgb color properties to char styles.
This commit is contained in:
parent
21a9ec2826
commit
960cc57559
2 changed files with 13 additions and 11 deletions
|
|
@ -165,14 +165,10 @@ def highlight_str(line, highlight_color, transparency):
|
|||
|
||||
@functools.lru_cache(maxsize=500)
|
||||
def blend_style(style):
|
||||
fg_color = (style.fg_color if type(style.fg_color) == tuple
|
||||
else termstr.XTERM_COLORS[style.fg_color])
|
||||
bg_color = (style.bg_color if type(style.bg_color) == tuple
|
||||
else termstr.XTERM_COLORS[style.bg_color])
|
||||
return termstr.CharStyle(
|
||||
termstr.blend_color(fg_color, highlight_color, transparency),
|
||||
termstr.blend_color(bg_color, highlight_color, transparency), is_bold=style.is_bold,
|
||||
is_italic=style.is_italic, is_underlined=style.is_underlined)
|
||||
termstr.blend_color(style.fg_rgb_color, highlight_color, transparency),
|
||||
termstr.blend_color(style.bg_rgb_color, highlight_color, transparency),
|
||||
is_bold=style.is_bold, is_italic=style.is_italic, is_underlined=style.is_underlined)
|
||||
return termstr.TermStr(line).transform_style(blend_style)
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -147,14 +147,20 @@ class CharStyle:
|
|||
return "".join([ESC, NORMAL, fg_termcode, bg_termcode, bold_code,
|
||||
italic_code, underline_code])
|
||||
|
||||
@functools.cached_property
|
||||
def fg_rgb_color(self):
|
||||
return self.fg_color if type(self.fg_color) == tuple else XTERM_COLORS[self.fg_color]
|
||||
|
||||
@functools.cached_property
|
||||
def bg_rgb_color(self):
|
||||
return self.bg_color if type(self.bg_color) == tuple else XTERM_COLORS[self.bg_color]
|
||||
|
||||
def as_html(self):
|
||||
bold_code = "font-weight:bold; " if self.is_bold else ""
|
||||
italic_code = "font-style:italic; " if self.is_italic else ""
|
||||
underline_code = "text-decoration:underline; " if self.is_underlined else ""
|
||||
fg_color = self.fg_color if type(self.fg_color) == tuple else XTERM_COLORS[self.fg_color]
|
||||
bg_color = self.bg_color if type(self.bg_color) == tuple else XTERM_COLORS[self.bg_color]
|
||||
return (f"<style>.S{id(self)} {{font-size:80%%; color:rgb{fg_color!r};"
|
||||
f" background-color:rgb{bg_color!r}; "
|
||||
return (f"<style>.S{id(self)} {{font-size:80%%; color:rgb{self.fg_rgb_color!r};"
|
||||
f" background-color:rgb{self.bg_rgb_color!r}; "
|
||||
f"{bold_code}{italic_code}{underline_code}}}</style>")
|
||||
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue