2023年政策修订增补工作正在进行中,欢迎参与!
  • Moegirl.ICU:萌娘百科流亡社群 581077156(QQ),欢迎对萌娘百科运营感到失望的编辑者加入
  • Moegirl.ICU:账号认领正在试运行,有意者请参照账号认领流程

Template talk:Loop

萌娘百科,万物皆可萌的百科全书!转载请标注来源页面的网页链接,并声明引自萌娘百科。内容不可商用。
跳转到导航 跳转到搜索

若干建议

@東東君

考虑到这个模板已经应用到不少地方了,这些建议又会对模板的用法又一些影响,所以先发讨论页讨论一下。

关于可否舍弃params参数

目前对于三对大括号包裹的参数(模板的接收参数)是使用params进行传递,但是这样不仅学习成本较高[来源请求],而且不支持{{{1|red}}}的形式,因此可否如此处理:

  1. 模块:loop进行一些处理(特殊:固定链接/2274042),使得调用Lua模块时可以直接处理模板的接收参数;
  2. 然后舍弃params参数,要求当需要使用“模板的接收参数”时直接调用Lua模块,也即将{{loop|...}}替换为{{#invoke:loop|main|...}}

例子可见特殊:固定链接/2274080特殊:固定链接/2274084中对它进行了调用。

关于多层循环可否全部使用{{loop}}

目前多层循环是使用{{loop2}}、{{loop3}},最多支持3层循环嵌套且存在bug(特殊:固定链接/2274128)。

可否将其调整为全部使用{{loop}},见特殊:固定链接/2274084,然而依然有bug

--Nzh21讨论) 2018年12月31日 (一) 15:35 (CST)

(+)同意 看起来好像不错--東東君讨论) 2018年12月31日 (一) 19:24 (CST)

同类型模块{{While}}的合并请求

近日在使用{{Loop}}时遇到了需要不断测试循环条件的情况,但{{Loop}}确实无法达到目的,因此模仿着写了{{While}}模块用以代替解析器函数{{#while:}}{{#dowhile:}}

除了对内层循环的处理功能函数pack_inner_loop由于涉及大量字符串处理字多看得头大而没有修改以外,两个功能的核心代码均已在{{While}}模块中实现。

现在想探讨一下把这两个功能合并入{{Loop}}的可行性,以及我的一些建议:

  1. 类似功能模板存在一个就够了,不然难以记忆。
  2. 目前的{{Loop}}和{{While}}代码结构相近,且参数格式我也有意沿用了前者,合并工程量不大。
  3. 就算模板层面难以合并,Lua模块可以合并为一个,由多个模板调用,举个例子:
    • {{Loop}}通过#invoke:Loop|loop调用#loop功能。
    • {{While}}通过#invoke:Loop|while调用#while功能。
    • {{DoWhile}}通过#invoke:Loop|dowhile调用#dowhile功能。

长话短说就是跪求大佬接手一下

@Nzh21東東君--サンムル讨论) 2020年3月3日 (二) 18:39 (CST)


语法:
{{#invoke:While|[do]while|condition=<nowiki>【条件语句】</nowiki>|do=<nowiki>【循环体】</nowiki>}}
参数:
【条件语句】外侧必须包裹nowiki标签(内层循环不需要),允许使用模板的无名参数及在While上下文外的全局变量。
【循环体】外侧必须包裹nowiki标签(内层循环不需要),允许使用模板的无名参数及全局变量。

懒惰 + 无能为力,抱歉_(:з」∠)_ --東東君讨论) 2020年3月3日 (二) 20:51 (CST)

模块合并了,模板咕咕咕---Nzh21讨论) 2020年3月4日 (三) 10:28 (CST)