更多操作
小 (fix…) |
小 (fix) |
||
| 第35行: | 第35行: | ||
meta = (meta.aliases or {})[var] | meta = (meta.aliases or {})[var] | ||
if meta == nil then | if meta == nil then | ||
return ' | return frame:expandTemplate { | ||
title = '?', | |||
[1] = [[help:emoji|❓]], | |||
[2] = 'emoji变种遗失', | |||
} | |||
elseif type(meta) ~= 'table' then | elseif type(meta) ~= 'table' then | ||
return ' | return frame:expandTemplate { | ||
title = '?', | |||
[1] = [[help:emoji|❓]], | |||
[2] = 'emoji变种配置不正确(暂未支持别名)', | |||
} | |||
end | end | ||
end | end | ||
| 第45行: | 第53行: | ||
or type(meta.position[2]) ~= 'number' | or type(meta.position[2]) ~= 'number' | ||
then | then | ||
return ' | return frame:expandTemplate { | ||
title = '?', | |||
[1] = [[help:emoji|❓]], | |||
[2] = 'emoji位置配置不正确', | |||
} | |||
end | end | ||
2019年4月17日 (三) 03:01的版本
此模块的文档可以在模块:Emoji/doc创建
local p = {}
local data = require('Module:emoji/data')
function p.emoji()
local frame = mw.getCurrentFrame():getParent()
local name = frame.args[1]
local var = nil
-- 接受两种格式来指定变种:
-- {{e|名称/变种名}}
-- {{e|名称|变种名}}
local varSepPosi = string.find(name, '/')
if varSepPosi ~= nil then
var = string.sub(name, varSepPosi + 1)
name = string.sub(name, 1, varSepPosi - 1)
else
var = frame.args[2]
end
-- 获取该名称 emoji 的元数据, 处理别名
local meta = name
while true do
meta = data[meta]
if type(meta) == 'table' then
break
elseif type(meta) ~= 'string' then
return '{{?|[[help:emoji|❓]]|emoji遗失}}'
end
end
-- 处理变种 (如果指定了)
-- 变种暂时不支持别名 (懒)
if var ~= nil then
meta = (meta.aliases or {})[var]
if meta == nil then
return frame:expandTemplate {
title = '?',
[1] = [[help:emoji|❓]],
[2] = 'emoji变种遗失',
}
elseif type(meta) ~= 'table' then
return frame:expandTemplate {
title = '?',
[1] = [[help:emoji|❓]],
[2] = 'emoji变种配置不正确(暂未支持别名)',
}
end
end
if type(meta.position) ~= 'table'
or type(meta.position[1]) ~= 'number'
or type(meta.position[2]) ~= 'number'
then
return frame:expandTemplate {
title = '?',
[1] = [[help:emoji|❓]],
[2] = 'emoji位置配置不正确',
}
end
local image = data.texture.image
local row = meta.position[1]
local col = meta.position[2]
local width = data.texture.unitSize[1]
local height = data.texture.unitSize[2]
local y = row * height
local x = col * width
return frame:expandTemplate {
title = 'image crop',
width = width,
height = height,
y = y,
x = x,
image = '[[File:' .. image .. '|link=help:emoji]]',
}
end
return p