Template:NavboxV2
模板文档
简介
合并了{{Navbox}}相关的一系列模板。融合了{{Navbox}}的行式、{{Navbox subgroup}}的子代模块包含、{{Navbox with columns}}的列式,{{Navbox with collapsible groups}})的折叠行式。
改写自模块:Navbox。
设计用途
在Category:引用模板后大小超过限制的页面中,有相当一部分页面是由于{{Navbox}}模板超载导致。
- 根据WP:模板限制中“嵌套展开”的说法,相同页面的多次嵌套调用是会被分次统计的(例如:页面A嵌入页面B,页面B嵌入页面C,页面C相对页面A统计到的展开字节数是被计算了2次)。而现在Navbox的子代块、列式,折叠行式的实现都是基于Navbox行式的模板调用或类似样式结构迭代,这样就符合内部多次调用Navbox的条件,页面很容易会超过模版展开后大小的限制。
- 其次,实际上Lua的运行限制条件相当宽裕,50MB的内存限制,10秒的运行时限制,很多页面实际使用只在十分之一左右或以下,可以被大量压榨性能。
所以将Navbox所有的实现全部以Lua实现,希望能腾出解释器运行量到Lua运行量,降低解析器触发展开后大小限制的可能。
效果
- 在对于包含一层子Navbox的情况,展开后大小下降最多有50~60%左右。
对比例子
参数
与{{Navbox}}系列模板几乎兼容。但新增部分参数填入:
type
:Navbox的类型,对应值为vertical
(对应{{Navbox}})、horizontal
(对应{{Navbox with columns}})、vertical_collapsible
(对应{{Navbox with collapsible groups}}),默认值为vertical
。border
:Navbox的隐藏参数,用于控制Navbox的边框机制来使子Navbox能被嵌入到父Navbox的值字段(例如list
、col
等)中,实际对应{{Navbox subgroup}}的实现机制。对应值为child
、subgroup
任一个。
- 在本模板添加子Navbox层时,必须传入这两个参数,这是本模板区分是否存在子Navbox层的依赖。本模板首层Navbox层无需添加
border
,按需添加type
。
- 在本模板添加子Navbox层时,必须传入这两个参数,这是本模板区分是否存在子Navbox层的依赖。本模板首层Navbox层无需添加
removeGroupPadding
:用于区别{{Navbox|child}}和{{Navbox subgroup}},后者在Groupn字段的单元格增加一组padding的配置,适用于子Navbox层。任意值,存在则可,为移除该padding配置(对应{{Navbox|child}})。
将原有嵌入{{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检查,确认转换后能与原来的样式、功能基本一致,才应用转换。如果出现问题,请保留案例并联系本模板维护编辑协助处理,或者放弃。
虽然可以在值字段(例如list
、col
等)重新嵌入{{Navbox}}系列模板,但这和原有做法一样,失去了本模板降低解析器限制的作用,不建议这样做。
🔥 Top keywords: Baike: 首页Special:搜索国际劳动节淚之女王劳动节九龍城寨之圍城2024年湯姆斯盃2024年優霸盃不夠善良的我們背着善宰跑金智媛逆天奇案2春色寄情人金秀賢 (男演員)邊佑錫福建號航空母艦城市猎人 (2024年电影)梅龙高速公路习近平九龍寨城陳耀祥破墓城市猎人笑看風雲六四事件排球少年!!排球少年!!角色列表與鳳行承欢记Seventeen (組合)支配物种劉俊謙 (香港)許瑋甯ILLIT宁安如梦鈴木亮平BABYMONSTER孫綻媽祖中华人民共和国朴成焄周雨彤无用的谎言中華民國張文傑金惠奫周處除三害 (電影)赵长鹏怪獸8號BOYNEXTDOOR李主儐第二十条白鹿 (演員)國道三號崩塌事故澄碧邨乘風2024幕府將軍 (2024年電視劇)哈里·R·杜鲁门李美淑阿努纳奇比利小子特技玩家活塞男事件李现葬送的芙莉蓮IVE (組合)林依晨日本五月天帝國浩劫:美國內戰(G)I-DLEP站末日愚者夜限照相馆三流之路打天下2机动战士GUNDAM SEED FREEDOM張惠東草榴社区三体 (小说)香港鄧麗君迷宮飯NewJeansEnergy (組合)徐巧芯逆天奇案為美好的世界獻上祝福!姜濤搜查班長1958吉伊卡哇張書偉謝京穎艾爾頓·冼拿賀軍翔毛泽东少年歌行轉生為第七王子,隨心所欲的魔法學習之路木村文乃