打开/关闭搜索
搜索
打开/关闭菜单
14
6636
42
1.1万
OGAS数据中枢
导航
首页
最近更改
随机页面
特殊页面
上传文件
少女前线
简介
战术人形
装备图鉴
BGM
任务
打开/关闭外观设置菜单
通知
打开/关闭个人菜单
未登录
未登录用户的IP地址会在进行任意编辑后公开展示。
user-interface-preferences
个人工具
注册
登录
查看“︁模块:GFInfobox”︁的源代码
来自OGAS数据中枢
更多操作
←
模块:GFInfobox
因为以下原因,您没有权限编辑该页面:
您请求的操作仅限属于该用户组的用户执行:
管理员
您可以查看和复制此页面的源代码。
local p = {} local function cleanParam(s) if not s then return nil end s = s:gsub('^[%s\n\r\t]+', ''):gsub('[%s\n\r\t]+$', '') if s == '' then return nil end s = s:gsub('^%s*<p[^>]*>', ''):gsub('</p>%s*$', '') return s end local function expand(frame, s) if not s then return nil end return frame:preprocess(s) end function p.formatRarity(rarity) if not rarity then return nil end local colors = { [2] = '#777', [3] = '#33566f', [4] = '#7b813f', [5] = '#a7753b', [6] = '#ad4229', } local num = tonumber(rarity) or (rarity:find('★') and select(2, rarity:gsub('★', '★'))) if num and colors[math.floor(num)] then return string.format( '<span style="color:%s">%s</span>', colors[math.floor(num)], string.rep('★', math.floor(num)) ) end return rarity end function p.main(frame) local parentFrame = frame:getParent() local args = parentFrame.args local name = cleanParam(args['标题']) or cleanParam(args['名字']) or mw.title.getCurrentTitle().subpageText local function fmtColor(raw, cType) raw = cleanParam(raw) if not raw then return nil end return frame:preprocess('{{' .. cType .. '_color|' .. raw .. '}}') end local hairColor = fmtColor(args['多种发色'] or args['发色'], 'Hair') local eyeColor = fmtColor(args['多种瞳色'] or args['瞳色'], 'Eye') local rarity = p.formatRarity(cleanParam(args['稀有度'])) local function ep(key) local v = cleanParam(args[key]) if not v then return nil end return expand(frame, v) end local function fmtVoice() local raw = cleanParam(args['多位声优'] or args['声优']) if not raw then return nil end local expanded = expand(frame, raw) if expanded:find('%[%[') then return expanded end return '[[' .. expanded .. ']]' end local parts = {} local function push(s) parts[#parts + 1] = s end push('<div class="gf-infobox">') push('<div class="gf-title">' .. mw.text.nowiki(name):gsub('&', '&') .. '</div>') parts[#parts] = '<div class="gf-title">' .. expand(frame, name) .. '</div>' local image = cleanParam(args['image']) push('<div class="gf-image-container">') if image then push('[[File:' .. image .. '|280px]]') local caption = cleanParam(args['图片说明']) if caption then push('<div style="font-size:0.9em;">' .. expand(frame, caption) .. '</div>') end end push('</div>') push('<div class="gf-section">基础资料</div>') push('<div class="gf-table">') local fields = { { '本名', ep('本名') }, { '别名', ep('别名') }, { '发色', hairColor }, { '瞳色', eyeColor }, { '声优', fmtVoice() }, { '萌点', ep('萌点') }, { '类型', ep('类型') }, { '稀有度', rarity }, { '团体', ep('所属团体') }, { '状态', ep('个人状态') }, } for _, field in ipairs(fields) do local label, value = field[1], field[2] if value then push('<div class="gf-row">') push('<div class="gf-label">' .. label .. '</div>') push('<div class="gf-value">' .. value .. '</div>') push('</div>') end end push('</div>') -- gf-table local related = ep('相关人士') if related then push('<div class="gf-section">亲属或相关人</div>') push('<div class="gf-related">' .. related .. '</div>') end push('</div>') return table.concat(parts, '\n') end return p
该页面嵌入的页面:
模块:GFInfobox/doc
(
查看源代码
)
返回
模块:GFInfobox
。
查看“︁模块:GFInfobox”︁的源代码
来自OGAS数据中枢