local p = {}
local getArgs = require('Module:Arguments').getArgs
-- 字符映射表
local charMap = {
['黑块'] = '█',
['男'] = '♂', ['哲学'] = '♂',
['女'] = '♀',
['笑脸'] = '☺',
['哭脸'] = '☹',
['太阳'] = '☀',
['五星'] = '★',
['空心五星'] = '☆',
['右三角'] = '▶',
['空心右三角'] = '▷',
['左三角'] = '◀',
['空心左三角'] = '◁',
['红桃'] = '♥', ['红心'] = '♥',
['方片'] = '♦', ['方块'] = '♦',
['黑桃'] = '♠', ['葵扇'] = '♠',
['梅花'] = '♣', ['草花'] = '♣',
['空心红桃'] = '♡', ['空心红心'] = '♡',
['空心方片'] = '♢', ['空心方块'] = '♢',
['空心黑桃'] = '♤', ['空心葵扇'] = '♤',
['空心梅花'] = '♧', ['空心草花'] = '♧',
['对'] = '✔', ['勾'] = '✔',
['错'] = '✘', ['叉'] = '✘',
['选中'] = '☑', ['勾选'] = '☑',
['音符'] = '♪', ['八分音符'] = '♪',
['四分音符'] = '♩',
['带梁八分音符'] = '♫',
['带梁十六分音符'] = '♬',
['太极'] = '☯',
['飞机'] = '✈', ['灰机'] = '✈',
['辐射'] = '☢', ['放射'] = '☢', ['高能'] = '☢',
['生化'] = '☣',
['剧毒'] = '☠', ['骷髅'] = '☠'
}
-- 主要函数
function p.main(frame)
local args = getArgs(frame)
local space_num = tonumber(args[1] or args.count or '1') or 1
local char = args[2] or args.char or ''
-- 处理字符映射
if char ~= '' and charMap[char] then
char = charMap[char]
elseif char == '' then
-- 默认字符处理
if space_num > 0 then
char = ' '
else
char = ' '
end
end
-- 生成重复字符
local count = math.abs(space_num)
if count == 0 then
return ''
end
local result = ''
for i = 1, count do
result = result .. char
end
return result
end
-- 添加一个方便的函数,用于直接获取特殊字符
function p.getChar(frame)
local args = getArgs(frame)
local charName = args[1] or ''
if charName ~= '' and charMap[charName] then
return charMap[charName]
else
return charName -- 如果不是已知字符,直接返回输入
end
end
return p