打开/关闭搜索
搜索
打开/关闭菜单
1.1K
5.3K
75
19K
Cookie☆Wiki
导航
首页
最近更改
随机页面
帮助
沙盒
特殊页面
上传文件
常用
曲奇简介
用语列表
人物一览
曲奇团体
曲奇年表
本篇列表
榜单列表
专辑列表
创作
音MAD
曲奇静画
曲奇实况
曲奇素材
BB剧场
漫画
同人游戏
曲奇实况
中华曲奇
本篇列表
人物列表
搬运者列表
汉化组列表
友情链接
Cookie☆贴吧
真夏夜的银梦贴吧
中文音MAD维基
潮学维基
银饼视频搜索站
中文曲奇维基Fandom站[已弃用]
通知
打开/关闭个人菜单
未登录
未登录用户的IP地址会在进行任意编辑后公开展示。
user-interface-preferences
个人工具
创建账号
登录
查看“模块:Emoji”的源代码
来自Cookie☆Wiki
查看
阅读
查看源代码
查看历史
associated-pages
模块
讨论
更多操作
←
模块:Emoji
因为以下原因,您没有权限编辑该页面:
您请求的操作仅限属于该用户组的用户执行:
用户
您可以查看和复制此页面的源代码。
local p = {} p.data = require('Module:emoji/data') function p.separateNameAndVar(nameWithVar) -- 接受两种格式来指定变种: -- {{e|名称/变种名}} -- {{e|名称|变种名}} nameWithVar = string.lower(nameWithVar) local varSepPosi = string.find(nameWithVar, '/') if varSepPosi ~= nil then var = string.sub(nameWithVar, varSepPosi + 1) name = string.sub(nameWithVar, 1, varSepPosi - 1) return name, var end return nameWithVar, nil end function p.getEmojiMeta(emojis, nameWithVar) -- 获取该名称 emoji 的元数据, 处理别名 local name, var = p.separateNameAndVar(nameWithVar) local level = 0 while true do if level == 10 then return 'emoji别名的嵌套级别超过10级, 放弃', false end level = level + 1 emojiMetaOrAlias = emojis[name] if type(emojiMetaOrAlias) == 'table' then local emojiMeta = emojiMetaOrAlias if var ~= nil then return p.resolveVariety(emojiMeta, var) end return emojiMeta, true elseif emojiMetaOrAlias == nil then return 'emoji遗失, 名称: ' .. name, false elseif type(emojiMetaOrAlias) ~= 'string' then return 'emoji配置不正确, 类型: ' .. type(emojiMetaOrAlias), false end local alias = emojiMetaOrAlias newName, newVar = p.separateNameAndVar(alias) if newVar ~= nil and var ~= nil then return '在已解析到emoji变种名的情况下, 解析emoji别名时解析到了新的变种名, 旧: ' .. var .. '; 新: ' .. newVar, false elseif newVar ~= nil then var = newVar end name = newName end end function p.resolveVariety(meta, varietyName) -- 处理变种 (如果指定了) -- 变种暂时不支持别名 (懒) meta = (meta.varieties or {})[varietyName] if meta == nil then return 'emoji变种遗失, 变种名称: ' .. varietyName, false elseif type(meta) == 'string' then return 'emoji变种暂未支持别名', false elseif type(meta) ~= 'table' then return 'emoji变种配置不正确, 类型:' .. type(meta), false end return meta, true end function p.emoji() local frame = mw.getCurrentFrame():getParent() local name = mw.text.trim(frame.args[1]) local var = frame.args[2] if var ~= nil then var = mw.text.trim(var) end if var ~= nil then name = name .. '/' .. var end local metaOrError, succ = p.getEmojiMeta(p.data.emojis, name) if not succ then return frame:expandTemplate { title = '?', args = { '[[help:emoji|❓]]', metaOrError, }, } end local meta = metaOrError if type(meta.position) ~= 'table' or type(meta.position[1]) ~= 'number' or type(meta.position[2]) ~= 'number' then return frame:expandTemplate { title = '?', args = { '[[help:emoji|❓]]', 'emoji位置配置不正确', }, } end local imageName = p.data.texture.image local row = meta.position[1] local col = meta.position[2] local width = p.data.texture.unitSize[1] local height = p.data.texture.unitSize[2] local y = row * height local x = col * width return frame:expandTemplate { title = 'image crop', args = { width = tostring(width) .. 'px', height = tostring(height) .. 'px', y = tostring(y) .. 'px', x = tostring(x) .. 'px', image = '[[File:' .. imageName .. '|link=' .. (frame.args['link'] or 'help:emoji') .. ']]', }, } end return p
该页面使用的模板:
模块:Emoji/doc
(
查看源代码
)
返回
模块:Emoji
。