The documentation is a work in progress, and English edition is just an empty shell for now. I will translate it when Chinese edition has done.
考虑到打包体积,v-no 没有内置任何版本的 Emoji 方案,你只能使用 Unicode Emoji。
你可以直接输入 Emoji 字符 ❤,也能输入对应的 Unicode 代码 \u2B50
⭐、U+1F914
🤔。
不过 Unicode Emoji 依赖本地字体实现(font-family: Apple Color Emoji, Segoe UI Emoji
),它在各个客户端的显示不一定一致。如果你比较在意这个问题,可以考虑引入 Twemoji 脚本,用 Twitter Emoji 替换它。
为了实现这个转换,你需要将两条自定义脚本加到 .md
文件中,然后在 /uploads
目录新建 parse-emoji.js
文件,将下面展示的代码拷贝进去。
Twemoji
Markdown
parse-emoji.js
会在twemoji.min.js
加载完成后引入。
parse-emoji.js
示例
😀 😁 😂 😃 😄 😅 😆 😇 😈 😉 😊 😋 😌 😍 😎 😏
😐 😑 😒 😓 😔 😕 😖 😗 😘 😙 😚 😛 😜 😝 😞 😟
😠 😡 😢 😣 😤 😥 😦 😧 😨 😩 😪 😫 😬 😭 😮 😯
😰 😱 😲 😳 😴 😵 😶 😷 😸 😹 😺 😻 😼 😽 😾 😿
🙀 🙁 🙂 🙃 🙄
注意
这里有几处需要特别说明一下:
- 这是两条非驻留脚本,会随着页面的切换而销毁,
parse-emoji.js
的代码也是默认为非驻留脚本编写的。如果你需要在所有页面启用转换,可以选择把它们加到config.paths.common
文件,使用驻留标记(多个$
)和注释部分的驻留代码。 - 多条自定义脚本的执行顺序并不稳定,
parse-emoji.js
有可能会在twemoji.min.js
加载完成之前执行,所以它需要等待twemoji.min.js
将twemoji
对象暴露出来后再引入。 - 页面有可能会进行两次渲染,如果你只调用一次
twemoji.parse
,它的执行结果就会被第二次渲染覆盖掉。htmlChanged
事件会在<article>
的innerHTML
改变后派发给document
,所以你需要监听它,在事件达到后重新调用twemoji.parse
。因为首次调用后监听事件再调用的情况较为常见,v-no 将这两个步骤整合为了callAndListen
方法。
- This page is open source, improve it