Ganz einfach: 😊
Denn von vielen von uns unbemerkt, sind Smilies und andere Emojis inzwischen fester Bestandteil von UTF-8 geworden, und in vielen Betriebssystemen als Zeichen hinterlegt. Dementsprechend kann man mit einer einfachen Ersetzung in HTML-Quelltext aus den guten alten ASCII-Smilies (:)
) echte Emojis machen.
In HTML kann man Emojis durch Kenntnis der korrekten Emoji-Unicodes ganz einfach erzeugen:
<p>Hier kommt ein Smiley mit dem Unicode: <code>U+1F601</code>: 😁</p>
Der Trick ist also: Jeden Unicode kann man durch voranstellen von &#x
und beenden mit ;
als HTML-Entity ausgeben.
Ein Textparser könnte normale ASCII-Smileys dann wie folgt ersetzen:
entityMap = {
':)': 'F60A;',
':))': 'F602;',
':D': 'F604;',
';)': 'F609;',
'B)': 'F60E;',
':P': 'F60B;',
'xP': 'F61D;',
':*': 'F618;',
':O': 'F632;',
':|': 'F610;',
':?': 'F914;',
':/': 'F612;',
'xO': 'F635;',
':(': 'F629;',
":'(": 'F622;',
";(": 'F622;',
':@': 'F620;',
':$': 'F633;',
'8O': 'F628;',
'8<': '઎',
':+1:': 'F44D;',
':-1:': 'F44E;',
'<3': 'ૌ',
'</3': 'F494;',
'(!)': 'A0;'
};
string = string.replace(
/(\W|^)(:(?:'?\(|\)\)|[\)\|\/DPO\*\?@\$])|[;B]\)|;\(|x[PO]|8[o<]|:[\+\-]1:|<\?3|\(!\))(\W|$)/g,
function(all, before, s, after) {
return before + entityMap[s] + after;
}
);
Dementsprechend hier zu bewundern: 😊, 🙁, 😐, 😒, 😄, 😋, 😲, 😉, 😎, 😝… und natürlich 😘.
Update: Ich habe die Codes ein bisschen geändert, um auch Windows 7 und ältere Androids in den Genuss von Emojis zu bringen.
Update: Das Blogophon hat einen sich beständig wachsenden Emoji-Parser in der „emoji-convert“-Bibliothek. Die ersetzten Zeichen wiederum sind in der Emoji-Dokumentation des Blogophons zu bewundern. Damit kann man in Markdown aus einfachen Smilies wunderschöne Emojis machen.