Module:Tmpl: Difference between revisions
Jump to navigation
Jump to search
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 Tags: Mobile edit Mobile web edit |
||
| 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 |
||
Revision as of 14:27, 30 October 2025
Documentation for this module may be created at Module:Tmpl/doc
-- This is a helper module for Template:tmpl
local this = {}
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 n = tonumber(k) or -1
if (n >= 1 and n <= 9) then
result = mw.ustring.gsub( result, '$' .. n, mw.text.trim(v) )
end
end
return result
end
return this