模組討論:Loop
跳至導覽
跳至搜尋
編輯請求 - Nzh21 - 2025.07.03
由Nzh21提出的對模塊:Loop的編輯請求:
- 狀態: 待處理申請
增加以下內容:
應用如下patch(抱歉沒法發完整代碼,完整代碼會被waf攔截):
diff --git a/old.lua b/new.lua
index 5edce90..9e4d1bd 100644
--- a/old.lua
+++ b/new.lua
@@ -103,9 +103,10 @@ function _loop(args, frame)
local result = ''
if type(args[2]) == 'nil' and _min > _max and addend > 0 then addend = -1 end
for i=_min, _max, addend do
- frame:callParserFunction('#vardefine', name, i)
+ local wikitext = loop
+ wikitext = string.gsub(wikitext, '{{%s-#var:%s-'..name..'%s-}}', i)
-- mw.log('执行循环体('..name..'='..tostring(i)..') '..loop)
- result = result..frame:preprocess(loop)
+ result = result..frame:preprocess(wikitext)
end
-- mw.log('循环结果 '..result)
return result
@@ -217,10 +218,11 @@ function module.fornumargs(frame)
end
table.sort(keys)
for _, idx in ipairs(keys) do
- parent:callParserFunction('#vardefine', numname, idx)
- parent:callParserFunction('#vardefine', valname, parent.args[prefix .. idx])
+ local wikitext = loop
+ wikitext = string.gsub(wikitext, '{{%s-#var:%s-'..numname..'%s-}}', idx)
+ wikitext = string.gsub(wikitext, '{{%s-#var:%s-'..valname..'%s-}}', parent.args[prefix .. idx])
if cond == '' or parent:preprocess(cond) ~= '' then
- table.insert(output, parent:preprocess(text))
+ table.insert(output, parent:preprocess(wikitext))
end
end
return table.concat(output)
萌百終於要更新mw,因為var即將棄用,此模塊之前有依賴於var,因此替換掉原先使用的的vardefine。
這個編輯請求可以不必立即執行,28號更新完成後再替換即可。
如果能夠在7號之前替換掉所有對#invoke:loop,那麼也可以考慮直接廢棄掉本模塊。(沒有var這個模塊也很難做出一些複雜的操作了)——Nzh21(討論) 2025年7月4日 (五) 00:43 (CST)