Librería JavaScript de Código Morse
El motor que hay detrás de esta web, en un archivo para tu propio proyecto.
Todo en esta web funciona sobre un mismo motor: codificar, decodificar, la temporización, el sonido y las imágenes. Ese motor se publica aquí como un archivo único sin dependencias. Al incluirlo con una etiqueta de script, dispones de MorseEngine.
Cómo incluirla
<script src="https://www.morse-code.info/lib/morse-engine.js"></script>
<script>
MorseEngine.encode('SOS'); // "... --- ..."
MorseEngine.decode('... --- ...'); // "SOS"
</script>
También hay una versión fijada en /lib/morse-engine-1.0.0.js. Úsala en cualquier cosa que no vayas a vigilar, para que un cambio futuro aquí no altere tu comportamiento. El archivo sin número de versión sigue siempre al estado actual.
Funciona como script normal, con require de CommonJS y con AMD. No hay paquete de npm porque no hay nada que instalar: es un archivo.
Qué ofrece
Texto y código
MorseEngine.encode('Hola') // texto a morse
MorseEngine.decode('.... ..') // morse a texto
MorseEngine.detect('... ---') // "morse", "text" o "leer"
MorseEngine.translate('SOS') // { art, text, morse } - elige el sentido
MorseEngine.validate('A€B') // { art, gueltig, unbekannt: ['€'] }
Temporización
MorseEngine.timing.unit(20) // 0.06 segundos por unidad
MorseEngine.timing.schedule('... ---', {wpm: 20}) // [{an, dauer}, ...]
MorseEngine.timing.figures(20, 10) // Farnsworth: duraciones en ms
El plan es una lista de tramos encendido y apagado en segundos. Todo lo que produce sonido o luz parte de ahí, y por eso el audio y el parpadeo nunca se desincronizan.
Sonido e imágenes
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('... --- ...') // cuentas para joyería Tu propio alfabeto
El alfabeto internacional viene incorporado, pero el motor acepta cualquier tabla:
const propia = MorseEngine.create({
letters: { A: '.-', B: '-...' },
digits: {}, punctuation: {}, extended: {}, prosigns: {}
});
propia.encode('AB'); // ".- -..."
La tabla incorporada está disponible como MorseEngine.alphabet si prefieres ampliarla en lugar de sustituirla.
De uso libre, también comercial. Mencionar su origen se agradece y no es condición. Si prefieres insertar un traductor ya hecho, usa el widget.
Preguntas frecuentes
-
¿Hay paquete de npm?
No. Es un archivo único sin dependencias, así que un instalador no añadiría nada. Descárgalo o enlázalo directamente.
-
¿Existe una API REST?
No, a propósito. Traducir morse no necesita servidor: es una tabla de consulta y unas cuentas. Una API añadiría latencia, un límite de uso y la dependencia de que esta web siga en pie, sin dar nada a cambio.
-
¿Cuánto ocupa?
Unos 25 kB sin comprimir, con las tablas completas. Cerca de un tercio son comentarios.
-
¿Puedo alojarla yo?
Sí, y para cualquier uso en producción deberías. Copia el archivo a tu servidor para que tu web no dependa de esta.