پودمان:Comma separated entries: Difference between revisions
Jump to navigation
Jump to search
admin>Admin صفحهای تازه حاوی «local p = {} local function _main( args ) local sep = mw.message.new( 'comma-separator' ):plain() return table.concat( args, sep ) end function p.main( frame ) local origArgs if frame == mw.getCurrentFrame() then -- We're being called via #invoke. If the invoking template passed any arguments, -- use them. Otherwise, use the arguments that were passed into the template. origArgs = frame:getPare...» ایجاد کرد |
m 2 revisions imported |
| (One intermediate revision by one other user not shown) | |
(No difference)
| |
Latest revision as of 12:17, November 30, 2025
local p = {}
local function _main( args )
local sep = mw.message.new( 'comma-separator' ):plain() return table.concat( args, sep )
end
function p.main( frame )
local origArgs
if frame == mw.getCurrentFrame() then
-- We're being called via #invoke. If the invoking template passed any arguments,
-- use them. Otherwise, use the arguments that were passed into the template.
origArgs = frame:getParent().args
for k, v in pairs( frame.args ) do
origArgs = frame.args
break
end
else
-- We're being called from another module or from the debug console, so assume
-- the arguments are passed in directly.
origArgs = frame
end
-- Use integer args only, and allow for explicit positional arguments
-- that are specified out of order, e.g. Template:Br separated entries.
-- After processing, the args can be accessed accurately from ipairs.
local args = {}
for k, v in pairs( origArgs ) do
if type( k ) == 'number'
and k >= 1
and math.floor( k ) == k
and mw.ustring.match( v, '%S' ) -- Remove blank or whitespace values.
then
table.insert( args, k )
end
end
table.sort( args )
for i,v in ipairs( args ) do
args[ i ] = origArgs[ v ]
-- Trim whitespace from all args.
if type( args[ i ] ) == 'string' then
args[ i ] = mw.text.trim( args[ i ] )
end
end
return _main( args )
end
return p