Termino.js è un componente front-end Open Source altamente personalizzabile che si presenta come soluzione per realizzare animazioni di terminali Web based, applicazioni e giochi. Scritto in puro codice JavaScript, senza l'uso di alcun framework, fornisce un supporto completo per le Web application che integrano funzionalità associate ai comandi dell'utente ed eventi legati ad azioni effettuate con tasti e mouse.
Caratteristiche di Termino.js
La libreria può essere utilizzata per creali terminali da inserire qualsiasi sito Web. Si tratta di una soluzione molto leggera in quanto non richiede alcuna dipendenza per il suo funzionamento. Per customizzare gli output è sufficiente intervenire sui codici HTML e le regole di CSS. Si possono inoltre inserire elementi HTML addizionali, come per esempio dei link, ai terminali realizzati.
Interessante anche il supporto per varie tipologie di input così come la possibilità di generare più istanze all'interno dello stesso progetto. Questo significa che una singola pagina Web potrà contenere più terminali e ognuno di essi sarà personalizzabile.
Per iniziare a utilizzare Termino.js non si deve fare altro che definire un tag div
che rappresenta il contenitore del terminale con una classe o ID, oltre a un tag input
con il nome della classe termino-input
per l'input del terminale. Inoltre, è necessario introdurre un tag HTML (meglio se code
) con il nome della classe termino-console
per l'output del terminale. Fatto questo sarà sufficiente creare una nuova istanza del terminale e convertire l'elemento DOM in un terminale attivo. Per un esempio concreto è disponibile la documentazione del progetto su GitHub.
Limiti della libreria
Come specificato dall'autore del progetto, Termino.js non è un'applicazione eseguibile che può essere scaricata è utilizzata localmente nel proprio computer. È in tutto e per tutto una libreria JavaScript pensata per funzionare su un browser Web.
Non si tratta inoltre di un emulatore di bash o soluzioni simili. Può però essere connessa a processi come bash o a istanze di SSH tramite API.