跳转到内容

在User talk:Dabao qian/Flow的话题

关于Template:Navbox_with_collapsible_groups的奇偶行问题,探讨

3
Cwek (留言贡献)

根据en的Navbox的测试,Navbox的list式(最普通的Navbox)、col式(Navbox with columns)的list的奇偶切换是可以跨子Navbox传播的(en:User:Cwek/test/Navbox/奇偶行式有子代)。但Navbox with collapsible groups的,我观察到的是,每个list的原始list格是仍有奇偶交替的,但如果配置group参数的话,则相当于嵌入成一个Navbox,title为group值,list对应外层的list值,只有一行,没有传入的奇偶交替“上下文”(如果前面跨子Navbox模式可视为一种上下文传递的话),即使这层list再嵌入子Navbox,也不会被Navbox with collapsible groups的奇偶“上下文”,Navbox with collapsible groups的list之间的奇偶“上下文”也不影响。你认为是否按照en的这个思路设计,还是允许Navbox with collapsible groups的list之间的子Navbox的奇偶“上下文”可以传递?


纯探讨,对于Navbox2的实现想法。

Dabao qian (留言贡献)

根据我的观察:

  • {{Navbox with columns}}的列式部分(|coln=)占用了|list1=参数,行式部分从|list2=开始传入,所以奇偶交替逻辑刚好相反,默认为even(偶)-odd(奇)交替。转型为{{NavboxV2}}之后,由于|list1=可以正常传入,所以奇偶交替不会被搞,为正常的odd-even交替。
  • 中文版{{Navbox with collapsible groups}}似乎没有en的bug,奇偶交替可以上下文传播(Template:X1的版本84378217)。只是由于没有传入|evenodd=参数,所以不能手动控制奇偶交替,只能按照默认的odd-even交替。转型为{{NavboxV2}}之后似乎有bug,参见此处的示例,List1和后面的List3.1.1都应该从odd开始交替,但是此处却成了even。
  • en的逻辑:每个子代Navbox被视为一个独立的个体,奇偶交替互不影响,开头不带group的list部分的奇偶交替也不会传递给首个子代模板,但是最后一个子代模板的奇偶交替会传递给后面不带group的list部分。进行了灰度测试,应该的<table>改为<div>的结果。
Dabao qian (留言贡献)

经测试后得出结论,en的设计应该是有意为之,Module:Navbox#L-298已经说明“假设列表文本是用于子代Navbox,则该list行不会自动转换”,中文版由于绑定了小工具的折叠标题所以原来的表达式不起作用了,RESTART_MARKER填充不上去,自然就能上下文传播。已经打了补丁,正等待回应中。

回复“关于Template:Navbox_with_collapsible_groups的奇偶行问题,探讨”