2024-06-03 ~roberto_vpt@gemlog.blue
Recentemente ho scritto a proposito di messaggi o commenti inviati via gemini input e ultimamente sulla possibilità di adottare gli stili di testo da IRC.
Servono un potenziamento della capacita del client e una convenzione riconosciuta dal server che comunque deve memorizzare anche il CN dell'utente con la possibilità di gestire una scala di permessi, per esempio:
0:Bloccato, 1:ospite, 2:utente, 3:membro, 4:admin.
Dei permessi scriverò in seguito perché ora non ho un progetto che possa arrivare oltre al certificato client valido.
Il line editor deve essere capace di introdurre i codici di stile IRC ed il line feed Gemini per l'input multi linea.
Considerando il ^V non adatto perché spesso usato per page down e in fondo si chiama "verbatim", ho cercato ancora.
Tra i codici tasto meno usati ci sono ^B e ^F ed anche da terminale android sono forniti come tasti o sulla tastiera o sulla app terminale.
Quindi nell'editor di linea uso ^B come **bold** inserito direttamente e ^F come comando "format" che accetta un carattere successivo per costruire ed introdurre i codici IRC.
Già che ci sono metto ^X come "kill line" al posto di ^U che diviene _underline_, introdotto nel testo come ^_.
Anche ^I, ^R e ^O sono usabili direttamente nei client IRC e se riesco li uso.
In irssi perfino ^C è usabile direttamente ma lasciamo perdere.
In weechat ^C è il prefisso per gli altri codici.
Ho scoperto in xchat|hexchat un ulteriore carattere, il ^H con funzione "Hide", che credo sostituisca l'uso comune di mettere BG e FG allo stesso colore.
Inoltre un client monocromatico potrebbe usare una serie di asterischi in modo soddisfacente.
In ultimo il ^O starebbe per Original (default) e quindi, anche per un eventuale inserimento diretto, cambio Normal.
C) ^C colore decimale
I) ^] italic
H) ^H hide, BG=FG o visualizza asterischi
S) ^^ strikethrough
M) ^Q monospace
D) ^D colore esadecimale (poco usato, meglio evitare)
L) ^J LF, nell'input multi linea Gemini
F) ^L FF un linefeed che forza la lettura per pagine (sarà quasi sempre ignorato)
K) ^K break va a capo nello stile della linea.
_Per evitare ogni problema la lettera è accettata anche in minuscolo e come control._
Nell'editor i ctrls riconosciuti sono visualizzati come le lettere precedenti in inverse.
Nel render sono tradotti in codici ANSI o nei corrispondenti comandi dell'interfaccia usata.
Il riconoscimento dei colori IRC deve essere completo ma possiamo semplificare l'inserimento dei più usati.
Prevedendo sempre il colore di sfondo si risolvono problemi di visualizzazione.
[0-9]) indice nella palette, composta dai 99 colori IRC, "FG,BG" in decimale a cui si antepone il ^C.
0: 14,14 Secret
1: 04,15 Red
2: 03,15 Green
3: 07,15 Orange
4: 06,15 Purple
5: 01,19 Mark
6: 01,04 Danger
7: 01,07 Warning
8: 04,08 Caution
9: 00,12 Info
I primi 16 colori IRC, VGA/XP/ANSI, vanno inseriti come RGB.
Gli altri si potrebbero inserire con il corrispondente indice ANSI ma comunque servono due stringhe, una per FG e una per BG, ed a questo punto è meglio fare una unica tabella RGB.
00 #FFFFFF White
01 #000000 Black
02 #00007F Blue
03 #009300 Green
04 #FF0000 Light Red
05 #7F0000 Brown
06 #9C009C Purple
07 #FC7F00 Orange
08 #FFFF00 Yellow
09 #00FC00 Light Green
10 #009393 Cyan
11 #00FFFF Light Cyan
12 #0000FC Light Blue
13 #FF00FF Magenta
14 #7F7F7F Grey
15 #D2D2D2 Light Grey
Tralascio il resto della tabella.
TBC