打开/关闭搜索
搜索
打开/关闭菜单
1
1.2K
20
1.6K
光圈共享
导航
首页
最近更改
随机照片
随机截图
特殊页面
上传文件
游览图片
精选图片
优质图片
每日图片
游戏截图
现实摄影
所有图片
打开/关闭外观设置菜单
通知
打开/关闭个人菜单
未登录
未登录用户的IP地址会在进行任意编辑后公开展示。
user-interface-preferences
个人工具
创建账号
登录
查看“︁模块:Infobox”︁的源代码
来自光圈共享
查看
阅读
查看源代码
查看历史
associated-pages
模块
讨论
更多操作
←
模块:Infobox
因为以下原因,您没有权限编辑该页面:
您请求的操作仅限属于该用户组的用户执行:emailconfirmed
您可以查看和复制此页面的源代码。
local p = {} function p.main(frame) local args = frame.args local root = mw.html.create('div'):addClass('infobox') -- 添加对齐方式 local align = args.align or 'left' root:addClass('infobox-align-' .. align) -- 图片处理 if args.image and mw.text.trim(args.image) ~= '' then local tabber = root:tag('div'):addClass('tabber') local tab = tabber:tag('div') :addClass('tabbertab') :attr('title', args['imagedescription'] or '') local imageText = string.format('[[File:%s|frameless|600px', args.image) if args['imagedescription'] then imageText = imageText .. '|' .. args['imagedescription'] end imageText = imageText .. ']]' tab:tag('div') :addClass('infobox-image') :wikitext(imageText) end -- 图标+标题区 local titleBlock = root:tag('div'):addClass('infobox-header') local titleStyle = args['title-style'] or 'left' titleBlock:addClass('title-style-' .. titleStyle) local logoSpacing = args['logo-spacing'] or '8px' -- 新增参数,默认间距为 8px local titleSubtitleWrapper = titleBlock:tag('div'):addClass('infobox-title-and-subtitle') -- 使用普通 div 替代 h2 作为标题 if args.title then titleSubtitleWrapper:tag('div') :addClass('infobox-title') :wikitext(args.title) end if args.subtitle then titleSubtitleWrapper:tag('div') :addClass('infobox-subtitle') :wikitext(args.subtitle) end -- 动态栏位生成器 local function buildColumns(colType, cols) local max = 0 local validItems = {} -- 自动检测最大条目数,并过滤掉 info 为空的项 for i = 1, 50 do -- 最大支持50个条目 local label = args[colType..'-label'..i] local info = args[colType..'-info'..i] if label and info and info ~= '' then validItems[#validItems + 1] = { label = label, info = info } max = #validItems end end -- 生成栏位 if max > 0 then local row = root:tag('div') :addClass('infobox-section') :tag('div'):addClass('infobox-columns columns-'..cols) for i = 1, max do row:tag('div'):addClass('column') :tag('div'):addClass('label'):wikitext(validItems[i].label):done() :tag('div'):addClass('value'):wikitext(validItems[i].info) end end end -- 生成各类型栏位 buildColumns('col1', 1) -- 单栏 buildColumns('col2', 2) -- 双栏 buildColumns('col3', 3) -- 三栏 return tostring(root) end return p
该页面使用的模板:
模块:Infobox/doc
(
查看源代码
)
返回
模块:Infobox
。
查看“︁模块:Infobox”︁的源代码
来自光圈共享