Skip to content
On this page

表情包

编辑后端 artalk.yml 配置文件并修改配置项 frontend.emoticons 填入表情包列表 URL:

yaml
frontend:
  emoticons: "https://raw.githubusercontent.com/ArtalkJS/Emoticons/master/grps/default.json"
frontend:
  emoticons: "https://raw.githubusercontent.com/ArtalkJS/Emoticons/master/grps/default.json"

表情包预设

Artalk 社区提供许多表情包预设,你能够挑选几套喜欢的表情包,仅需简单的配置,轻松添加到你的评论系统中,前往仓库:“@ArtalkJS/Emoticons”

格式支持

OwO 格式

OwO 是作者 @DIYgod 开发的开源 JS 插件,能让输入框快速拥有插入表情符号的功能。

Artalk 的表情包功能借鉴了其优秀的设计,并且 Artalk 原生适配和兼容 OwO 格式的表情包数据文件,示例如下:

yaml
frontend:
  emoticons: "https://raw.githubusercontent.com/DIYgod/OwO/master/demo/OwO.json"
  # 直接食用 OwO 格式的表情包 ↑↑
frontend:
  emoticons: "https://raw.githubusercontent.com/DIYgod/OwO/master/demo/OwO.json"
  # 直接食用 OwO 格式的表情包 ↑↑

社区也有许多可以直接食用的 OwO 格式表情包资源,例如:@2X-ercha/Twikoo-Magic

Artalk 表情包列表文件标准格式

Artalk 除了支持 OwO 格式外,还内置支持一种标准的表情包列表文件格式:

js
[{
    "name": "颜表情",
    "type": "emoticon", // 字符类型
    "items": [
        { "key": "Hi", "val": "|´・ω・)ノ" },
        { "key": "开心", "val": "ヾ(≧∇≦*)ゝ" },
        //...
    ]
}, {
    "name": "滑稽",
    "type": "image", // 图片类型
    "items": [
        {
            "key": "原味稽",
            "val": "<图片 URL>"
        },
        //...
    ]
}]
[{
    "name": "颜表情",
    "type": "emoticon", // 字符类型
    "items": [
        { "key": "Hi", "val": "|´・ω・)ノ" },
        { "key": "开心", "val": "ヾ(≧∇≦*)ゝ" },
        //...
    ]
}, {
    "name": "滑稽",
    "type": "image", // 图片类型
    "items": [
        {
            "key": "原味稽",
            "val": "<图片 URL>"
        },
        //...
    ]
}]

前端配置

WARNING

前端的配置将默认被后端覆盖,详情参考:“在后端控制前端”

在前端配置表情包列表,例如:

js
Artalk.init({
    // 默认表情包列表,动态引入 ↓↓
    emoticons: "https://raw.githubusercontent.com/ArtalkJS/Emoticons/master/grps/default.json",
})
Artalk.init({
    // 默认表情包列表,动态引入 ↓↓
    emoticons: "https://raw.githubusercontent.com/ArtalkJS/Emoticons/master/grps/default.json",
})

关闭表情包

你可以将 emoticons 设置为 false 来禁用表情包功能:

js
Artalk.init({
    emoticons: false
})
Artalk.init({
    emoticons: false
})

加载方式

动态加载

emoticons 属性设置为表情包数据文件的 URL,当打开表情包列表时,Artalk 会动态引入。

js
Artalk.init({
    emoticons: "<表情包数据文件 URL>",
})
Artalk.init({
    emoticons: "<表情包数据文件 URL>",
})

远程的表情包文件支持 Artalk、OwO 格式,且支持嵌套、混合加载。

静态加载

相较于动态引入,可以将表情包列表对象,作为 Artalk 配置,静态保存在页面的 JS 代码中,避免动态加载:

js
Artalk.init({
    emoticons: [{
        "name": "颜表情",
        "type": "emoticon", // 字符类型
        "items": [
            { "key": "Hi", "val": "|´・ω・)ノ" },
            { "key": "开心", "val": "ヾ(≧∇≦*)ゝ" },
            //...
        ]
    }, {
        "name": "滑稽",
        "type": "image", // 图片类型
        "items": [
            {
                "key": "原味稽",
                "val": "<图片 URL>"
            },
            //...
        ]
    }],
})
Artalk.init({
    emoticons: [{
        "name": "颜表情",
        "type": "emoticon", // 字符类型
        "items": [
            { "key": "Hi", "val": "|´・ω・)ノ" },
            { "key": "开心", "val": "ヾ(≧∇≦*)ゝ" },
            //...
        ]
    }, {
        "name": "滑稽",
        "type": "image", // 图片类型
        "items": [
            {
                "key": "原味稽",
                "val": "<图片 URL>"
            },
            //...
        ]
    }],
})

混合加载

Artalk 支持 动态静态 混合加载,例如:

js
Artalk.init({
    emoticons: [
        // 动态加载
        "https://raw.githubusercontent.com/DIYgod/OwO/master/demo/OwO.json", // OwO 格式表情包
        "https://raw.githubusercontent.com/qwqcode/huaji/master/huaji.json",
        // 静态加载
        {
            "name": "表情包名字",
            "type": "emoticon", // 字符类型
            "items": [
                { "key": "去吧大师球", "val": "(╯°A°)╯︵○○○" },
                //...
            ]
        }
    ]
})
Artalk.init({
    emoticons: [
        // 动态加载
        "https://raw.githubusercontent.com/DIYgod/OwO/master/demo/OwO.json", // OwO 格式表情包
        "https://raw.githubusercontent.com/qwqcode/huaji/master/huaji.json",
        // 静态加载
        {
            "name": "表情包名字",
            "type": "emoticon", // 字符类型
            "items": [
                { "key": "去吧大师球", "val": "(╯°A°)╯︵○○○" },
                //...
            ]
        }
    ]
})

嵌套引入

Artalk 支持远程表情包资源中嵌套引入另外的表情包资源,例如:

js
Artalk.init({
    emoticons: [
        "https://example.org/表情包.json"
    ]
})
Artalk.init({
    emoticons: [
        "https://example.org/表情包.json"
    ]
})

文件 表情包.json 中的数据:

json
[
    "https://example.org/其他表情包.json",
    //...
    { // Artalk 格式、OwO 格式
        //...
    }
]
[
    "https://example.org/其他表情包.json",
    //...
    { // Artalk 格式、OwO 格式
        //...
    }
]