文档图示 模板文档[查看] [编辑] [历史] [清除缓存]

简介

合并了((Navbox))相关的一系列模板。融合了((Navbox))的行式、((Navbox subgroup))的子代模块包含、((Navbox with columns))的列式,((Navbox with collapsible groups)))的折叠行式。

改写自模块:Navbox

设计用途

Category:引用模板后大小超过限制的页面中,有相当一部分页面是由于((Navbox))模板超载导致。

所以将Navbox所有的实现全部以Lua实现,希望能腾出解释器运行量到Lua运行量,降低解析器触发展开后大小限制的可能。

效果

在对于包含一层子Navbox的情况,展开后大小下降最多有50~60%左右。

对比例子

项目 ((Navbox))系列,参考基准 本模板
行式 User:Cwek/工作室/Navbox/行式 User:Cwek/工作室/Navbox/testcase/行式
行式有子层 User:Cwek/工作室/Navbox/行式有子代 User:Cwek/工作室/Navbox/testcase/行式有子代
列式 User:Cwek/工作室/Navbox/列式 User:Cwek/工作室/Navbox/testcase/列式
列式有子层 User:Cwek/工作室/Navbox/列式有子代 User:Cwek/工作室/Navbox/testcase/列式有子代
折叠 User:Cwek/工作室/Navbox/折叠 User:Cwek/工作室/Navbox/testcase/折叠
折叠混合(包括行式、列式、折叠的子层) User:Cwek/工作室/Navbox/折叠列式 User:Cwek/工作室/Navbox/testcase/折叠列式
Template:哈利波特 Special:固定链接/60036259 User:Cwek/工作室/Navbox/T:哈利波特
Template:广州 Special:固定链接/60035252 User:Cwek/工作室/Navbox/T:广州
Template:广州地铁车站 Special:固定链接/59586101 User:Cwek/工作室/Navbox/T:广州地铁
Template:粵港澳大灣區公共交通 Special:固定链接/59654656 User:Cwek/工作室/Navbox/T:粵港澳大灣區公共交通
Template:JR東日本的車輛 Special:固定链接/61531803 Special:固定链接/62385808
Template:中华人民共和国广播电视付费频道 Special:固定链接/77500465 Special:固定链接/77504799

参数

与((Navbox))系列模板几乎兼容。但新增部分参数填入:

在本模板添加子Navbox层时,必须传入这两个参数,这是本模板区分是否存在子Navbox层的依赖。本模板首层Navbox层无需添加border,按需添加type

自((Navbox))系列模板转换

将原有嵌入((Navbox))系列模板的值字段listn(其他类同)改为listn-,并作为相应嵌套子Navbox模板的参数的前缀来加入,使这些模板嵌套转换为扁平化的一层模板参数。

例子
((Navbox))系列 本模板
((Navbox
|name = Navbox/doc
|state = uncollapsed
|image = (({image))}
|imageleft = (({imageleft))}
|title = (({title))}
|above = (({above))}
|group1 = (({group1))}
|list1 = ((Navbox subgroup
 | title = (({list1-title))}
 | above = (({list1-above))}
 | below = (({list1-below))}
 | imageleft = (({list1-imageleft))}
 | image = (({list1-image))}
 | group1 = (({list1-group1))}
 | list1  = (({list1-list1))}
 | group2 = (({list1-group2))}
 | list2  = (({list1-list2))}
))
|group2 = (({group2))}
|list2 = ((Navbox subgroup
| group1 = (({list2-group1))}
| list1  = (({list2-list1))}
| group2 = (({list2-group2))}
| list2  = (({list2-list2))}
))
|below = (({below))}
))
((NavboxV2
|name = Navbox/doc
|state = uncollapsed
|image = (({image))}
|imageleft = (({imageleft))}
|title = (({title))}
|above = (({above))}
<!--  list1 -->
|group1 = (({group1))}
<!-- list1-sub-->
|list1-type =vertical <!--作为list1的子Navbox层,全部相应参数加上对应前缀“list1-”,下同,如此类推 -->
|list1-border=child
|list1-title = (({list1-title))}
|list1-above = (({list1-above))}
|list1-below = (({list1-below))}
|list1-imageleft = (({list1-imageleft))}
|list1-image = (({list1-image))}
|list1-group1 = (({list1-group1))}
|list1-list1  = (({list1-list1))}
|list1-group2 = (({list1-group2))}
|list1-list2  = (({list1-list2))}
<!--  list2 -->
|group2 = (({group2))}
<!-- list2-sub-->
|list2-type =vertical <!--作为list2的子Navbox层,全部相应参数加上对应前缀“list2-”,下同,如此类推 -->
|list2-border=child
|list2-group1 = (({list2-group1))}
|list2-list1  = (({list2-list1))}
|list2-group2 = (({list2-group2))}
|list2-list2  = (({list2-list2))}
<!--end-->
|below = (({below))}
))

转换注意

由于((Navbox))系列的实现较为复杂和涉及自我嵌套,本模板的实现也为此做了对应兼容性调整,可能会出现一些参数被过度透传(可能在样式控制部分,原因是原有设计通过控制参数传入来隔离,而本设计为了使参数扁平化,导致部分这些参数无法隔离)。而且模板参数非常依赖命名规律,在转换替换前,请进行testcase检查,确认转换后能与原来的样式、功能基本一致,才应用转换。如果出现问题,请保留案例并联系本模板维护编辑协助处理,或者放弃

虽然可以在值字段(例如listcol等)重新嵌入((Navbox))系列模板,但这和原有做法一样,失去了本模板降低解析器限制的作用,不建议这样做。