Module:Navpills:修订间差异
来自OGAS数据中枢
更多操作
无编辑摘要 |
无编辑摘要 |
||
| 第37行: | 第37行: | ||
-- 插入文字 | -- 插入文字 | ||
navpill:tag('span'):wikitext(args['text' .. num] or args['page' .. num]) | -- 找到生成 span 的地方,确保添加了 pill-text 类名 | ||
navpill:tag('span') | |||
:addClass('pill-text') | |||
:wikitext(args['text' .. num] or args['page' .. num]) | |||
-- 2. 创建对应的展开内容块 | -- 2. 创建对应的展开内容块 | ||
2026年4月2日 (四) 13:00的版本
此模块的文档可以在Module:Navpills/doc创建
local mArguments -- 延迟加载
local p = {}
-- 辅助函数:获取参数中的数字后缀并排序
local function getArgNums(prefix, args)
local nums = {}
for k, v in pairs(args) do
local num = tostring(k):match('^' .. prefix .. '([1-9]%d*)$')
if num then table.insert(nums, tonumber(num)) end
end
table.sort(nums)
return nums
end
function p.navpills(frame)
mArguments = require('Module:Arguments')
local args = mArguments.getArgs(frame)
local html = mw.html.create('div'):addClass('adaptive-nav')
-- 遍历所有带有数字后缀的 page 参数
local nums = getArgNums('page', args)
for _, i in ipairs(nums) do
local num = tostring(i)
local moduleWrap = html:tag('div'):addClass('nav-module')
-- 1. 创建胶囊按钮
local navpill = moduleWrap:tag('div')
:addClass('template-navpill mw-customtoggle nav-pill-btn')
:addClass('mw-customtoggle-game' .. num) -- 绑定折叠ID
-- 插入背景图层 (参考星际公民风格)
if args['image' .. num] then
navpill:tag('div'):addClass('template-navpill-background')
:wikitext(string.format('[[File:%s|x64px|link=]]', args['image' .. num]))
navpill:addClass('has-bg')
end
-- 插入文字
-- 找到生成 span 的地方,确保添加了 pill-text 类名
navpill:tag('span')
:addClass('pill-text')
:wikitext(args['text' .. num] or args['page' .. num])
-- 2. 创建对应的展开内容块
moduleWrap:tag('div')
:addClass('mw-collapsible mw-collapsed nav-pill-content')
:attr('id', 'mw-customcollapsible-game' .. num)
:tag('div'):addClass('pill-inner-content')
:wikitext(args['content' .. num] or (args['page' .. num] .. ' 的详细导航内容正在建设中...'))
end
-- 引入样式表
return frame:extensionTag{ name = 'templatestyles', args = { src = 'Template:Navpills/styles.css' } }
.. tostring(html)
end
return p