Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >拓展 marked 支持自定义表情

拓展 marked 支持自定义表情

作者头像
kifuan
修改于 2022-11-21 09:14:11
修改于 2022-11-21 09:14:11
55900
代码可运行
举报
文章被收录于专栏:随便写写-kifuan随便写写-kifuan
运行总次数:0
代码可运行

原理

为了方便,我只是拓展 renderer 里对于图片渲染的逻辑,处理我们自定义表情,官方文档地址:https://marked.js.org/using_pro#renderer

我们要把类似这样的图片:![@](12),也就是方框里填 @ 就认为它是我们的自定义表情,然后以后面的 href 为表情 id

实现

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
// emoji.ts
export interface Emoji {
  id: number
  name: string
  url: string
}

export const EMOJI_SIZE_PX: number

export function getEmoji(id: number): Emoji | undefined

// emoji-renderer.ts
export const emojiRenderer: marked.RendererObject = {
  image(href, _, text) {
    if (text !== '@')
      return false

    const id = parseInt(href ?? '')
    const emoji = getEmoji(id)
    if (emoji === undefined) {
      // 这里可以抛一个警告
      return false
    }

    return `<img alt="${emoji.name}" src="${emoji.url}" style="width: ${EMOJI_SIZE_PX}px; height: ${EMOJI_SIZE_PX}px;vertical-align: bottom; padding: 0 2px;">`
  },
}

// main.ts
import { emojiRenderer as renderer } from 'xxx'

marked.use({ renderer })

这样就可以在全局使用到我们自定义的规则了。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Vue 表情包输入组件完整实现代码及使用教程
要在你的 Vue 项目中使用表情包输入组件,首先需要进行安装和配置,以下是详细步骤:
小焱
2025/06/08
600
Vue 表情包输入组件完整实现代码及使用教程
VUE项目iconfont自定义SVG(非SVG文件)-_PUSDN
VUE项目iconfont自定义SVG,在线或者离线下载的阿里巴巴icon font.js;并非SVG文件;
JaneYork
2023/10/11
3900
VUE项目iconfont自定义SVG(非SVG文件)-_PUSDN
自定义博客小表情
今天刷微博时候发现了几组可爱的大黄脸表情,相比QQ的大黄脸可是可爱的多,这么可爱不整博客里可惜了,因为绝大部分博客的表情一般都是引用的 OwO这个开源文件 ,所以可以通过修改一些文件信息,就可以把自己想要的表情添加到博客里来。
qiangzai
2021/12/21
6090
自定义博客小表情
Valine – 自定义表情包(多组)
众所周知 Valine 自带 emojis 表情是满足不了一颗折腾的心的/doge,除了使用网上dalao集成好的 Valine.js 外,还可以采取自己动手丰衣足食的做法。
2Broear
2024/03/12
1370
wangeditor 自定义 表情
目的:使用wangeditor编辑器,自定义表情 注:我使用的是vue + webpack 来做的。不过这个和我们这篇博客要说的没有任何关系。
kirin
2021/04/28
1.1K0
wordpress自定义表情及管理不同表情包
一般表情图片会放在imges/smilies一类的文件夹中,具体的还要看各自主题。
WindCoder
2018/09/19
1.2K0
wordpress自定义表情及管理不同表情包
分享8个非常实用的Vue自定义指令
链接:https://segmentfault.com/a/1190000038475001
coder_koala
2021/01/06
1.6K0
bootstrap+fileinput插件实现可预览上传照片功能
图片.png 实际项目中运用: 图片.png 功能:实现上传图片,更改上传图片,移除图片的功能 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> <link rel="stylesheet" href="http://cdn.static.runoob.com/libs/bootstrap/3.3.7/css/bootstrap.min.css">
王小婷
2018/06/01
4.8K0
Uptime Kuma 自定义CSS美化代码
鹰瑶
2024/03/20
1.4K1
Yzncms系列教程(九):自定义字段的使用方法
截止目前yzncms可以定义以下字段 输入框[text],复选框[checkbox],多行文本[textarea],单选按钮[radio] 开关[switch],数组[array],下拉框[select],下拉框(多选)[selects] 高级下拉框[selectpage],单张图[image],多张图[images] 标签[tags],数字[number],日期和时间[datetime] 百度编辑器[Ueditor],markdown编辑器[markdown] 多文件[files],单文件[file],颜色值[color],城市地区[city]
用户1739228
2022/08/30
6870
Yzncms系列教程(九):自定义字段的使用方法
表情包(附上cutten emoji.json)代码
直接下载这个参考乔治博客里面的文件位置替换对应文件就可以了 注意:仅适用于cutten4 最新版本 emoji.json下载地址: https://cdn.jsdelivr.net/gh/LR787/image/usr/uploads/2021/02/3630647554.json ctx.php下载地址 https://cdn.jsdelivr.net/gh/LR787/cdn/php/ctx.php
meowrain
2021/04/22
3.9K0
表情包(附上cutten emoji.json)代码
【目录】Hexo+NexT+Gemini 搭建博客拥抱舒爽
首先在配置Hexo+NexT之前,最好阅读一下 Hexo官方文档 和 NexT使用文档
零式的天空
2022/03/27
2.2K0
【目录】Hexo+NexT+Gemini 搭建博客拥抱舒爽
如何用JS识别用户浏览器是否支持某 Emoji?比如🧑‍🌾可能展示为🧑🌾
背景之前我在文章《为什么同一表情'🧔‍♂️'.length==5但'🧔‍♂'.length==4?本文带你深入理解 String Unicode UTF8 UTF16》中讲了非常硬核的内容,深入带大家了解了 Unicode UTF8 以及 JavaScript 中的 String 字符串。非常推荐你仔细阅读并收藏。如果你的网页中,展示一些 Emoji,那么一定要小心!因为 Emoji 也是在不断的更新迭代的,在旧的设备或系统中,可能无法正确地展示新出的 Emoji。比较推荐的做法:要展示某个 Emoji 前
HullQin
2023/01/30
5.7K0
【应用】Markdown 在线阅读器
一款在线的 Markdown 阅读器,主要用来展示 Markdown 内容。支持 HTML 导出,同时可以方便的添加扩展功能。在这个阅读器的基础又做了一款在线 Github Pages 页面生成器,可以方便的生成不同主题风格的 GitHub Page 页面。
零式的天空
2022/03/23
3.1K0
【应用】Markdown 在线阅读器
【技术教程】国标协议平台EasyGBS级联支持自定义国标通道
国标协议视频平台EasyGBS是能够对接公安网、校园网的国标协议视频流媒体服务,对于很多项目来说,国标协议的级联功能是一个非常实用的功能,将上下级平台连接起来并实现统一管理是很多项目的需求。
TSINGSEE青犀视频
2021/06/16
4590
前端换肤的N种方案,请收下
原文链接:https://juejin.im/post/5e92ad7a518825736c5b91cd
ConardLi
2020/06/29
2.3K0
前端换肤的N种方案,请收下
Android自定义实现按周签到打卡功能
之前实现过《Android可签到的日历控件》的功能,跟这篇一样都是实现签到打卡功能,这篇实现的是按月进行打卡做标识,本篇内容实现的按周进行签到打卡。
SoullessCoder
2019/08/07
1.9K0
Android自定义实现按周签到打卡功能
纯代码给WordPress文章和评论添加OwO表情教程
之前折腾过一次评论表情,源码来自网络,可以说是非常强大,表情图标可以说是和手机系统一样充裕,但对于网站评论用就显得太过于杂乱了。 虽然所有的图标都分好类了,但不是12类别中的每个图标都会用到,增加用户发表评论的时间,对于网站的体验感来说是非常差的。
楚客追梦
2022/11/11
2K0
纯代码给WordPress文章和评论添加OwO表情教程
iOS自定义的emoji表情键盘 原
        随着iOS系统版本的升级,对原生emoji表情的支持也越来越丰富。emoji表情是unicode码中为表情符号设计的一组编码,当然,还有独立于unicode的另一套编码SBUnicode,在OS系统中,这两种编码都有很好的支持。UI系统会自动帮我们将编码转义成表情符号,例如用SBUnicode如下代码:
珲少
2018/08/15
3.1K0
iOS自定义的emoji表情键盘
                                                                            原
Butterfly 自定义代码高亮字体
但是该博客下提供的代码高亮css文件项目已经失效了,既然如此,我这里就再提供一篇较为完整的教程,仅供参考
一只野生彩色铅笔
2022/07/01
1.5K0
相关推荐
Vue 表情包输入组件完整实现代码及使用教程
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验