trit-text

1.0.1 • Public • Published

trit-text

A 5-trit text format, analogous to 7-bit ASCII

Usage:

var toUnicode = require('trit-text').toUnicode;
var isInverted = require('trit-text').isInverted;
var fromUnicode = require('trit-text').fromUnicode;
var fromEvent = require('trit-text').fromEvent;
var allUnicode = require('trit-text').allUnicode;
var toTritmap9x14 = require('trit-text').toTritmap9x14;

The trit-text codepoints range from -121 to +121, comparable to ASCII 0 to 127.

to/fromUnicode converts between Unicode and trit-text, and isInverted returns whether the character is "inverted"/emphasized (that is, -121 to -1; normal characters are 1 to 121):

toUnicode(42);      // 'a'
fromUnicode('a');   // 42
isInverted(42);     // false
isInverted(-42);    // true

fromEvent(ev) takes a DOM keydown event and returns a representative trit-text character codepoint.

toTritmap9x14(cp) returns a 9x14 tritmap (analogous to bitmap) to graphically represent the given character.

Codepoint reference:

+1 to +121 normal text (ex: black on white, green on black)
-1 to -121 inverted/emphasized (ex: reverse video white on black, red on black)

control/digits
00000 = 0       NUL   null, string terminator, only unbalanced; in serial mode zero-width, matrix mode alternating flashing normal/inverted
00001 = 1       1
0001i = 2       2
00010 = 3       3
00011 = 4       4
001ii = 5       5
001i0 = 6       6
001i1 = 7       7
0010i = 8       8
00100 = 9       9
00101 = 10      0
0011i = 11      ESC escape/reserved code, visual representation: ⌂ U+2302 house
00110 = 12      NL  newline, \n, linefeed, visual representation: ♪ U+266a eighth note
00111 = 13      SP  space

    (01xxx=left, pairs with 10xxx=right, and control(1i)=01, shift-control(11)=10)
left punctuation                                        right punctuation                                           
01iii = 14  @                                           10iii = 68  `
01ii0 = 15  ☺ U+263A smiley                             10ii0 = 69  ☻ U+263B inverted smiley
01ii1 = 16  ♥ U+2665 hearts                             10ii1 = 70  ♦ U+2666 diamonds
01i0i = 17  ♣ U+2663 clubs                              10i0i = 71  ♠ U+2660 spades
01i00 = 18  • U+2022 bullet                             10i00 = 72  ◘ U+25D8 inverted bullet
01i01 = 19  ○ U+25CB circle                             10i01 = 73  ◙ U+25D9 inverted circle
01i1i = 20  ♂ U+2642 male                               10i1i = 74  ♀ U+2640 female
01i10 = 21  ☼ U+263C solar                              10i10 = 75  ▒ U+2592 medium shade
01i11 = 22  ← U+2190 left arrow                         10i11 = 76  → U+2192 right arrow
010ii = 23  ↑ U+2191 up arrow                           100ii = 77  ↓ U+2193 down arrow
010i0 = 24  « U+00AB left-pointing double angle quot    100i0 = 78  » U+00BB right-pointing double angle quot
010i1 = 25  ± U+00B1 plus-minus sign                    100i1 = 79  ∓ U+2213 minus-or-plus sign
0100i = 26  (                                           1000i = 80  )                                              
01000 = 27  [                                           10000 = 81  ]
01001 = 28  <                                           10001 = 82  >
0101i = 29  {                                           1001i = 83  }
01010 = 30  \                                           10010 = 84  /
01011 = 31  .                                           10011 = 85  ,
011ii = 32  ;                                           101ii = 86  :
011i0 = 33  '                                           101i0 = 87  "
011i1 = 34  !                                           101i1 = 88  ?
0110i = 35  #                                           1010i = 89  $
01100 = 36  %                                           10100 = 90  &
01101 = 37  -                                           10101 = 91  +
0111i = 38  *                                           1011i = 92  |
01110 = 39  =                                           10110 = 93  ≈ U+2248 approximately equal
01111 = 40  ^                                           10111 = 94  ~
                                                            
 (1cxxxx = letters, where c=case, i=lower, 1=upper - toggle 2nd mst i=lowercase,1=uppercase (includes _ and ‾, allow in program identifiers)
lowercase letters                                       uppercase letters
1iiii = 41 ‾ U+203E overline (standalone)               11iii = 95   _ underline
1iii0 = 42 a                                            11ii0 = 96   A
1iii1 = 43 b                                            11ii1 = 97   B
1ii0i = 44 c                                            11i0i = 98   C
1ii00 = 45 d                                            11i00 = 99   D
1ii01 = 46 e                                            11i01 = 100  E
1ii1i = 47 f                                            11i1i = 101  F
1ii10 = 48 g                                            11i10 = 102  G
1ii11 = 49 h                                            11i11 = 103  H
1i0ii = 50 i                                            110ii = 104  I
1i0i0 = 51 j                                            110i0 = 105  J
1i0i1 = 52 k                                            110i1 = 106  K
1i00i = 53 l                                            1100i = 107  L
1i000 = 54 m                                            11000 = 108  M
1i001 = 55 n                                            11001 = 109  N
1i01i = 56 o                                            1101i = 110  O
1i010 = 57 p                                            11010 = 111  P
1i011 = 58 q                                            11011 = 112  Q
1i1ii = 59 r                                            111ii = 113  R
1i1i0 = 60 s                                            111i0 = 114  S
1i1i1 = 61 t                                            111i1 = 115  T
1i10i = 62 u                                            1110i = 116  U
1i100 = 63 v                                            11100 = 117  V 
1i101 = 64 w                                            11101 = 118  W
1i11i = 65 x                                            1111i = 119  X
1i110 = 66 y                                            11110 = 120  Y
1i111 = 67 z                                            11111 = 121  Z

Codepoints above are shown in decimal and balanced-ternary. Some characters above are inspired by the CP437 character set, and the IBM PC EGA 9x14 bitmap font.

Package Sidebar

Install

npm i trit-text

Weekly Downloads

0

Version

1.0.1

License

MIT

Last publish

Collaborators

  • thirdcoder