打开/关闭搜索
搜索
打开/关闭菜单
1.5K
12K
93
33.5K
Cookie☆Wiki
导航
首页
alt-z
最近更改
alt-r
随机页面
alt-x
帮助
沙盒
特殊页面
alt-q
上传文件
alt-u
常用
曲奇简介
用语列表
人物一览
曲奇团体
曲奇年表
本篇列表
榜单列表
专辑列表
创作
音MAD
曲奇静画
曲奇实况
曲奇素材
BB剧场
漫画
同人游戏
曲奇实况
与曲奇有交集的内容
淫梦
东方Project
漫画日本昔话
biim兄贵致敬
QVC福岛
哲♂学
创价
YouTuber
恒心教
VOCALOID
运营批判
友情链接
Cookie☆贴吧
真夏夜的银梦贴吧
中文音MAD维基
潮学维基
银饼视频搜索站
中文曲奇维基Fandom站[已弃用]
通知
打开/关闭个人菜单
未登录
未登录用户的IP地址会在进行任意编辑后公开展示。
user-interface-preferences
个人工具
创建账号
登录
alt-o
查看“︁模块: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
调试控制台
* 此模块的返回的值存于控制台变量“p”中,包括没有保存的变更。 * 在一行的前面加上“=”可以将其作为表达式来计算或使用print()显示。显示表格请使用mw.logObject()。 * 在模块代码中使用mw.log()和mw.logObject()来向控制台发送消息。
该页面使用的模板:
模块:Emoji/doc
(
查看源代码
)
返回
模块:Emoji
。