For faster navigation, this Iframe is preloading the Wikiwand page for 模板:NavboxV2.

模板: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))系列,参考基准 本模板
行式 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))系列模板几乎兼容。但新增部分参数填入:

  • type:Navbox的类型,对应值为vertical(对应((Navbox)))、horizontal(对应((Navbox with columns)))、vertical_collapsible(对应((Navbox with collapsible groups))),默认值为vertical
  • border:Navbox的隐藏参数,用于控制Navbox的边框机制来使子Navbox能被嵌入到父Navbox的值字段(例如listcol等)中,实际对应((Navbox subgroup))的实现机制。对应值为childsubgroup任一个。
在本模板添加子Navbox层时,必须传入这两个参数,这是本模板区分是否存在子Navbox层的依赖。本模板首层Navbox层无需添加border,按需添加type
  • removeGroupPadding:用于区别((Navbox|child))和((Navbox subgroup)),后者在Groupn字段的单元格增加一组padding的配置,适用于子Navbox层。任意值,存在则可,为移除该padding配置(对应((Navbox|child)))。

自((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))系列模板,但这和原有做法一样,失去了本模板降低解析器限制的作用,不建议这样做。

{{bottomLinkPreText}} {{bottomLinkText}}
模板:NavboxV2
Listen to this article

This browser is not supported by Wikiwand :(
Wikiwand requires a browser with modern capabilities in order to provide you with the best reading experience.
Please download and use one of the following browsers:

This article was just edited, click to reload
This article has been deleted on Wikipedia (Why?)

Back to homepage

Please click Add in the dialog above
Please click Allow in the top-left corner,
then click Install Now in the dialog
Please click Open in the download dialog,
then click Install
Please click the "Downloads" icon in the Safari toolbar, open the first download in the list,
then click Install
{{::$root.activation.text}}

Install Wikiwand

Install on Chrome Install on Firefox
Don't forget to rate us

Tell your friends about Wikiwand!

Gmail Facebook Twitter Link

Enjoying Wikiwand?

Tell your friends and spread the love:
Share on Gmail Share on Facebook Share on Twitter Share on Buffer

Our magic isn't perfect

You can help our automatic cover photo selection by reporting an unsuitable photo.

This photo is visually disturbing This photo is not a good choice

Thank you for helping!


Your input will affect cover photo selection, along with input from other users.

X

Get ready for Wikiwand 2.0 🎉! the new version arrives on September 1st! Don't want to wait?