Bibliothèque JavaScript Code Morse
Le moteur de ce site, en un fichier pour votre propre projet.
Tout sur ce site repose sur un même moteur : encodage, décodage, cadence, son et images. Ce moteur est publié ici en un fichier unique sans dépendances. Inséré par une balise de script, il met MorseEngine à disposition.
Comment l'inclure
<script src="https://www.morse-code.info/lib/morse-engine.js"></script>
<script>
MorseEngine.encode('SOS'); // "... --- ..."
MorseEngine.decode('... --- ...'); // "SOS"
</script>
Une version figée existe aussi sous /lib/morse-engine-1.0.0.js. Employez-la pour tout ce que vous ne surveillerez pas, afin qu'une évolution ici ne change pas votre comportement. Le fichier sans numéro suit toujours la version courante.
Elle fonctionne comme script ordinaire, avec require en CommonJS et avec AMD. Il n'y a pas de paquet npm, car il n'y a rien à installer : c'est un fichier.
Ce qu'elle propose
Texte et code
MorseEngine.encode('Bonjour') // texte vers morse
MorseEngine.decode('.... ..') // morse vers texte
MorseEngine.detect('... ---') // "morse", "text" ou "leer"
MorseEngine.translate('SOS') // { art, text, morse } - choisit le sens
MorseEngine.validate('A€B') // { art, gueltig, unbekannt: ['€'] }
Cadence
MorseEngine.timing.unit(20) // 0.06 seconde par unite
MorseEngine.timing.schedule('... ---', {wpm: 20}) // [{an, dauer}, ...]
MorseEngine.timing.figures(20, 10) // Farnsworth : durees en ms
Le plan est une liste de segments actifs et inactifs en secondes. Tout ce qui produit du son ou de la lumière en part, et c'est pourquoi l'audio et le clignotement ne peuvent jamais se désynchroniser.
Son et images
const audio = MorseEngine.audio.create();
audio.abspielen(MorseEngine.timing.schedule('... ---', {wpm: 18}), {hz: 600});
MorseEngine.graphic.svg('... ---', {stil: 'balken'}) // { svg, breite, hoehe }
MorseEngine.graphic.beads('... --- ...') // perles pour la bijouterie Votre propre alphabet
L'alphabet international est intégré, mais le moteur accepte n'importe quelle table :
const propre = MorseEngine.create({
letters: { A: '.-', B: '-...' },
digits: {}, punctuation: {}, extended: {}, prosigns: {}
});
propre.encode('AB'); // ".- -..."
La table intégrée est accessible via MorseEngine.alphabet si vous préférez l'étendre plutôt que la remplacer.
Libre d'usage, y compris commercial. Une mention de la provenance est bienvenue et n'est pas une condition. Si vous préférez intégrer un traducteur tout fait, prenez le widget.
Questions fréquentes
-
Existe-t-il un paquet npm ?
Non. C'est un fichier unique sans dépendances : un installateur n'aurait rien à ajouter. Téléchargez-le ou pointez dessus directement.
-
Y a-t-il plutôt une API REST ?
Non, délibérément. Traduire du morse ne demande aucun serveur : c'est une table de correspondance et un peu de calcul. Une API ajouterait de la latence, une limite d'usage et une dépendance à ce site, sans rien apporter.
-
Quelle est sa taille ?
Environ 25 ko non minifiés, tables complètes comprises. Près d'un tiers sont des commentaires.
-
Puis-je l'héberger moi-même ?
Oui, et pour tout usage en production vous devriez. Copiez le fichier sur votre serveur pour que votre site ne dépende pas de celui-ci.