Closed dy closed 3 years ago
Probably mixed approach is the way.
For values - 0 method.
For vertical shift - 1 cursive feature see next issue.
Maybe non-latin range has drawback of bad escaping. Latin range allows:
toString(36)
Simple mapping to 0x100+ is a good balance.
What would be the right strategy to map characters?
0. Direct mapping to char codes with offset
uints.map(v => String.fromCharCode(v + offset))
1. Hex pairs (doubles) as
a0a1a2
uints.map(v => v.toString(16)).join('')
LigatureCaret
and ligature width is equally split2. a-z as main values, 0-9 as fraction (0-width), or any other separation on base and fract
uints.map(v => Math.floor(v) + '\u0300'.repeat(v%1))
etc.a0, b3, g9
3. 0-9 as main values, ↑ and ↓ as combining modifiers
~ similar to previous conceptually
0̂9̂̂̂5̂̂̂̂̂̂̂ → 0.1, 9.3, 5.7
etc.uints.map(v => Math.floor(v))
to zoom control. ~0̂̂̂̂̂̂̂̂̂̂ === 1
, latin arithmetic-like system4. Baseless modifiers only
.̂̂̂̂.̬̬̬.̬̬.̬̬̬̬̬̬̬.̬.̬̬̬̬̬̬̬̬̬̬̬̬̬.̂̂̂.̂̂̂̂̂̂̂.̂̂̂̂̂̂̂̂̂̂.̂̂̂.̂̂̂̂.̂̂̂̂̂.̂̂.̂
~ Printer-like tech. ~ With vertical space combining mark enables xy-plot as a single string... ~ Would require sort of i,d,v,x composing characters to combine into bar
5. First value is chunk identifier (latin), rest is spaces with combining marks