查看“模块:Loop”的源代码
因为以下原因,您没有权限编辑本页:
您可以查看与复制此页面的源代码。
local module = {}
local getArgs = require('Module:Arguments').getArgs
local nowiki_blocks = { 'do', 'condition' }
function pack_inner_loop(loop)
-- 给内层循环的do参数包裹<nowiki>标签
loop = mw.ustring.gsub(loop, '{{%s-[Ll]oop%s-|', '{{#invoke:loop|loop|')
loop = mw.ustring.gsub(loop, '{{%s-[Ww]hile%s-|', '{{#invoke:loop|while|')
loop = mw.ustring.gsub(loop, '{{%s-[Dd]o[Ww]hile%s-|', '{{#invoke:loop|dowhile|')
return mw.ustring.gsub(loop, '({{#invoke:loop.*)', function(a)
local i = 1
local stack = {}
local block_begin = -1
local block_end = -1
while (i < mw.ustring.len(a)) do
for _, block in ipairs(nowiki_blocks) do
if block_begin == -1 and mw.ustring.find(a, '^|%s-'..block..'%s-=', i) then
_, block_begin = mw.ustring.find(a, '^|%s-'..block..'%s-=', i)
block_begin = block_begin + 1
000
1:0
该页面使用的模板:
返回至模块:Loop。