diff options
Diffstat (limited to 'pkg/draw')
-rw-r--r-- | pkg/draw/full_escape.go | 41 |
1 files changed, 39 insertions, 2 deletions
diff --git a/pkg/draw/full_escape.go b/pkg/draw/full_escape.go index e6a68de..ab0af25 100644 --- a/pkg/draw/full_escape.go +++ b/pkg/draw/full_escape.go @@ -2,8 +2,45 @@ package draw import "strings" -const invertedSpace = "\033[7m \033[27m" +var invertEscape = replacer(map[rune]string{ + '█': "\033[7m \033[27m", +}) + +var colorEscapeBW = replacer(map[rune]string{ + '█': "\033[48;5;231m \033[49m", + '▓': "\033[48;5;252m \033[49m", + '▒': "\033[48;5;248m \033[49m", + '░': "\033[48;5;240m \033[49m", + '·': "\033[48;5;236m \033[49m", + ' ': "\033[48;5;232m ", +}) + +var colorEscapeWB = replacer(map[rune]string{ + '█': "\033[48;5;232m \033[49m", + '▓': "\033[48;5;236m \033[49m", + '▒': "\033[48;5;240m \033[49m", + '░': "\033[48;5;248m \033[49m", + '·': "\033[48;5;252m \033[49m", + ' ': "\033[48;5;231m ", +}) + +func replacer(m map[rune]string) *strings.Replacer { + r := make([]string, 0, len(m)*2) + for old, new := range m { + r = append(r, string(old)) + r = append(r, new) + } + return strings.NewReplacer(r...) +} func FullEscape(full string) string { - return strings.Replace(full, string(fullBlock), invertedSpace, -1) + return invertEscape.Replace(full) +} + +func FullEscapeBW(full string) string { + return colorEscapeBW.Replace(full) +} + +func FullEscapeWB(full string) string { + return colorEscapeWB.Replace(full) } |