Markdown 怎么打 emoji?
为什么 :smile: 显示成文字
往 Markdown 里加表情符号有两条路:直接把 emoji 字符(🎉)贴进去,它就是普通文字,在哪都能显示。或者写 :tada: 这种短代码,但只有支持它的平台才会转。如果你现在盯着的正是一串字面的 :smile:,说明你的渲染器属于不转的那大多数。
最稳的办法:把 emoji 字符直接贴进去
emoji 是普通的 Unicode 字符,和一个字母、一个汉字没有本质区别。把 🚀 贴进 .md 文件,任何编辑器、查看器、网站都能显示,因为根本不存在「转换」这一步。
也不用去背对照表,系统自带选择器:
- Windows:按
Win+.(句点键)调出面板。 - macOS:按
Ctrl+Cmd+空格。
选中的字符像普通文字一样落进文件、随文件保存。只要这个文件以后可能换地方打开,就用这条路。
:smile: 显示成文字的原因
短代码长得像 Markdown 语法,其实不是。CommonMark 和 GFM 两个规范里都没有 emoji 这一条。:smile: 变成 😄,是 GitHub 在自家页面上额外加的功能,少数几个平台也各自做了一套,名字表还不一样。
所以普通 Markdown 编辑器把 :smile: 原样显示时,没有任何东西坏了。编辑器在如实渲染:这串冒号加名字,就是文件里真实存的内容。其他「看起来没渲染」的情况也是同一个思路,第一步先问「我写的到底是不是 Markdown」,排查全集在Markdown 不渲染的常见坑。
在支持短代码的平台上,名字拼错也是同样的症状::smiel: 在 GitHub 上照样是一串字,名字必须和它的表完全对上。
短代码在哪能转,在哪原样躺着
| 平台 | :短代码: | 贴进去的 emoji 🎉 |
|---|---|---|
| GitHub(github.com) | 转成 emoji | 正常显示 |
| GitLab | 转成 emoji | 正常显示 |
| Slack、Discord(聊天) | 转(用它们各自的名字表) | 正常显示 |
| VS Code 预览 | 原样显示(装扩展才转) | 正常显示 |
| Obsidian | 原样显示 | 正常显示 |
| NoteLoom | 原样显示 | 正常显示 |
右边一列就是全部结论:贴进去的字符每一行都正常,不用记任何例外。
文件换地方打开时会怎样
这个差别在文件开始「旅行」时才真正要紧,而 AI 时代的 Markdown 恰恰总在旅行:从 GitHub 下载的 README、AI 给你写的文档、从一个应用挪到另一个应用的笔记。里面的 :tada: 一路都是 11 个普通字符,最后能不能变回 🎉,全看文件落在哪。
贴进去的 emoji 没有这层依赖。它在文件里,就一直在文件里,每一站长一个样。
NoteLoom 就是个现成的例子:它渲染本地 .md 的 CommonMark 和 GFM,短代码保持文字原样,如实反映文件内容。贴进去的 emoji 在源码、编辑、阅读三个视图里都正常显示,改完保存,原样写回你本地的文件。
常见问题
为什么 :smile: 在 GitHub 上是笑脸,在我的编辑器里是一串字?
不查对照表,emoji 从哪儿打出来?
emoji 会不会把 .md 文件搞坏?
NoteLoom 会把 :shortcode: 转成 emoji 吗?
短代码的名字在各平台通用吗?
保存再打开,emoji 还在吗?
看看你的文件里真实存了什么
用 Chrome / Edge / Arc 打开 NoteLoom,挂上文件夹:源码视图看原始文本(短代码一目了然),阅读视图看渲染结果。本地文件进,本地文件出,什么都不上传。
打开 NoteLoom 试试