Module:Tmpl: Difference between revisions
From Test Wiki
Content deleted Content added
mediawiki>Pppery m Protected "Module:Tmpl": Highly visible page or template ([Edit=Allow only administrators] (indefinite) [Move=Allow only administrators] (indefinite)) |
m 1 revision imported |
||
| (One intermediate revision by the same user not shown) | |||
| Line 1: | Line 1: | ||
-- This is a helper module for |
-- This is a helper module for Template:tmpl |
||
require('strict') |
|||
-- The trailing `[^0-9]?` ensures that `$10` doesn't potentially change |
|||
-- from being treated as `${1}0` to being treated as `${10}` |
|||
-- if the number of supported parameters is ever expanded: |
|||
local PATTERN = "%$([1-9])[^0-9]?" |
|||
local this = {} |
local this = {} |
||
function this.renderTmpl(frame) |
function this.renderTmpl(frame) |
||
local args = frame.args |
|||
local pargs = (frame:getParent() or {}).args |
|||
local result = pargs[0] or '' |
|||
for k, v in pairs(pargs) do |
|||
local result = {} |
|||
| ⚫ | |||
if (n >= 1 and n <= 9) then |
|||
local prevPos = 1 |
|||
result = mw.ustring.gsub( result, '$' .. n, mw.text.trim(v) ) |
|||
do |
|||
end |
|||
local startPos, _, k |
|||
| ⚫ | |||
while true do |
|||
| ⚫ | |||
startPos, _, k = string.find(input, PATTERN, prevPos) |
|||
if (not startPos) then break end |
|||
table.insert(result, string.sub(input, prevPos, startPos - 1)) |
|||
| ⚫ | |||
local r = pargs[n] |
|||
if (r) then |
|||
table.insert(result, r) |
|||
else |
|||
table.insert(result, '$' .. n) |
|||
| ⚫ | |||
prevPos = startPos + #k + 1 |
|||
end |
|||
end |
|||
table.insert(result, string.sub(input, prevPos)) |
|||
| ⚫ | |||
end |
end |
||