gibberlink
Version:
Use the Ai's Own language, gibberlink!
36 lines (29 loc) • 1.27 kB
JavaScript
module.exports = {
gibberlinkEncode(text) {
const vowelMap = { a: "e", e: "i", i: "o", o: "u", u: "a" };
let words = text.split(" ");
return words.map((word, index) => {
let encoded = "";
for (let char of word) {
if (/[bcdfghjklmnpqrstvwxyz]/i.test(char)) {
encoded += char + "ib";
} else if (vowelMap[char.toLowerCase()]) {
encoded += vowelMap[char.toLowerCase()];
} else {
encoded += char;
}
}
return index % 3 === 2 ? encoded.split("").reverse().join("") : encoded;
}).join(" ");
},
gibberlinkDecode(text) {
let words = text.split(" ");
return words.map((word, index) => {
let decoded = index % 3 === 2 ? word.split("").reverse().join("") : word;
decoded = decoded.replace(/([bcdfghjklmnpqrstvwxyz])ib/gi, "$1");
const reverseVowelMap = { e: "a", i: "e", o: "i", u: "o", a: "u" };
decoded = decoded.replace(/[aeiou]/g, match => reverseVowelMap[match]);
return decoded;
}).join(" ");
}
}