模块:Infocard:修订间差异
来自植物大战僵尸杂交版Wiki
更多操作
无编辑摘要 |
无编辑摘要 |
||
| 第6行: | 第6行: | ||
local name = args["名称"] or frame:preprocess("{{PAGENAME}}") | local name = args["名称"] or frame:preprocess("{{PAGENAME}}") | ||
local attrStr = args["属性"] or "" | local attrStr = args["属性"] or "" | ||
local imageStr = args["图片"] or name -- | local imageStr = args["图片"] or name | ||
local imageSize = args["图片尺寸"] or "150px" -- 新增:图片尺寸参数 | |||
-- 处理图片文件名:如果有后缀则保持不变,否则添加.webp | -- 处理图片文件名:如果有后缀则保持不变,否则添加.webp | ||
local imageName | local imageName | ||
if string.match(imageStr, "%.[^.]+$") then | if string.match(imageStr, "%.[^.]+$") then | ||
imageName = imageStr | imageName = imageStr | ||
else | else | ||
imageName = imageStr .. ".webp" | imageName = imageStr .. ".webp" | ||
end | end | ||
| 第20行: | 第19行: | ||
local floatClass = (args[1] == "right") and "pvzhe-info-card-float-right" or "" | local floatClass = (args[1] == "right") and "pvzhe-info-card-float-right" or "" | ||
local | local attrTable = {} | ||
if attrStr ~= "" then | if attrStr ~= "" then | ||
for attrItem in string.gmatch(attrStr, "[^,]+") do | for attrItem in string.gmatch(attrStr, "[^,]+") do | ||
| 第38行: | 第36行: | ||
table.insert(html, '<div class="pvzhe-info-card">') | table.insert(html, '<div class="pvzhe-info-card">') | ||
table.insert(html, ' <div class="pvzhe-info-card-row pvzhe-info-card-title">' .. name .. '</div>') | table.insert(html, ' <div class="pvzhe-info-card-row pvzhe-info-card-title">' .. name .. '</div>') | ||
table.insert(html, ' <div class="pvzhe-info-card-row pvzhe-info-card-image">[[图片:' .. imageName .. '| | -- 修改下面这一行:使用 imageSize 变量代替写死的 150px | ||
table.insert(html, ' <div class="pvzhe-info-card-row pvzhe-info-card-image">[[图片:' .. imageName .. '|' .. imageSize .. '|' .. name .. ']]</div>') | |||
for _, attr in ipairs(attrTable) do | for _, attr in ipairs(attrTable) do | ||
2026年5月23日 (六) 11:48的最新版本
此模块的文档可以在模块:Infocard/doc创建
local p = {}
function p.main(frame)
local args = frame:getParent().args
local name = args["名称"] or frame:preprocess("{{PAGENAME}}")
local attrStr = args["属性"] or ""
local imageStr = args["图片"] or name
local imageSize = args["图片尺寸"] or "150px" -- 新增:图片尺寸参数
-- 处理图片文件名:如果有后缀则保持不变,否则添加.webp
local imageName
if string.match(imageStr, "%.[^.]+$") then
imageName = imageStr
else
imageName = imageStr .. ".webp"
end
local floatClass = (args[1] == "right") and "pvzhe-info-card-float-right" or ""
local attrTable = {}
if attrStr ~= "" then
for attrItem in string.gmatch(attrStr, "[^,]+") do
local attrName, attrValue = string.match(attrItem, "^([^:]+):(.+)$")
if attrName and attrValue then
table.insert(attrTable, {
name = string.gsub(attrName, "^%s*(.-)%s*$", "%1"),
value = string.gsub(attrValue, "^%s*(.-)%s*$", "%1")
})
end
end
end
local html = {}
table.insert(html, '<div class="' .. floatClass .. '">')
table.insert(html, '<div class="pvzhe-info-card">')
table.insert(html, ' <div class="pvzhe-info-card-row pvzhe-info-card-title">' .. name .. '</div>')
-- 修改下面这一行:使用 imageSize 变量代替写死的 150px
table.insert(html, ' <div class="pvzhe-info-card-row pvzhe-info-card-image">[[图片:' .. imageName .. '|' .. imageSize .. '|' .. name .. ']]</div>')
for _, attr in ipairs(attrTable) do
table.insert(html, ' <div class="pvzhe-info-card-row pvzhe-info-card-attr">')
table.insert(html, ' <div class="label">' .. attr.name .. '</div>')
table.insert(html, ' <div class="value">' .. attr.value .. '</div>')
table.insert(html, ' </div>')
end
table.insert(html, '</div>')
table.insert(html, '</div>')
return table.concat(html, "\n")
end
return p