2023年政策修订增补工作正在进行中,欢迎参与!
Template talk:Loop
跳转到导航
跳转到搜索
若干建议
@東東君
考虑到这个模板已经应用到不少地方了,这些建议又会对模板的用法又一些影响,所以先发讨论页讨论一下。
关于可否舍弃params参数
目前对于三对大括号包裹的参数(模板的接收参数)是使用params进行传递,但是这样不仅[来源请求],而且不支持{{{1|red}}}
的形式,因此可否如此处理:
- 对模块:loop进行一些处理(特殊:固定链接/2274042),使得调用Lua模块时可以直接处理模板的接收参数;
- 然后舍弃params参数,要求当需要使用“模板的接收参数”时直接调用Lua模块,也即将
{{loop|...}}
替换为{{#invoke:loop|main|...}}
。
例子可见特殊:固定链接/2274080,特殊:固定链接/2274084中对它进行了调用。
关于多层循环可否全部使用{{loop}}
目前多层循环是使用{{loop2}}、{{loop3}},最多支持3层循环嵌套且存在bug(特殊:固定链接/2274128)。
可否将其调整为全部使用{{loop}},见特殊:固定链接/2274084,然而依然有bug。
--Nzh21(讨论) 2018年12月31日 (一) 15:35 (CST)
同类型模块{{While}}的合并请求
近日在使用{{Loop}}时遇到了需要不断测试循环条件的情况,但{{Loop}}确实无法达到目的,因此模仿着写了{{While}}模块用以代替解析器函数{{#while:}}
及{{#dowhile:}}
。
除了对内层循环的处理功能函数pack_inner_loop
由于涉及大量字符串处理字多看得头大而没有修改以外,两个功能的核心代码均已在{{While}}模块中实现。
现在想探讨一下把这两个功能合并入{{Loop}}的可行性,以及我的一些建议:
- 类似功能模板存在一个就够了,不然难以记忆。
- 目前的{{Loop}}和{{While}}代码结构相近,且参数格式我也有意沿用了前者,合并工程量不大。
- 就算模板层面难以合并,Lua模块可以合并为一个,由多个模板调用,举个例子:
长话短说就是跪求大佬接手一下。
@Nzh21,東東君--サンムル(讨论) 2020年3月3日 (二) 18:39 (CST)
- 语法:
{{#invoke:While|[do]while|condition=<nowiki>【条件语句】</nowiki>|do=<nowiki>【循环体】</nowiki>}}
- 参数:
- 【条件语句】外侧必须包裹
nowiki
标签(内层循环不需要),允许使用模板的无名参数及在While
上下文外的全局变量。 - 【循环体】外侧必须包裹
nowiki
标签(内层循环不需要),允许使用模板的无名参数及全局变量。