Das Modul:Morse setzt via Vorlage:Morse einen beliebigen Text in darstellbaren Morsecode um. Die ‚Textgröße‘ (Morsecode) ist auf 40 % eingestellt, kann aber mit dem 2. Parameter umgestellt werden (Siehe Dokumentation). Eine Erweiterung des umsetzbaren Zeichensatzes (z.B. arabisch, chinesisch usw.) ist generell möglich und ist bei Bedarf nachzutragen.

Die für den US-Railroadcode und Gerke-Code abweichende Zeichen/Pausenlängen werden umgesetzt.

Der gesamte Aufbau des Moduls ist nicht 100 % optimiert, um die Lesbarkeit zu erhalten. Es gibt ein paar ‚Umwege‘, die nicht unbedingt nötig sind, aber der Verständlichkeit dienen. Bis auf wenige Aufrufe von mw-Erweiterungen ist das Modul in einer Standard-Lua-Umgebung, z.B. mit „ZeroBrane Studio“) lauffähig. Das vereinfacht die Wartung spürbar. Jedoch verarbeitet Lua nicht UTF-8-Zeichen korrekt, das wird daher mit „mw.ustring“ verarbeitet.

Da das Modul auch in anderen Sprachräumen eingesetzt wird, sind sprachabhängig definierte Ergänzungen, Verfahren und Vorlagen unerwünscht, um einheitliche Wartung zu gewährleisten.

Die in Morsecode umzusetzenden Zeichen sind in Lua-Tabellen-Dateien ausgelagert, um auch unerfahrenen Anwendern eine leichte Bearbeitung zu ermöglichen.

  • Da die Tabellen teilweise temporär überschrieben werden, ist mw.loadData(...) nicht geeignet (readonly).
Funktionsmoduln
Aufruf Aufgabe Parameter
p.f(frame) Einstiegsfunktion:
  • Parameterabfrage
  • Ablaufsteuerung
  • Endformatierung entsprechend der Parameter
  • Rückgabe als Tabelle an die Vorlage
frame = Wertereübergabe als Tabelle aus der Vorlage:Morse
usout(frame) nur zur Kompatibilität mit Template:morse
tu(a,z) wandelt a in Versalien und extrahiert erstes Zeichen oder Anzahl z
Nur lateinisches Alpabet
a: Text, z: Zahl(default 1); -1 = kompletter String
colore(c,bg) farbige Darstellung des Codes und/oder Hintergrunds c: Farbe (Name oder beliebige Dezimalangabe), bg: Hintergrundfärrbung
los(t, tbl) Hauptverarbeitung, setzt Text gemäß Tabelle um t= text, tbl = Codiertabelle
monochange(txt) Setzt Zeichen nach Eintrag in Tabelle Monographs um
gerk() Übersetzt Gerke-Code, da abweichend von ITU
arr() Übersetzt US-Railroad-Code, da abweichend von ITU
sound(L,txt,sz) für Audioeinbindung (ogg-Dateien) L=Zeichen (letter), txt: Text, sz = Darstellungsgröße des Steuerzeichens
laststep(txt,version) Endverarbeitung:
  • Leerzeichen am Ende löschen
  • Kennbuchstaben in Code umsetzen unter Berücksichtigung der unterschiedlichen Darstellungsweisen||
Bedarfsweise geladen werden:
Variable Datei Inhalt/Zweck
PROS{} Modul:Morse/Prosigns Von FernmeldeunionITU festgelegte Zeichenfolgen, die mit verkürztem Code ausgegeben werden.
Beispiel: SOS = ▄ ▄ ▄ ▄▄▄ ▄▄▄ ▄▄▄ ▄ ▄ ▄  statt ▄ ▄ ▄   ▄▄▄ ▄▄▄ ▄▄▄   ▄ ▄ ▄ 
DIGR{} Modul:Morse/Digraphs Kurze Buchstabenfolgen, meist für Sonderzeichen, die in einen Code umgesetzt bzw in verkürztem Code ausgegeben werden.
Beispiel SX = $= ▄ ▄ ▄ ▄▄▄ ▄ ▄ ▄▄▄  statt ▄ ▄ ▄   ▄▄▄ ▄ ▄ ▄▄▄ 
MOGR{} Modul:Morse/Monographs Einzelzeichen aller Art, auch nichtlateinische Zeichensätze. Jedem Buchstaben ist ein Code zugeeordnet. A–Z nur als Versalien, da die Minuskeln als steuerzeichen eingesetzt werden (siehe Variable TMP{})
Weitere Tabellen:
Variable Werte Bedeutung, Versendung
TMP{} Zeichen &#;09 wären im Programmablauf mit der dezimalen Darstellung der UTF-8-Codes für die Punkt-, /Strich- und Leerzeichen verwechselbar
Beispiel: ▄ = ▄

Die korrekten Zeiten für Zeichen und Pausen hat die http ITU festgelegt. Bis auf die nichtamtliche Kurzversion worden diese Vorgaben berücksichtigt.

Um während der Verarbeitung Code eindeutig zuzuordnen und Endlosschleifen zu vermeiden, werden temporär lateinische Kleinbuchstaben eingesetzt. Diese werden in der Endverarbeitung zum Code umgeschrieben. Punkte (▄) und geschützte Leerzeichen werden entsprechend der vorgegebenen Signallänge zum Ausgabecode zusammengefügt.

Temporäre Zeichenumsetzung
temporär wird zu Zeichenfolge Darstellung
& x plpppt #9604; ▄▄▄ ▄ ▄ ▄    ▄ ▄▄▄ ▄ ▄ ▄ 
# y lpllt #9604;▄▄ ▄ ▄▄▄ ▄▄▄    ▄▄▄ ▄ ▄▄▄ ▄▄▄ 
; z lplplpt #9604;▄▄ ▄ ▄▄▄ ▄ ▄▄▄ ▄    ▄▄▄ ▄ ▄▄▄ ▄ ▄▄▄ ▄ 
0 o lllllt #9604;▄▄ ▄▄▄ ▄▄▄ ▄▄▄ ▄▄▄    ▄▄▄ ▄▄▄ ▄▄▄ ▄▄▄ ▄▄▄ 
1 b pllllt #9604; ▄▄▄ ▄▄▄ ▄▄▄ ▄▄▄    ▄ ▄▄▄ ▄▄▄ ▄▄▄ ▄▄▄ 
2 c pplllt #9604; ▄ ▄▄▄ ▄▄▄ ▄▄▄    ▄ ▄ ▄▄▄ ▄▄▄ ▄▄▄ 
3 d pppllt #9604; ▄ ▄ ▄▄▄ ▄▄▄    ▄ ▄ ▄ ▄▄▄ ▄▄▄ 
4 e pppplt #9604; ▄ ▄ ▄ ▄▄▄    ▄ ▄ ▄ ▄ ▄▄▄ 
5 f pppppt #9604; ▄ ▄ ▄ ▄    ▄ ▄ ▄ ▄ ▄ 
6 g lppppt #9604;▄▄ ▄ ▄ ▄ ▄    ▄▄▄ ▄ ▄ ▄ ▄ 
7 h llpppt #9604;▄▄ ▄▄▄ ▄ ▄ ▄    ▄▄▄ ▄▄▄ ▄ ▄ ▄ 
8 i lllppt #9604;▄▄ ▄▄▄ ▄▄▄ ▄ ▄    ▄▄▄ ▄▄▄ ▄▄▄ ▄ ▄ 
9 j llllpt #9604;▄▄ ▄▄▄ ▄▄▄ ▄▄▄ ▄    ▄▄▄ ▄▄▄ ▄▄▄ ▄▄▄ ▄ 
Text der Überschrift
tempo­rär wird zu Zeichenfolge Ausgabe
r      →    ←
p ▄  →▄ ←
l ▄▄▄  →▄▄▄ ←
t    →  ←
q   → ←
l ▄▄▄▄  →▄▄▄▄ ←
n ▄▄▄▄▄▄▄▄▄▄▄  →▄▄▄▄▄▄▄▄▄▄▄ ←

--[=[ Module - Digraphs 2021-09-21 © (CC BY-SA 3.0) by User:Kpfiwa Version: 3.4
	call it with: DIGR = require("Modul:Vorlage/Morse/Digraphs") 
	for versions in other languages, names for the Module and Template must be adapted
	
	Buchstabenfolgen, die als Ersatz für Zeichen stehen, sofern diese Zeichen 
	zussammenhängend (ohne Pause zwischen den Zeichen) übermittelt/dargestellt
	werden.
	Letters that are used as a substitute for characters, provided that these 
	characters are transmitted / displayed together (without a pause between 
	the characters). 
--]=]

return {
    ["IMI"] = "?",
    ["MIM"] = ",",
    ["NNN"] = ";",
    ["AC"] = "@",
    ["AR"] = "+",
    ["AS"] = "plpppt",
    ["HH"] = "ppppppt",
    ["BA"] = "-",
    ["BT"] = "=",
    ["CH"] = "llllt", -- CH
    ["DN"] = "/",
    ["JN"] = "'", -- ' Anführungszeichen
    ["KK"] = ")",
    ["KN"] = "(",
    ["OS"] = ":",
    ["UK"] = "_", -- _ Underline
    ["KA"] = "lplplt",
    ["KW"] = "!",
    ["SK"] = "ppplplt", 
    ["SX"] = "$", 
    ["VE"] = "ppplpt", 
    -- hy Armenian 
    ["Վերջակետ"] = "lllpppt",
    ["Ստորակետ"] = "plplplt",
    ["Միջակետ"] = "ppppppt",
    ["Գծիկ"] = "lpppplt",
    ---- Wabun
        ["◌゛"] = "ppt", --Dakuten
    ["◌゜"] = "ppllpt", --Handakuten
    ["。"] = "plplppt", --Full_stop
    ["◌̄"] = "pllplt" --Long_vowel

}