diff options
| author | historia <[not public]> | 2026-06-29 22:31:11 -0400 |
|---|---|---|
| committer | historia <[not public]> | 2026-06-29 22:31:11 -0400 |
| commit | 069d3c1c81d71042706372df153254487a765dfc (patch) | |
| tree | d83a4a3954d2b8304f49d83e365f4c2b075b91eb /internal/admin/xterm_to_css.go | |
| parent | 6c5271fb085b4571a10f106391974c249cd84317 (diff) | |
| download | thehouseoficarus-069d3c1c81d71042706372df153254487a765dfc.tar.gz | |
feat: wip web admin for mapping and crud
Diffstat (limited to 'internal/admin/xterm_to_css.go')
| -rw-r--r-- | internal/admin/xterm_to_css.go | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/internal/admin/xterm_to_css.go b/internal/admin/xterm_to_css.go new file mode 100644 index 0000000..098ce62 --- /dev/null +++ b/internal/admin/xterm_to_css.go @@ -0,0 +1,40 @@ +package admin + +import ( + "fmt" + "strconv" + "strings" + + "thehouseoficarus/internal/color" +) + +func XtermToCSS(xtermHex string) string { + xtermHex = strings.TrimPrefix(xtermHex, "#") + idx, err := strconv.ParseUint(xtermHex, 16, 8) + if err != nil || idx > 255 { + return "#808080" + } + r, g, b := color.Xterm256ToRGB(int(idx)) + return fmt.Sprintf("#%02x%02x%02x", r, g, b) +} + +func XtermColorForCSS(idx int) string { + if idx < 0 || idx > 255 { + return "#808080" + } + r, g, b := color.Xterm256ToRGB(idx) + return fmt.Sprintf("#%02x%02x%02x", r, g, b) +} + +func xtermColorList() []map[string]any { + var list []map[string]any + for i := 0; i < 256; i++ { + r, g, b := color.Xterm256ToRGB(i) + list = append(list, map[string]any{ + "index": i, + "hex": fmt.Sprintf("%02X%02X%02X", r, g, b), + "color": fmt.Sprintf("#%02x%02x%02x", r, g, b), + }) + } + return list +} |
