summaryrefslogtreecommitdiffstats
path: root/pkg/draw/full_escape.go
diff options
context:
space:
mode:
Diffstat (limited to 'pkg/draw/full_escape.go')
-rw-r--r--pkg/draw/full_escape.go41
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)
}