歧路旅人:大陆的霸者WIKI
wiki.17173.com/octopathsp
首页
旅人图鉴
图鉴资料
地图资料
武器图鉴
首饰图鉴
支援者图鉴
试炼之塔
秘技的试炼
职业的试炼
历战的试炼
攻略聚合
斗技大赛
历战NPC攻略
主线BOSS
追忆之塔
讨伐委托
新手攻略
支炎兽
管理
刷新本页缓存
页面操作
短链
移动
删除
保护
取消监视
链入页面
常用功能
沙盒
所有页面
特殊页面
Cargo表
Cargo查询
创建模板
文件列表
更改审核
最近更改
用户权限
用户组权限
评论管理
更改审核
全站配置
配置导航栏
配置整站通告
配置小组件
配置全局CSS
配置全局JS
全局测试CSS
全局测试js
JS/CSS版本
全站设置
组件使用帮助
新建页面提示
修改页面提示
删除页面原因
编辑版权警示
修改页面摘要
上传文件提示
上传文件协议
上传文件说明
编辑器上传文件说明
删除文件原因
其他
创建
攻略审核
WIKI贡献榜
WIKI反馈区
WIKI运维
首页
旅人图鉴
图鉴资料
地图资料
武器图鉴
首饰图鉴
支援者图鉴
试炼之塔
秘技的试炼
职业的试炼
历战的试炼
攻略聚合
斗技大赛
历战NPC攻略
主线BOSS
追忆之塔
讨伐委托
新手攻略
支炎兽
管理
刷新本页缓存
页面操作
短链
移动
删除
保护
取消监视
链入页面
常用功能
沙盒
所有页面
特殊页面
Cargo表
Cargo查询
创建模板
文件列表
更改审核
最近更改
用户权限
用户组权限
评论管理
更改审核
全站配置
配置导航栏
配置整站通告
配置小组件
配置全局CSS
配置全局JS
全局测试CSS
全局测试js
JS/CSS版本
全站设置
组件使用帮助
新建页面提示
修改页面提示
删除页面原因
编辑版权警示
修改页面摘要
上传文件提示
上传文件协议
上传文件说明
编辑器上传文件说明
删除文件原因
其他
创建
攻略审核
WIKI贡献榜
WIKI反馈区
WIKI运维
查看“模块:切换显示”的源代码
WIKI功能
阅读
查看源代码
查看历史
因为以下原因,您没有权限编辑本页:
您请求的操作仅限属于该用户组的用户执行:
用户
您可以查看和复制此页面的源代码。
local module = {} local getArgs = require('Module:Arguments').getArgs local sortedArgs = require('Module:SortArgs').sortedArgs local initSpan = function(className, templateName, frame) -- local args = getArgs(frame, { wrappers = 'Template:' .. templateName }) local args_ref = mw.text.split(mw.text.trim(frame.args['@args'],'|'), '|', false) local args = {} for i, item in ipairs(args_ref) do local t = mw.text.split(item, '=', false) args[t[1]]=t[2] end local span = mw.html.create('span') span:attr('class', className) if className == 'textToggleDisplayButtons' then -- 自Template:切换显示调用。 local operators = {} -- 操作参数。 local contentlist = {} --[[内容表列。结构为: { strcode = 字符串代号, on = @on后缀的内容, off = @off后缀的内容, default = 没有@on或@off后缀的内容, } ]] for k, v in sortedArgs(args, frame.args['@sort'], '|') do if mw.ustring.sub(k, 1, 1) == '@' then operators[k] = v else local strcode local onoff = nil -- 获取字符串代号和开关类型。 if mw.ustring.sub(k, -3) == '@on' then strcode = mw.ustring.sub(k, 1, mw.ustring.len(k) - 3) onoff = 'on' elseif mw.ustring.sub(k, -4) == '@off' then strcode = mw.ustring.sub(k, 1, mw.ustring.len(k) - 4) onoff = 'off' else strcode = k end onoff = onoff or 'default' -- 没有开关类型就是默认值。 if not contentlist[strcode] then table.insert(contentlist, {strcode = strcode}) -- 增加空的内容表。 contentlist[strcode] = #contentlist -- 定位新增加的索引,绑定到参数k。 end contentlist[contentlist[strcode]][onoff] = v -- 替换内容。 end end local counter = 0 -- 计数器。 for k_operators, v_operators in pairs(operators) do span:attr('data-key-' .. counter, k_operators):attr('data-value-' .. counter, v_operators) counter = counter + 1 end for index, content in ipairs(contentlist) do span:tag('span'):attr('data-order', index - 1):attr('data-key', content.strcode):tag('span'):addClass( 'textToggleDisplayButtonLabelText on' ):wikitext(frame:preprocess(content.on or content.default)):done():tag('span'):addClass( 'textToggleDisplayButtonLabelText off' ):wikitext(frame:preprocess(content.off or content.default)) end else local counter = 0 -- 计数器 for k, v in pairs(args) do if v ~= nil then span:attr('data-key-' .. counter, k):attr('data-value-' .. counter, v) counter = counter + 1 end end end mw.logObject(span) return tostring(span) end function module.template(frame) local args = getArgs(frame, { wrappers = 'Template:切换显示/模板' }) local tTitle = args['@'] or '' if tTitle == '' then return nil end local tag = args['@tag'] local branches = {} local params = {} for k, v in sortedArgs(args, frame.args['@sort'], '|') do if not mw.ustring.match(k, '^@[^@]') then local i = 1 while true do local _, j, flag = mw.ustring.find(k, '@(.)', i) if j == nil then i = mw.ustring.len(k) break elseif flag == '@' then i = j + 1 else i = j - 2 break end end local param = mw.text.trim(mw.ustring.gsub(mw.ustring.sub(k, 1, i), '@@', '@')) local branch = mw.ustring.sub(k, i + 2) if mw.text.trim(param) ~= '' then if params[param] == nil then params[param] = {} end if branch ~= '' and branches[branch] == nil then branches[branch] = #branches + 1 table.insert(branches, branch) end if branch == '' then params[param][0] = v else params[param][branch] = v end end end end local result = {} for _, branch in ipairs(branches) do if type(branch) == 'string' then local tArgs = {} for param, bValue in pairs(params) do tArgs[param] = bValue[branch] or bValue[0] end table.insert( result, frame:expandTemplate { title = '切换显示', args = { [1] = branch, [2] = frame:expandTemplate {title = tTitle, args = tArgs}, [3] = tag } } ) end end return table.concat(result) end function module.button(frame) return initSpan('textToggleDisplayButtons', '切换显示按钮', frame) end function module.style(frame) return initSpan('textToggleDisplayStyle', '切换显示样式', frame) end function module.buttonStyle(frame) return initSpan('textToggleDisplayButtonsStyle', '切换显示按钮样式', frame) end return module
本页使用的模板:
模块:切换显示/doc
(
查看源代码
)
返回
模块:切换显示
。