如何用 twemoji 替换 html 中的表情符号?
How to replace emojis in html with twemoji?
在用户生成的帖子中,我有很多像
这样的原始表情符号
<p>I ❤ your post!</p>
我想知道将这些表情符号替换为彩色表情符号的最佳方法是什么:
<p>I <i class="twa twa-heart">❤️</i> your post!</p>
我想用 twemoji 库来设计表情符号的样式。
你可能会问,为什么不让用户在选择表情符号时首先插入样式表情符号?答案是界面的文本编辑器不是所见即所得,用户帖子被严重剥离。所以排除了这种选择,我正在寻找一种在渲染时进行这种转换的解决方案。
使用一个对象,其中键是 stripped-back 表情符号,值是完整的 HTML 内容。遍历字符串中的每个字符并检查它是否是 stripped-back 表情符号。如果是这样,请更换它。最后,把它们结合起来写到页面上。
const raw = "<p>I ❤ your post!</p>";
const emojis = {
"❤": `<i class="twa twa-heart">❤️</i>`
};
const res = [...raw].map(e => emojis[e] || e).join("");
document.write(res);
查看 twemoji 的文档....
https://github.com/twitter/twemoji#api
API
以下是 twemoji
命名空间中公开的所有方法。
twemoji.parse( ... ) V1
这是主要的解析实用程序,每个解析类型有 3 个重载。
解析主要有两种:string parsing and DOM parsing.
你可以解析字符串(解析它们的输入)。
我相信你正在寻找这样的平滑剂:
但是,对于已经清理过的字符串,这种方法可以认为是足够安全的。如果安全是您主要关注的问题之一,请参阅 DOM 解析。
twemoji.parse('I \u2764\uFE0F emoji!');
// will produce
/*
I <img
class="emoji"
draggable="false"
alt="❤️"
src="https://twemoji.maxcdn.com/36x36/2764.png"/> emoji!
*/
在用户生成的帖子中,我有很多像
这样的原始表情符号 <p>I ❤ your post!</p>
我想知道将这些表情符号替换为彩色表情符号的最佳方法是什么:
<p>I <i class="twa twa-heart">❤️</i> your post!</p>
我想用 twemoji 库来设计表情符号的样式。
你可能会问,为什么不让用户在选择表情符号时首先插入样式表情符号?答案是界面的文本编辑器不是所见即所得,用户帖子被严重剥离。所以排除了这种选择,我正在寻找一种在渲染时进行这种转换的解决方案。
使用一个对象,其中键是 stripped-back 表情符号,值是完整的 HTML 内容。遍历字符串中的每个字符并检查它是否是 stripped-back 表情符号。如果是这样,请更换它。最后,把它们结合起来写到页面上。
const raw = "<p>I ❤ your post!</p>";
const emojis = {
"❤": `<i class="twa twa-heart">❤️</i>`
};
const res = [...raw].map(e => emojis[e] || e).join("");
document.write(res);
查看 twemoji 的文档.... https://github.com/twitter/twemoji#api
API
以下是 twemoji
命名空间中公开的所有方法。
twemoji.parse( ... ) V1
这是主要的解析实用程序,每个解析类型有 3 个重载。
解析主要有两种:string parsing and DOM parsing.
你可以解析字符串(解析它们的输入)。
我相信你正在寻找这样的平滑剂:
但是,对于已经清理过的字符串,这种方法可以认为是足够安全的。如果安全是您主要关注的问题之一,请参阅 DOM 解析。
twemoji.parse('I \u2764\uFE0F emoji!');
// will produce
/*
I <img
class="emoji"
draggable="false"
alt="❤️"
src="https://twemoji.maxcdn.com/36x36/2764.png"/> emoji!
*/