diff --git a/README.md b/README.md
index c2b74c5..619fbf0 100644
--- a/README.md
+++ b/README.md
@@ -20,19 +20,21 @@ preeti('sf7df08"');
#### Other fonts
-You also can use converters for PCS Nepali and Kantipur by providing a second parameter.
+You also can use converters for other fonts by providing a second parameter. Here is the list of all supported fonts.
```javascript
-preeti('sf7df08"', 'PCS Nepali');
+preeti('sf&df)*"', 'PCS Nepali');
preeti('sf7df08"', 'Kantipur');
+preeti('sf&df)*"', 'Fontasy Himali TT');
+preeti('sf7df08"', 'Sagarmatha');
```
### Original Shell and JS code
-This project is based on code and regular expressions from the FOSS Nepal community
+This project is based on code and regular expressions from the [FOSS Nepal](https://github.com/foss-np) community
-- 2utf8 a Bash command
-- nep-ttf2utf a JS and Python3 port by sapradhan
+- [2utf8](https://github.com/foss-np/2utf8) a Bash command
+- [nep-ttf2utf](https://github.com/sapradhan/nep-ttf2utf) a JS and Python3 port by sapradhan
### License
diff --git a/package.json b/package.json
index 9483656..1194856 100644
--- a/package.json
+++ b/package.json
@@ -1,7 +1,7 @@
{
"name": "preeti",
- "version": "1.0.3",
- "description": "Convert Nepali Preeti ASCII font to Unicode",
+ "version": "1.1.0",
+ "description": "Convert text in Nepali ASCII fonts to Unicode",
"main": "preeti.js",
"scripts": {
"test": "mocha"
@@ -22,7 +22,7 @@
"url": "https://github.com/mapmeld/preeti/issues"
},
"devDependencies": {
- "mocha": "^2.2.5"
+ "mocha": "^11.0.1"
},
"homepage": "https://github.com/mapmeld/preeti#readme",
"publicKey": "public_key.asc"
diff --git a/preeti.js b/preeti.js
index 144a5ee..fb603ff 100644
--- a/preeti.js
+++ b/preeti.js
@@ -1,25 +1,4 @@
-var all_rules = {
- "preeti": {
- "name": "Preeti",
- "post-rules": [["्ा", ""], ["(त्र|त्त)([^उभप]+?)m", "$1m$2"], ["त्रm", "क्र"], ["त्तm", "क्त"], ["([^उभप]+?)m", "m$1"], ["उm", "ऊ"], ["भm", "झ"], ["पm", "फ"], ["इ{", "ई"], ["ि((.्)*[^्])", "$1ि"], ["(.[ािीुूृेैोौंःँ]*?){", "{$1"], ["((.्)*){", "{$1"], ["{", "र्"], ["([ाीुूृेैोौंःँ]+?)(्(.्)*[^्])", "$2$1"], ["्([ाीुूृेैोौंःँ]+?)((.्)*[^्])", "्$2$1"], ["([ंँ])([ािीुूृेैोौः]*)", "$2$1"], ["ँँ", "ँ"], ["ंं", "ं"], ["ेे", "े"], ["ैै", "ै"], ["ुु", "ु"], ["ूू", "ू"], ["^ः", ":"], ["टृ", "ट्ट"], ["ेा", "ाे"], ["ैा", "ाै"], ["अाे", "ओ"], ["अाै", "औ"], ["अा", "आ"], ["एे", "ऐ"], ["ाे", "ो"], ["ाै", "ौ"]],
- "v": "1.0.1",
- "char-map": {
- "÷": "/", "v": "ख", "r": "च", "\"": "ू", "~": "ञ्", "z": "श", "ç": "ॐ", "f": "ा", "b": "द", "n": "ल", "j": "व", "×": "×", "V": "ख्", "R": "च्", "ß": "द्म", "^": "६", "Û": "!", "Z": "श्", "F": "ँ", "B": "द्य", "N": "ल्", "Ë": "ङ्ग", "J": "व्", "6": "ट", "2": "द्द", "¿": "रू", ">": "श्र", ":": "स्", "§": "ट्ट", "&": "७", "£": "घ्", "•": "ड्ड", ".": "।", "«": "्र", "*": "८", "„": "ध्र", "w": "ध", "s": "क", "g": "न", "æ": "“", "c": "अ", "o": "य", "k": "प", "W": "ध्", "Ö": "=", "S": "क्", "Ò": "¨", "_": ")", "[": "ृ", "Ú": "’", "G": "न्", "ˆ": "फ्", "C": "ऋ", "O": "इ", "Î": "ङ्ख", "K": "प्", "7": "ठ", "¶": "ठ्ठ", "3": "घ", "9": "ढ", "?": "रु", ";": "स", "'": "ु", "#": "३", "¢": "द्घ", "/": "र", "+": "ं", "ª": "ङ", "t": "त", "p": "उ", "|": "्र", "x": "ह", "å": "द्व", "d": "म", "`": "ञ", "l": "ि", "h": "ज", "T": "त्", "P": "ए", "Ý": "ट्ठ", "\\": "्", "Ù": ";", "X": "ह्", "Å": "हृ", "D": "म्", "@": "२", "Í": "ङ्क", "L": "ी", "H": "ज्", "4": "द्ध", "±": "+", "0": "ण्", "<": "?", "8": "ड", "¥": "र्", "$": "४", "¡": "ज्ञ्", ",": ",", "©": "र", "(": "९", "‘": "ॅ", "u": "ग", "q": "त्र", "}": "ै", "y": "थ", "e": "भ", "a": "ब", "i": "ष्", "‰": "झ्", "U": "ग्", "Q": "त्त", "]": "े", "˜": "ऽ", "Y": "थ्", "Ø": "्य", "E": "भ्", "A": "ब्", "M": "ः", "Ì": "न्न", "I": "क्ष्", "5": "छ", "´": "झ", "1": "ज्ञ", "°": "ङ्ढ", "=": ".", "Æ": "”", "‹": "ङ्घ", "%": "५", "¤": "झ्", "!": "१", "-": "(", "›": "द्र", ")": "०", "…": "‘", "Ü": "%"
- }
- },
- "pcs nepali": {
- "name": "PCS Nepali",
- "post-rules": [["्ा", ""], ["(त्र|त्त)([^उभप]+?)m", "$1m$2"], ["त्रm", "क्र"], ["त्तm", "क्त"], ["([^उभप]+?)m", "m$1"], ["उm", "ऊ"], ["भm", "झ"], ["पm", "फ"], ["इ{", "ई"], ["ि((.्)*[^्])", "$1ि"], ["(.[ािीुूृेैोौंःँ]*?){", "{$1"], ["((.्)*){", "{$1"], ["{", "र्"], ["([ाीुूृेैोौंःँ]+?)(्(.्)*[^्])", "$2$1"], ["्([ाीुूृेैोौंःँ]+?)((.्)*[^्])", "्$2$1"], ["([ंँ])([ािीुूृेैोौः]*)", "$2$1"], ["ँँ", "ँ"], ["ंं", "ं"], ["ेे", "े"], ["ैै", "ै"], ["ुु", "ु"], ["ूू", "ू"], ["^ः", ":"], ["टृ", "ट्ट"], ["ेा", "ाे"], ["ैा", "ाै"], ["अाे", "ओ"], ["अाै", "औ"], ["अा", "आ"], ["एे", "ऐ"], ["ाे", "ो"], ["ाै", "ौ"]],
- "v": "1.0.0",
- "char-map": {"t": "त", "÷": "/", "v": "ख", "ñ": "ङ", "p": "उ", "r": "च", "|": "्र", "~": "ङ", "x": "ह", "z": "श", "å": "द्व", "d": "म", "ç": "ॐ", "f": "ा", "`": "ञ्", "b": "द", "í": "ष", "l": "ि", "n": "ल", "é": "ङ्ग", "h": "ज", "j": "व", "T": "त्", "V": "ख्", "P": "ए", "R": "च्", "\\": "्", "ß": "द्म", "^": "ट", "Ù": "ह", "X": "ह्", "Z": "श्", "D": "म्", "F": "ा", "@": "द्द", "B": "द्य", "L": "ी", "N": "ल्", "H": "ज्", "J": "व्", "4": "४", "·": "ट्ठ", "6": "६", "0": "०", "2": "२", "<": "्र", "¿": "रु", ">": "श्र", "8": "८", ":": "स्", "¥": "ऋ", "$": "द्ध", "§": "ट्ट", "&": "ठ", "¡": "ज्ञ्", "£": "घ्", "\"": "ू", ",": ",", ".": "।", "©": "?", "(": "ढ", "*": "ड", "u": "ग", "w": "ध", "q": "त्र", "s": "क", "}": "ै", "y": "थ", "ø": "य्", "ú": "ू", "e": "भ", "g": "न", "æ": "“", "a": "ब", "c": "अ", "o": "य", "i": "ष्", "k": "प", "U": "ग्", "Ô": "क्ष", "W": "ध्", "Q": "त्त", "S": "क्", "Ò": "ू", "]": "े", "_": ")", "Y": "थ्", "Ø": "्य", "[": "ृ", "E": "भ्", "G": "न्", "Æ": "”", "A": "ब्", "C": "र्", "M": "ः", "O": "इ", "I": "क्ष्", "K": "प्", "5": "५", "´": "झ", "7": "७", "1": "१", "°": "ङ्क", "3": "३", "=": ".", "?": "रू", "9": "९", ";": "स", "%": "छ", "¤": "ँ", "'": "ु", "!": "ज्ञ", "#": "घ", "¢": "द्घ", "-": "(", "/": "र", "®": "+", ")": "ण्", "+": "ं", "ª": "ञ"}
- },
- "kantipur": {
- "name": "Kantipur",
- "post-rules": [["्ा", ""], ["(त्र|त्त)([^उभप]+?)m", "$1m$2"], ["त्रm", "क्र"], ["त्तm", "क्त"], ["([^उभप]+?)m", "m$1"], ["उm", "ऊ"], ["भm", "झ"], ["पm", "फ"], ["इ{", "ई"], ["ि((.्)*[^्])", "$1ि"], ["(.[ािीुूृेैोौंःँ]*?){", "{$1"], ["((.्)*){", "{$1"], ["{", "र्"], ["([ाीुूृेैोौंःँ]+?)(्(.्)*[^्])", "$2$1"], ["्([ाीुूृेैोौंःँ]+?)((.्)*[^्])", "्$2$1"], ["([ंँ])([ािीुूृेैोौः]*)", "$2$1"], ["ँँ", "ँ"], ["ंं", "ं"], ["ेे", "े"], ["ैै", "ै"], ["ुु", "ु"], ["ूू", "ू"], ["^ः", ":"], ["टृ", "ट्ट"], ["ेा", "ाे"], ["ैा", "ाै"], ["अाे", "ओ"], ["अाै", "औ"], ["अा", "आ"], ["एे", "ऐ"], ["ाे", "ो"], ["ाै", "ौ"]],
- "v": "1.0.1",
- "char-map": {"÷": "/", "v": "ख", "r": "च", "\"": "ू", "~": "ञ्", "z": "श", "ç": "ॐ", "f": "ा", "b": "द", "n": "ल", "j": "व", "V": "ख्", "R": "च्", "ß": "द्म", "^": "६", "Z": "श्", "F": "ा", "B": "द्य", "Ï": "फ्", "N": "ल्", "Ë": "ङ्ग", "J": "व्", "6": "ट", "2": "द्द", "¿": "रू", ">": "श्र", ":": "स्", "§": "ट्ट", "&": "७", "£": "घ्", "•": "ड्ड", "¯": "¯", ".": "।", "«": "्र", "*": "८", "„": "ध्र", "w": "ध", "s": "क", "g": "न", "æ": "“", "c": "अ", "o": "य", "k": "प", "W": "ध्", "S": "क्", "Ò": "¨", "_": ")", "[": "ृ", "Ú": "’", "G": "न्", "Æ": "”", "C": "ऋ", "Â": "र", "O": "इ", "Î": "फ्", "K": "प्", "7": "ठ", "¶": "ठ्ठ", "3": "घ", "9": "ढ", "?": "रु", ";": "स", "º": "फ्", "'": "ु", "#": "३", "¢": "द्घ", "/": "र", "®": "र", "+": "ं", "ª": "ङ", "t": "त", "p": "उ", "|": "्र", "x": "ह", "å": "द्व", "d": "म", "`": "ञ", "l": "ि", "h": "ज", "T": "त्", "P": "ए", "Œ": "त्त्", "\\": "्", "X": "हृ", "D": "म्", "@": "२", "Í": "ङ्क", "L": "ी", "H": "ज्", "µ": "र", "4": "द्ध", "±": "+", "0": "ण्", "<": "?", "8": "ड", "¥": "र्", "$": "४", "¡": "ज्ञ्", "†": "!", "™": "र", "": "(", ",": ",", "©": "र", "(": "९", "“": "ँ", "‘": "ॅ", "u": "ग", "q": "त्र", "}": "ै", "y": "थ", "ø": "य्", "e": "भ", "a": "ब", "i": "ष्", "‰": "झ्", "U": "ग्", "Ô": "क्ष", "Q": "त्त", "œ": "त्र्", "]": "े", "˜": "ऽ", "Y": "थ्", "Ø": "्य", "E": "भ्", "A": "ब्", "M": "ः", "Ì": "न्न", "I": "क्ष्", "È": "ष", "5": "छ", "´": "झ", "1": "ज्ञ", "°": "ङ्ढ", "=": ".", "‹": "ङ्ग", "%": "५", "¤": "झ्", "!": "१", "-": "(", "¬": "…", "›": "ऽ", ")": "०", "¨": "ङ्ग", "…": "‘"}
- }
-};
+const all_rules = {"pcs nepali": {"name": "PCS Nepali", "v": "1.1.0", "char-map": {"~": "ङ", "!": "ज्ञ", "@": "द्द", "#": "घ", "$": "द्ध", "%": "छ", "^": "ट", "&": "ठ", "*": "ड", "(": "ढ", ")": "ण्", "_": ")", "+": "ं", "`": "ञ्", "1": "१", "2": "२", "3": "३", "4": "४", "5": "५", "6": "६", "7": "७", "8": "८", "9": "९", "0": "०", "-": "(", "=": ".", "Q": "त्त", "W": "ध्", "E": "भ्", "R": "च्", "T": "त्", "Y": "थ्", "U": "ग्", "I": "क्ष्", "O": "इ", "P": "ए", "}": "ै", "|": "्र", "q": "त्र", "w": "ध", "e": "भ", "r": "च", "t": "त", "y": "थ", "u": "ग", "i": "ष्", "o": "य", "p": "उ", "[": "ृ", "]": "े", "\\": "्", "A": "ब्", "S": "क्", "D": "म्", "F": "ा", "G": "न्", "H": "ज्", "J": "व्", "K": "प्", "L": "ी", ":": "स्", "\"": "ू", "a": "ब", "s": "क", "d": "म", "f": "ा", "g": "न", "h": "ज", "j": "व", "k": "प", "l": "ि", ";": "स", "'": "ु", "Z": "श्", "X": "ह्", "C": "ऱ्", "V": "ख्", "B": "द्य", "N": "ल्", "M": "ः", "<": "्र", ">": "श्र", "?": "रू", "z": "श", "x": "ह", "c": "अ", "v": "ख", "b": "द", "n": "ल", ",": ",", ".": "।", "/": "र", "¡": "ज्ञ्", "¢": "द्घ", "£": "घ्", "¤": "ँ", "¥": "ऋ", "§": "ट्ट", "©": "?", "ª": "ञ", "®": "+", "°": "ङ्क", "´": "झ", "·": "ट्ठ", "¿": "रु", "Æ": "”", "Ò": "ू", "Ô": "क्ष", "Ø": "्य", "Ù": "ह", "ß": "द्म", "å": "द्व", "æ": "“", "ç": "ॐ", "é": "ङ्ग", "í": "ष", "ñ": "ङ", "÷": "/", "ø": "य्", "ú": "ू"}, "post-rules": [["्ा", ""], ["(त्र|त्त)([^उभप]+?)m", "$1m$2"], ["त्रm", "क्र"], ["त्तm", "क्त"], ["([^उभप]+?)m", "m$1"], ["उm", "ऊ"], ["भm", "झ"], ["पm", "फ"], ["इ{", "ई"], ["ि((.्)*[^्])", "$1ि"], ["(.[ािीुूृेैोौंःँ]*?){", "{$1"], ["((.्)*){", "{$1"], ["{", "र्"], ["([ाीुूृेैोौंःँ]+?)(्(.्)*[^्])", "$2$1"], ["्([ाीुूृेैोौंःँ]+?)((.्)*[^्])", "्$2$1"], ["([ंँ])([ािीुूृेैोौः]*)", "$2$1"], ["ँँ", "ँ"], ["ंं", "ं"], ["ेे", "े"], ["ैै", "ै"], ["ुु", "ु"], ["ूू", "ू"], ["^ः", ":"], ["टृ", "ट्ट"], ["ेा", "ाे"], ["ैा", "ाै"], ["अाे", "ओ"], ["अाै", "औ"], ["अा", "आ"], ["एे", "ऐ"], ["ाे", "ो"], ["ाै", "ौ"]], "pre-rules": []}, "fontasy himali tt": {"name": "FONTASY HIMALI TT", "v": "1.1.0", "char-map": {"~": "ञ", "!": "ज्ञ", "@": "द्द", "#": "घ", "$": "द्ध", "%": "छ", "^": "ट", "&": "ठ", "*": "ड", "(": "ढ", ")": "ण्", "_": ")", "+": "ं", "`": "ञ्", "1": "१", "2": "२", "3": "३", "4": "४", "5": "५", "6": "६", "7": "७", "8": "८", "9": "९", "0": "०", "-": "(", "=": ".", "Q": "त्त", "W": "ध्", "E": "भ्", "R": "च्", "T": "त्", "Y": "थ्", "U": "ग्", "I": "क्ष्", "O": "इ", "P": "ए", "}": "ै", "|": "्र", "q": "त्र", "w": "ध", "e": "भ", "r": "च", "t": "त", "y": "थ", "u": "ग", "i": "ष्", "o": "य", "p": "उ", "[": "ृ", "]": "े", "\\": "्", "A": "ब्", "S": "क्", "D": "म्", "F": "ा", "G": "न्", "H": "ज्", "J": "व्", "K": "प्", "L": "ी", ":": "स्", "\"": "ू", "a": "ब", "s": "क", "d": "म", "f": "ा", "g": "न", "h": "ज", "j": "व", "k": "प", "l": "ि", ";": "स", "'": "ु", "Z": "श्", "X": "हृ", "C": "ऋ", "V": "ख्", "B": "द्य", "N": "ल्", "M": "ः", "<": "?", ">": "श्र", "?": "रु", "z": "श", "x": "ह", "c": "अ", "v": "ख", "b": "द", "n": "ल", ",": ",", ".": "।", "/": "र", "¡": "ज्ञ्", "¢": "द्घ", "£": "घ्", "¤": "ँ", "¥": "ऱ्", "§": "ट्ट", "ª": "ङ", "«": "्र", "": "(", "®": "+", "°": "ङ्क", "´": "झ", "¶": "ठ्ठ", "»": "", "¿": "रू", "Æ": "”", "Ñ": "ङ", "Ò": "ू", "Ô": "क्ष", "×": "×", "Ø": "्य", "Ù": "ह", "Ú": "ु", "ß": "द्म", "å": "द्व", "æ": "“", "ç": "ॐ", "é": "ङ्ग", "í": "ष", "÷": "/", "ø": "य्", "ú": "ू"}, "post-rules": [["्ा", ""], ["(त्र|त्त)([^उभप]+?)m", "$1m$2"], ["त्रm", "क्र"], ["त्तm", "क्त"], ["([^उभप]+?)m", "m$1"], ["उm", "ऊ"], ["भm", "झ"], ["पm", "फ"], ["इ{", "ई"], ["ि((.्)*[^्])", "$1ि"], ["(.[ािीुूृेैोौंःँ]*?){", "{$1"], ["((.्)*){", "{$1"], ["{", "र्"], ["([ाीुूृेैोौंःँ]+?)(्(.्)*[^्])", "$2$1"], ["्([ाीुूृेैोौंःँ]+?)((.्)*[^्])", "्$2$1"], ["([ंँ])([ािीुूृेैोौः]*)", "$2$1"], ["ँँ", "ँ"], ["ंं", "ं"], ["ेे", "े"], ["ैै", "ै"], ["ुु", "ु"], ["ूू", "ू"], ["^ः", ":"], ["टृ", "ट्ट"], ["ेा", "ाे"], ["ैा", "ाै"], ["अाे", "ओ"], ["अाै", "औ"], ["अा", "आ"], ["एे", "ऐ"], ["ाे", "ो"], ["ाै", "ौ"]], "pre-rules": []}, "kantipur": {"name": "Kantipur", "v": "1.1.0", "char-map": {"~": "ञ्", "!": "१", "@": "२", "#": "३", "$": "४", "%": "५", "^": "६", "&": "७", "*": "८", "(": "९", ")": "०", "_": ")", "+": "ं", "`": "ञ", "1": "ज्ञ", "2": "द्द", "3": "घ", "4": "द्ध", "5": "छ", "6": "ट", "7": "ठ", "8": "ड", "9": "ढ", "0": "ण्", "-": "(", "=": ".", "Q": "त्त", "W": "ध्", "E": "भ्", "R": "च्", "T": "त्", "Y": "थ्", "U": "ग्", "I": "क्ष्", "O": "इ", "P": "ए", "}": "ै", "|": "्र", "q": "त्र", "w": "ध", "e": "भ", "r": "च", "t": "त", "y": "थ", "u": "ग", "i": "ष्", "o": "य", "p": "उ", "[": "ृ", "]": "े", "\\": "्", "A": "ब्", "S": "क्", "D": "म्", "F": "ा", "G": "न्", "H": "ज्", "J": "व्", "K": "प्", "L": "ी", ":": "स्", "\"": "ू", "a": "ब", "s": "क", "d": "म", "f": "ा", "g": "न", "h": "ज", "j": "व", "k": "प", "l": "ि", ";": "स", "'": "ु", "Z": "श्", "X": "हृ", "C": "ऋ", "V": "ख्", "B": "द्य", "N": "ल्", "M": "ः", "<": "?", ">": "श्र", "?": "रु", "z": "श", "x": "ह", "c": "अ", "v": "ख", "b": "द", "n": "ल", ",": ",", ".": "।", "/": "र", "„": "ध्र", "…": "‘", "†": "!", "‰": "झ्", "‹": "ङ्ग", "Œ": "त्त्", "‘": "ॅ", "“": "ँ", "•": "ड्ड", "˜": "ऽ", "™": "र", "›": "ऽ", "œ": "त्र्", "¡": "ज्ञ्", "¢": "द्घ", "£": "घ्", "¤": "झ्", "¥": "ऱ्", "§": "ट्ट", "¨": "ङ्ग", "©": "र", "ª": "ङ", "«": "्र", "¬": "…", "": "(", "®": "र", "¯": "¯", "°": "ङ्ढ", "±": "+", "´": "झ", "µ": "र", "¶": "ठ्ठ", "º": "फ्", "¿": "रू", "Â": "र", "Æ": "”", "È": "ष", "Ë": "ङ्ग", "Ì": "न्न", "Í": "ङ्क", "Î": "फ्", "Ï": "फ्", "Ò": "¨", "Ô": "क्ष", "Ø": "्य", "Ú": "’", "ß": "द्म", "å": "द्व", "æ": "“", "ç": "ॐ", "÷": "/", "ø": "य्"}, "post-rules": [["्ा", ""], ["(त्र|त्त)([^उभप]+?)m", "$1m$2"], ["त्रm", "क्र"], ["त्तm", "क्त"], ["([^उभप]+?)m", "m$1"], ["उm", "ऊ"], ["भm", "झ"], ["पm", "फ"], ["इ{", "ई"], ["ि((.्)*[^्])", "$1ि"], ["(.[ािीुूृेैोौंःँ]*?){", "{$1"], ["((.्)*){", "{$1"], ["{", "र्"], ["([ाीुूृेैोौंःँ]+?)(्(.्)*[^्])", "$2$1"], ["्([ाीुूृेैोौंःँ]+?)((.्)*[^्])", "्$2$1"], ["([ंँ])([ािीुूृेैोौः]*)", "$2$1"], ["ँँ", "ँ"], ["ंं", "ं"], ["ेे", "े"], ["ैै", "ै"], ["ुु", "ु"], ["ूू", "ू"], ["^ः", ":"], ["टृ", "ट्ट"], ["ेा", "ाे"], ["ैा", "ाै"], ["अाे", "ओ"], ["अाै", "औ"], ["अा", "आ"], ["एे", "ऐ"], ["ाे", "ो"], ["ाै", "ौ"]], "pre-rules": []}, "sagarmatha": {"name": "Sagarmatha", "v": "1.1.0", "char-map": {"~": "ञ्", "!": "१", "@": "२", "#": "३", "$": "४", "%": "५", "^": "६", "&": "७", "*": "८", "(": "९", ")": "०", "_": ")", "+": "ं", "`": "ञ", "1": "ज्ञ", "2": "द्द", "3": "घ", "4": "द्ध", "5": "छ", "6": "ट", "7": "ठ", "8": "ड", "9": "ढ", "0": "ण्", "-": "(", "=": ".", "Q": "त्त", "W": "ध्", "E": "भ्", "R": "च्", "T": "त्", "Y": "थ्", "U": "ग्", "I": "क्ष्", "O": "इ", "P": "ए", "}": "ै", "|": "्र", "q": "त्र", "w": "ध", "e": "भ", "r": "च", "t": "त", "y": "थ", "u": "ग", "i": "ष्", "o": "य", "p": "उ", "[": "ृ", "]": "े", "\\": "्", "A": "ब्", "S": "क्", "D": "म्", "F": "ँ", "G": "न्", "H": "ज्", "J": "व्", "K": "प्", "L": "ी", ":": "स्", "\"": "ू", "a": "ब", "s": "क", "d": "म", "f": "ा", "g": "न", "h": "ज", "j": "व", "k": "प", "l": "ि", ";": "स", "'": "ु", "Z": "श्", "X": "ह्", "C": "ऋ", "V": "ख्", "B": "द्य", "N": "ल्", "M": "ः", "<": "?", ">": "श्र", "?": "रु", "z": "श", "x": "ह", "c": "अ", "v": "ख", "b": "द", "n": "ल", ",": ",", ".": "।", "/": "र", "‚": ")", "ƒ": "द्र", "„": "्", "†": ";", "‡": "े", "ˆ": "ृ", "‰": "झ्", "Š": "र्", "‹": "ै", "Œ": "त्त्", "‘": "‘", "’": "’", "“": "ँ", "”": "”", "œ": "त्र्", "¡": "ज्ञ्", "¢": "द्घ", "£": "घ्", "¤": "!", "¥": "ऱ्", "§": "ट्ट", "ª": "ङ", "«": "्र", "¬": "ु", "": "(", "®": "र", "°": "ङ्क", "±": "+", "´": "झ", "µ": "झ", "¶": "ठ्ठ", "·": "ङ्ग", "¸": "ड्ड", "¿": "रू", "Å": "फ", "Æ": "”", "Ç": "फ्", "È": "ष", "É": "स", "Ò": "ू", "Ô": "क्ष", "Ø": "्य", "Ù": "ह", "Ü": "%", "Þ": "ह्", "ß": "द्म", "å": "द्व", "æ": "“", "ç": "ॐ", "è": "द्भ", "÷": "/", "ø": "य्"}, "post-rules": [["्ा", ""], ["(त्र|त्त)([^उभप]+?)m", "$1m$2"], ["त्रm", "क्र"], ["त्तm", "क्त"], ["([^उभप]+?)m", "m$1"], ["उm", "ऊ"], ["भm", "झ"], ["पm", "फ"], ["इ{", "ई"], ["ि((.्)*[^्])", "$1ि"], ["(.[ािीुूृेैोौंःँ]*?){", "{$1"], ["((.्)*){", "{$1"], ["{", "र्"], ["([ाीुूृेैोौंःँ]+?)(्(.्)*[^्])", "$2$1"], ["्([ाीुूृेैोौंःँ]+?)((.्)*[^्])", "्$2$1"], ["([ंँ])([ािीुूृेैोौः]*)", "$2$1"], ["ँँ", "ँ"], ["ंं", "ं"], ["ेे", "े"], ["ैै", "ै"], ["ुु", "ु"], ["ूू", "ू"], ["^ः", ":"], ["टृ", "ट्ट"], ["ेा", "ाे"], ["ैा", "ाै"], ["अाे", "ओ"], ["अाै", "औ"], ["अा", "आ"], ["एे", "ऐ"], ["ाे", "ो"], ["ाै", "ौ"]], "pre-rules": []}, "preeti": {"name": "Preeti", "v": "1.1.0", "char-map": {"~": "ञ्", "!": "१", "@": "२", "#": "३", "$": "४", "%": "५", "^": "६", "&": "७", "*": "८", "(": "९", ")": "०", "_": ")", "+": "ं", "`": "ञ", "1": "ज्ञ", "2": "द्द", "3": "घ", "4": "द्ध", "5": "छ", "6": "ट", "7": "ठ", "8": "ड", "9": "ढ", "0": "ण्", "-": "(", "=": ".", "Q": "त्त", "W": "ध्", "E": "भ्", "R": "च्", "T": "त्", "Y": "थ्", "U": "ग्", "I": "क्ष्", "O": "इ", "P": "ए", "}": "ै", "|": "्र", "q": "त्र", "w": "ध", "e": "भ", "r": "च", "t": "त", "y": "थ", "u": "ग", "i": "ष्", "o": "य", "p": "उ", "[": "ृ", "]": "े", "\\": "्", "A": "ब्", "S": "क्", "D": "म्", "F": "ँ", "G": "न्", "H": "ज्", "J": "व्", "K": "प्", "L": "ी", ":": "स्", "\"": "ू", "a": "ब", "s": "क", "d": "म", "f": "ा", "g": "न", "h": "ज", "j": "व", "k": "प", "l": "ि", ";": "स", "'": "ु", "Z": "श्", "X": "ह्", "C": "ऋ", "V": "ख्", "B": "द्य", "N": "ल्", "M": "ः", "<": "?", ">": "श्र", "?": "रु", "z": "श", "x": "ह", "c": "अ", "v": "ख", "b": "द", "n": "ल", ",": ",", ".": "।", "/": "र", "„": "ध्र", "…": "‘", "ˆ": "फ्", "‰": "झ्", "‹": "ङ्घ", "‘": "ॅ", "•": "ड्ड", "˜": "ऽ", "›": "द्र", "¡": "ज्ञ्", "¢": "द्घ", "£": "घ्", "¤": "झ्", "¥": "ऱ्", "§": "ट्ट", "©": "र", "ª": "ङ", "«": "्र", "°": "ङ्ढ", "±": "+", "´": "झ", "¶": "ठ्ठ", "¿": "रू", "Å": "हृ", "Æ": "”", "Ë": "ङ्ग", "Ì": "न्न", "Í": "ङ्क", "Î": "ङ्ख", "Ò": "¨", "Ö": "=", "×": "×", "Ø": "्य", "Ù": ";", "Ú": "’", "Û": "!", "Ü": "%", "Ý": "ट्ठ", "ß": "द्म", "å": "द्व", "æ": "“", "ç": "ॐ", "÷": "/"}, "post-rules": [["्ा", ""], ["(त्र|त्त)([^उभप]+?)m", "$1m$2"], ["त्रm", "क्र"], ["त्तm", "क्त"], ["([^उभप]+?)m", "m$1"], ["उm", "ऊ"], ["भm", "झ"], ["पm", "फ"], ["इ{", "ई"], ["ि((.्)*[^्])", "$1ि"], ["(.[ािीुूृेैोौंःँ]*?){", "{$1"], ["((.्)*){", "{$1"], ["{", "र्"], ["([ाीुूृेैोौंःँ]+?)(्(.्)*[^्])", "$2$1"], ["्([ाीुूृेैोौंःँ]+?)((.्)*[^्])", "्$2$1"], ["([ंँ])([ािीुूृेैोौः]*)", "$2$1"], ["ँँ", "ँ"], ["ंं", "ं"], ["ेे", "े"], ["ैै", "ै"], ["ुु", "ु"], ["ूू", "ू"], ["^ः", ":"], ["टृ", "ट्ट"], ["ेा", "ाे"], ["ैा", "ाै"], ["अाे", "ओ"], ["अाै", "औ"], ["अा", "आ"], ["एे", "ऐ"], ["ाे", "ो"], ["ाै", "ौ"]], "pre-rules": []}}
function preeti(text, font) {
// get font rules - default to Preeti
@@ -27,7 +6,7 @@ function preeti(text, font) {
font = 'Preeti';
}
font = font.toLowerCase();
- var myFont = all_rules[font];
+ const myFont = all_rules[font];
if (!myFont) {
throw 'font not included in module';
}
@@ -37,8 +16,9 @@ function preeti(text, font) {
var letter = text[w];
output += myFont['char-map'][letter] || letter;
}
- for (var r = 0; r < myFont['post-rules'].length; r++) {
- output = output.replace(new RegExp(myFont['post-rules'][r][0], 'g'), myFont['post-rules'][r][1]);
+
+ for (let r of myFont['post-rules']) {
+ output = output.replace(new RegExp(r[0], 'g'), r[1]);
}
return output;
}
diff --git a/test/fontasy_himali_tt.json b/test/fontasy_himali_tt.json
new file mode 100644
index 0000000..9baec75
--- /dev/null
+++ b/test/fontasy_himali_tt.json
@@ -0,0 +1,43 @@
+[["g]kfn", "नेपाल"],
+ ["g]kfnL", "नेपाली"],
+ ["rGb", "चन्द"],
+ ["lxdfn", "हिमाल"],
+ ["/fli^«o", "राष्ट्रिय"],
+ ["ljz]if)f", "विशेषण"],
+ ["u)f]z", "गणेश"],
+ ["kfl)f", "पाणि"],
+ ["ug{", "गर्न"],
+ ["ug{]", "गर्ने"],
+ ["ug]{", "गर्ने"],
+ ["lgdfrf]{s", "निमार्चोक"],
+ ["rGb|f]bo", "चन्द्रोदय"],
+ ["O{Zj/", "ईश्वर"],
+ ["k|mfO{", "फ्राई"],
+ [":ofk|m'a]zL", "स्याफ्रुबेशी"],
+ ["cfkm\\gf]", "आफ्नो"],
+ ["cfk\\mgf}", "आफ्नौ"],
+ ["eQm", "भक्त"],
+ ["em/gf", "झरना"],
+ ["s|'/", "क्रुर"],
+ ["qm'/", "क्रुर"],
+ ["q'm/", "क्रुर"],
+ ["k|ltlqmof", "प्रतिक्रिया"],
+ ["hfpm", "जाऊ"],
+ ["hfp¤m", "जाऊँ"],
+ ["e]mNg'", "झेल्नु"],
+ ["em]Ng'", "झेल्नु"],
+ ["emfs|L", "झाक्री"],
+ ["kf}jf", "पौवा"],
+ ["If]qkf^L", "क्षेत्रपाटी"],
+ ["cf]vtL", "ओखती"],
+ ["P]gf", "ऐना"],
+ ["hfcf}+", "जाऔं"],
+ ["hfcf+}", "जाऔं"],
+ ["#/d+}", "घरमैं"],
+ ["-s_", "(क)"],
+ ["1234567890", "१२३४५६७८९०"],
+ ["k¥of]", "पऱ्यो"],
+ ["x]Yof{]", "हेर्थ्यो"],
+ ["x]Yof]{", "हेर्थ्यो"],
+ ["d@t", "मद्दत"],
+ ["Clif", "ऋषि"]]
\ No newline at end of file
diff --git a/test/index.js b/test/index.js
index d7e7279..7133d35 100644
--- a/test/index.js
+++ b/test/index.js
@@ -1,9 +1,11 @@
var assert = require('assert');
var preeti = require('../preeti.js');
-var pv = require('./preeti.vector.json');
-var kv = require('./kantipur.vector.json');
-var nv = require('./pcs_nepali.vector.json');
+const preeti_vectors = require('./preeti.json');
+const kantipur_vectors = require('./kantipur.json');
+const pcs_nepali_vectors = require('./pcs_nepali.json');
+const fontasy_himali_vectors = require('./fontasy_himali_tt.json');
+const sagarmata_vectors = require('./sagarmatha.json');
describe("Converting Preeti", function() {
it('should return काठमाण्डू when the value is sf7df08"', function() {
@@ -12,24 +14,40 @@ describe("Converting Preeti", function() {
});
it('should process the nep-tt2utf preeti.vector list', function() {
- for (var a = 0; a < pv.length; a+=2) {
- assert.equal(preeti(pv[a]), pv[a+1]);
+ for (let v of preeti_vectors) {
+ assert.equal(preeti(v[0]), v[1]);
}
});
});
describe("Converting Kantipur", function() {
it('should process the nep-tt2utf kantipur.vector list', function() {
- for (var a = 0; a < kv.length; a+=2) {
- assert.equal(preeti(kv[a], 'Kantipur'), kv[a+1]);
+ for (let v of kantipur_vectors) {
+ assert.equal(preeti(v[0], 'Kantipur'), v[1]);
}
});
});
describe("Converting PCS Nepali", function() {
it('should process the nep-tt2utf pcs_nepali.vector list', function() {
- for (var a = 0; a < nv.length; a+=2) {
- assert.equal(preeti(nv[a], 'PCS Nepali'), nv[a+1]);
+ for (let v of pcs_nepali_vectors) {
+ assert.equal(preeti(v[0], 'PCS Nepali'), v[1]);
+ }
+ });
+});
+
+describe("Converting Fontasy himali TT", function() {
+ it('should process the nep-tt2utf fontasy_himali.vector list', function() {
+ for (let v of fontasy_himali_vectors) {
+ assert.equal(preeti(v[0], 'Fontasy Himali TT'), v[1]);
+ }
+ });
+});
+
+describe("Converting Sagarmatha", function() {
+ it('should process the nep-tt2utf sagarmatha.vector list', function() {
+ for (let v of sagarmata_vectors) {
+ assert.equal(preeti(v[0], 'sagarmatha'), v[1]);
}
});
});
diff --git a/test/kantipur.json b/test/kantipur.json
new file mode 100644
index 0000000..edcd148
--- /dev/null
+++ b/test/kantipur.json
@@ -0,0 +1,45 @@
+[["g]kfn", "नेपाल"],
+ ["g]kfnL", "नेपाली"],
+ ["rGb", "चन्द"],
+ ["lxdfn", "हिमाल"],
+ ["/fli6«o", "राष्ट्रिय"],
+ ["ljz]if0f", "विशेषण"],
+ ["u0f]z", "गणेश"],
+ ["kfl0f", "पाणि"],
+ ["ug{", "गर्न"],
+ ["ug{]", "गर्ने"],
+ ["ug]{", "गर्ने"],
+ ["lgdfrf]{s", "निमार्चोक"],
+ ["rGb|f]bo", "चन्द्रोदय"],
+ ["O{Zj/", "ईश्वर"],
+ ["k|mfO{", "फ्राई"],
+ [":ofk|m'a]zL", "स्याफ्रुबेशी"],
+ ["cfkm\\gf]", "आफ्नो"],
+ ["cfk\\mgf}", "आफ्नौ"],
+ ["eQm", "भक्त"],
+ ["em/gf", "झरना"],
+ ["s|'/", "क्रुर"],
+ ["qm'/", "क्रुर"],
+ ["q'm/", "क्रुर"],
+ ["k|ltlqmof", "प्रतिक्रिया"],
+ ["hfpm", "जाऊ"],
+ ["hfp“m", "जाऊँ"],
+ ["e]mNg'", "झेल्नु"],
+ ["em]Ng'", "झेल्नु"],
+ ["emfs|L", "झाक्री"],
+ ["kf}jf", "पौवा"],
+ ["If]qkf6L", "क्षेत्रपाटी"],
+ ["iff]8zL", "षोडशी"],
+ ["cf]vtL", "ओखती"],
+ ["P]gf", "ऐना"],
+ ["hfcf}+", "जाऔं"],
+ ["hfcf+}", "जाऔं"],
+ ["3/d+}", "घरमैं"],
+ ["-s_", "(क)"],
+ ["!@#$%^&*()", "१२३४५६७८९०"],
+ ["k¥of]", "पऱ्यो"],
+ ["x]Yof{]", "हेर्थ्यो"],
+ ["x]Yof]{", "हेर्थ्यो"],
+ ["sFd", "काम"],
+ ["d2t", "मद्दत"],
+ ["Clif", "ऋषि"]]
\ No newline at end of file
diff --git a/test/kantipur.vector.json b/test/kantipur.vector.json
deleted file mode 100644
index 3f3caf4..0000000
--- a/test/kantipur.vector.json
+++ /dev/null
@@ -1,45 +0,0 @@
-["g]kfn","नेपाल",
-"g]kfnL","नेपाली",
-"rGb","चन्द",
-"lxdfn","हिमाल",
-"/fli6«o","राष्ट्रिय",
-"ljz]if0f","विशेषण",
-"u0f]z","गणेश",
-"kfl0f","पाणि",
-"ug{","गर्न",
-"ug{]","गर्ने",
-"ug]{","गर्ने",
-"lgdfrf]{s","निमार्चोक",
-"rGb|f]bo","चन्द्रोदय",
-"O{Zj/","ईश्वर",
-"k|mfO{","फ्राई",
-":ofk|m'a]zL","स्याफ्रुबेशी",
-"cfkm\\gf]","आफ्नो",
-"cfk\\mgf}","आफ्नौ",
-"eQm","भक्त",
-"em/gf","झरना",
-"s|'/","क्रुर",
-"qm'/","क्रुर",
-"q'm/","क्रुर",
-"k|ltlqmof","प्रतिक्रिया",
-"hfpm","जाऊ",
-"hfp“m","जाऊँ",
-"e]mNg'","झेल्नु",
-"em]Ng'","झेल्नु",
-"emfs|L","झाक्री",
-"kf}jf","पौवा",
-"If]qkf6L","क्षेत्रपाटी",
-"iff]8zL","षोडशी",
-"cf]vtL","ओखती",
-"P]gf","ऐना",
-"hfcf}+","जाऔं",
-"hfcf+}","जाऔं",
-"3/d+}","घरमैं",
-"-s_","(क)",
-"!@#$%^&*()","१२३४५६७८९०",
-"k¥of]","पर्यो",
-"x]Yof{]","हेर्थ्यो",
-"x]Yof]{","हेर्थ्यो",
-"sFd","काम",
-"d2t","मद्दत",
-"Clif","ऋषि"]
diff --git a/test/pcs_nepali.json b/test/pcs_nepali.json
new file mode 100644
index 0000000..dab78dc
--- /dev/null
+++ b/test/pcs_nepali.json
@@ -0,0 +1,43 @@
+[["g]kfn", "नेपाल"],
+ ["g]kfnL", "नेपाली"],
+ ["rGb", "चन्द"],
+ ["lxdfn", "हिमाल"],
+ ["/fli^