模块:SoftwareInfo
来自陋室
更多操作
此模块的文档可以在模块:SoftwareInfo/doc创建
local p = {}
local function trim(s)
if not s then
return ''
end
return mw.text.trim(s)
end
local function v(args, key, fallback)
local value = trim(args[key])
if value == '' then
return fallback
end
return value
end
local function linkOrText(url, label, empty)
url = trim(url)
if url == '' then
return empty
end
return string.format('[%s %s]', url, label)
end
local function addRow(out, label, value)
table.insert(out, '|-')
table.insert(out, '| ' .. label .. ' || ' .. value)
end
function p.renderSandbox(frame)
local args = frame.args or {}
local out = {}
table.insert(out, '{| class="wikitable"')
table.insert(out, '|+ 软件名称:' .. mw.title.getCurrentTitle().text)
table.insert(out, '! colspan="2" | 基本信息')
addRow(out, "'''开发者:'''", v(args, '开发者', '未知'))
addRow(out, "'''官网:'''", linkOrText(args['官网'], '官网', '无'))
addRow(out, "'''下载:'''", linkOrText(args['下载'], '下载链接', '无'))
addRow(out, "'''类别:'''", v(args, '类别', '未知'))
addRow(out, "'''状态:'''", v(args, '状态', '未知'))
table.insert(out, '|-')
table.insert(out, '! colspan="2" | 架构与版本')
addRow(out, "'''当前版本:'''", v(args, '版本号', '未知'))
addRow(out, "'''文件大小:'''", v(args, '大小', '未知'))
addRow(out, "'''更新日期:'''", v(args, '更新日期', '未知'))
addRow(out, "'''语言:'''", v(args, '语言', '未知'))
addRow(out, "'''支持系统:'''", v(args, '系统', '未知'))
addRow(out, "'''支持架构:'''", v(args, '架构', '未知'))
addRow(out, "'''开发语言:'''", v(args, '开发语言', '未知'))
addRow(out, "'''界面类型:'''", v(args, '界面', '未知'))
table.insert(out, '|-')
table.insert(out, '! colspan="2" | 功能与发行')
addRow(out, "'''主要功能:'''", v(args, '功能', '未知'))
addRow(out, "'''相关软件:'''", v(args, '相关软件', '未知'))
addRow(out, "'''发行方式:'''", v(args, '发行方式', '未知'))
table.insert(out, '|-')
table.insert(out, '! colspan="2" | 贡献与许可证')
addRow(out, "'''许可证:'''", v(args, '许可证', '未知'))
addRow(out, "'''GitHub:'''", linkOrText(args['GitHub'], 'GitHub 页面', '无'))
addRow(out, "'''贡献方式:'''", v(args, '贡献方式', '未知'))
table.insert(out, '|}')
table.insert(out, frame:expandTemplate {
title = 'PageToolsLink/sandbox',
args = {
target = 'Template:SoftwareInfo/sandbox',
parent = 'Template:SoftwareInfo/sandbox',
}
})
return table.concat(out, '\n')
end
return p