2023年政策修订增补工作正在进行中,欢迎参与!
模板討論: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
標籤(內層循環不需要),允許使用模板的無名參數及全局變量。