Skip to content

Commit e57f372

Browse files
committed
Add full-bw and full-wb canvas types
1 parent 4883d50 commit e57f372

File tree

6 files changed

+59
-12
lines changed

6 files changed

+59
-12
lines changed

Diff for: Makefile

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
VERSION = 1.1.10
1+
VERSION = 1.1.11
22

33
APP := jp
44
PACKAGES := $(shell go list -f {{.Dir}} ./...)

Diff for: README.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@ Usage of jp:
7474
-width int
7575
Plot width (default 0 (auto))
7676
-canvas value
77-
Canvas type. One of [full full-escape quarter braille auto] (default auto)
77+
Canvas type. One of [full full-escape full-bw full-wb quarter braille auto] (default auto)
7878
```
7979

8080
## Examples

Diff for: README.template.md

+2-1
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@ Usage of jp:
7474
-width int
7575
Plot width (default 0 (auto))
7676
-canvas value
77-
Canvas type. One of [full full-escape quarter braille auto] (default auto)
77+
Canvas type. One of [full full-escape full-bw full-wb quarter braille auto] (default auto)
7878
```
7979

8080
## Examples
@@ -415,6 +415,7 @@ In case you're on mobile, here's some PNGs of what `jp` output looks like:
415415

416416
![Line chart](docs/line_chart.png)
417417

418+
![Heatmap](docs/hist2d_full_escape.png)
418419

419420
## Licensing
420421

Diff for: cmd/jp/main.go

+16-7
Original file line numberDiff line numberDiff line change
@@ -35,11 +35,13 @@ const (
3535
)
3636

3737
const (
38-
canvasTypeFull = "full"
39-
canvasTypeFullEscape = "full-escape"
40-
canvasTypeQuarter = "quarter"
41-
canvasTypeBraille = "braille"
42-
canvasTypeAuto = "auto"
38+
canvasTypeFull = "full"
39+
canvasTypeFullEscape = "full-escape"
40+
canvasTypeFullEscapeBW = "full-bw"
41+
canvasTypeFullEscapeWB = "full-wb"
42+
canvasTypeQuarter = "quarter"
43+
canvasTypeBraille = "braille"
44+
canvasTypeAuto = "auto"
4345
)
4446

4547
const (
@@ -63,6 +65,8 @@ var config = configuration{
6365
Choices: []string{
6466
canvasTypeFull,
6567
canvasTypeFullEscape,
68+
canvasTypeFullEscapeBW,
69+
canvasTypeFullEscapeWB,
6670
canvasTypeQuarter,
6771
canvasTypeBraille,
6872
canvasTypeAuto,
@@ -175,7 +179,7 @@ func main() {
175179
p = &draw.Quarter{Buffer: buffer}
176180
case canvasTypeFull:
177181
p = &draw.Full{Buffer: buffer}
178-
case canvasTypeFullEscape:
182+
case canvasTypeFullEscape, canvasTypeFullEscapeWB, canvasTypeFullEscapeBW:
179183
p = &draw.Full{Buffer: buffer}
180184
}
181185
p.Clear()
@@ -193,8 +197,13 @@ func main() {
193197
case plotTypeHist2D:
194198
out = hist2D(x, y, c, config.HistBins)
195199
}
196-
if config.CanvasType.Value == canvasTypeFullEscape {
200+
switch config.CanvasType.Value {
201+
case canvasTypeFullEscape:
197202
out = draw.FullEscape(out)
203+
case canvasTypeFullEscapeBW:
204+
out = draw.FullEscapeBW(out)
205+
case canvasTypeFullEscapeWB:
206+
out = draw.FullEscapeWB(out)
198207
}
199208
fmt.Println(out)
200209
}

Diff for: docs/hist2d_full_escape.png

111 KB
Loading

Diff for: pkg/draw/full_escape.go

+39-2
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,45 @@ package draw
22

33
import "strings"
44

5-
const invertedSpace = "\033[7m \033[27m"
5+
var invertEscape = replacer(map[rune]string{
6+
'█': "\033[7m \033[27m",
7+
})
8+
9+
var colorEscapeBW = replacer(map[rune]string{
10+
'█': "\033[48;5;231m \033[49m",
11+
'▓': "\033[48;5;252m \033[49m",
12+
'▒': "\033[48;5;248m \033[49m",
13+
'░': "\033[48;5;240m \033[49m",
14+
'·': "\033[48;5;236m \033[49m",
15+
' ': "\033[48;5;232m ",
16+
})
17+
18+
var colorEscapeWB = replacer(map[rune]string{
19+
'█': "\033[48;5;232m \033[49m",
20+
'▓': "\033[48;5;236m \033[49m",
21+
'▒': "\033[48;5;240m \033[49m",
22+
'░': "\033[48;5;248m \033[49m",
23+
'·': "\033[48;5;252m \033[49m",
24+
' ': "\033[48;5;231m ",
25+
})
26+
27+
func replacer(m map[rune]string) *strings.Replacer {
28+
r := make([]string, 0, len(m)*2)
29+
for old, new := range m {
30+
r = append(r, string(old))
31+
r = append(r, new)
32+
}
33+
return strings.NewReplacer(r...)
34+
}
635

736
func FullEscape(full string) string {
8-
return strings.Replace(full, string(fullBlock), invertedSpace, -1)
37+
return invertEscape.Replace(full)
38+
}
39+
40+
func FullEscapeBW(full string) string {
41+
return colorEscapeBW.Replace(full)
42+
}
43+
44+
func FullEscapeWB(full string) string {
45+
return colorEscapeWB.Replace(full)
946
}

0 commit comments

Comments
 (0)