打开/关闭搜索
搜索
打开/关闭菜单
14
6665
42
1.1万
OGAS数据中枢
导航
首页
最近更改
随机页面
特殊页面
上传文件
少女前线
简介
战术人形
装备图鉴
BGM
任务
打开/关闭外观设置菜单
通知
打开/关闭个人菜单
未登录
未登录用户的IP地址会在进行任意编辑后公开展示。
user-interface-preferences
个人工具
注册
登录
查看“︁Module:少女前线立绘”︁的源代码
来自OGAS数据中枢
更多操作
←
Module:少女前线立绘
因为以下原因,您没有权限编辑该页面:
您请求的操作仅限属于该用户组的用户执行:
管理员
您可以查看和复制此页面的源代码。
local p = {} local PIC_NAMES = { '普通', '重创', '和谐', '重创和谐' } local STYLES_PAGE = 'User:弃权者/Template:少女前线信息/styles.css' local WIDGET_NAME = 'GF立绘切换' local function escape(s) if not s then return '' end return s:gsub('&','&'):gsub('<','<'):gsub('>','>'):gsub('"','"') end local function parseGroups(args) local groups = {} for i = 1, 30 do local tag = args['tag' .. i] if not tag or tag == '' then if i > 3 then local allEmpty = true for k = i, math.min(i + 2, 30) do if args['tag' .. k] and args['tag' .. k] ~= '' then allEmpty = false break end end if allEmpty then break end end else local groupType = args['type' .. i] or 'pic' local pics = {} for j = 1, 20 do local picFile = args['tag' .. i .. 'pic' .. j] if picFile and picFile ~= '' then local label if groupType == 'pic' then label = PIC_NAMES[j] or ('差分' .. j) else label = args['tag' .. i .. 'name' .. j] if not label or label == '' then label = '差分' .. j end end table.insert(pics, { file = picFile, label = label }) end end table.insert(groups, { label = tag, groupType = groupType, pics = pics, }) end end return groups end local function renderSwitcher(groups) local html = {} table.insert(html, '<div class="gf-switcher-overlay">') table.insert(html, '<div class="gf-switcher-toggle" title="展开/隐藏菜单"></div>') table.insert(html, '<div class="gf-switcher-list">') for gi, group in ipairs(groups) do local isFirst = gi == 1 table.insert(html, string.format( '<div class="gf-group-btn%s" data-group="%d">%s</div>', isFirst and ' active' or '', gi, escape(group.label) )) table.insert(html, string.format( '<div class="gf-variant-list%s" data-group="%d">', isFirst and '' or ' collapsed', gi )) for vi, pic in ipairs(group.pics) do table.insert(html, string.format( '<div class="gf-switch-btn%s" data-group="%d" data-variant="%d" data-filename="%s">%s</div>', (isFirst and vi == 1) and ' active' or '', gi, vi, escape(pic.file), escape(pic.label) )) end table.insert(html, '</div>') end table.insert(html, '</div>') table.insert(html, '</div>') return table.concat(html, '\n') end local function renderImageContainer(groups) local html = {} table.insert(html, '<div class="gf-image-container">') local defaultFile = '' if groups[1] and groups[1].pics[1] then defaultFile = groups[1].pics[1].file end if defaultFile ~= '' then table.insert(html, string.format( '<div class="gf-main-img">[[File:%s|link=]]</div>', defaultFile )) end table.insert(html, '<div class="gf-view-original" title="查看原图"></div>') table.insert(html, '</div>') return table.concat(html, '\n') end function p.main(frame) local args = frame:getParent().args local pageName = mw.title.getCurrentTitle().subpageText local groups = parseGroups(args) local boxId = 'gf-box-' .. mw.uri.encode(pageName, 'PATH') local html = {} table.insert(html, frame:extensionTag('templatestyles', '', { src = STYLES_PAGE })) table.insert(html, frame:preprocess('{{#widget:' .. WIDGET_NAME .. '}}')) table.insert(html, string.format('<div class="gf-infobox-new" id="%s">', escape(boxId))) table.insert(html, '<div class="gf-left-panel">') if #groups > 0 then table.insert(html, renderSwitcher(groups)) table.insert(html, renderImageContainer(groups)) end table.insert(html, '</div>') return table.concat(html, '\n') end return p
该页面嵌入的页面:
Module:少女前线立绘/doc
(
查看源代码
)
返回
Module:少女前线立绘
。
查看“︁Module:少女前线立绘”︁的源代码
来自OGAS数据中枢