Module:Test template call: Difference between revisions

From Livermore History Collaborative
Jump to navigation Jump to search
Created page with "local p = {} function p.callTemplate(frame) local templateName = frame.args[1] or "ExampleTemplate" -- Get template name from first argument local templateArgs = {} -- Pass all arguments from the module invocation to the template --callTemplate|Template:MyTemplate|arg1|arg2=value}} for k, v in pairs(frame.args) do table.insert(templateArgs, "<li>" .. k .. ": " .. v..."
 
No edit summary
 
Line 2: Line 2:


function p.callTemplate(frame)
function p.callTemplate(frame)
     local templateName = frame.args[1] or "ExampleTemplate" -- Get template name from first argument
     local templateName = frame.args[1] -- Get template name from first argument
     local templateArgs = {}
     local templateArgs = {}


Line 8: Line 8:
     --[[ The module invocation is: #invoke:YourModuleName|callTemplate|Template:MyTemplate|arg1|arg2=value}}  ]]
     --[[ The module invocation is: #invoke:YourModuleName|callTemplate|Template:MyTemplate|arg1|arg2=value}}  ]]


     for k, v in pairs(frame.args) do      
     for k, v in pairs(frame.args) do
 
         if type(k) == "number" and k > 1 then -- Exclude the template name argument
          
             table.insert(templateArgs, v)
             table.insert(templateArgs, "<li>" .. k .. ": " .. v .. "</li>")
        elseif type(k) == "string" then
     
            templateArgs[k] = v
     
        end
     end
     end


     return "<ul>" .. templateArgs[1] .. templateArgs[2] .. templateArgs[3] .. "</ul>"
     return frame:expandTemplate{ title = templateName, args = templateArgs }
 
    --return frame:expandTemplate{ title = templateName, args = templateArgs }
end
end


return p
return p

Latest revision as of 23:11, 2 December 2025

Documentation for this module may be created at Module:Test template call/doc

local p = {}

function p.callTemplate(frame)
    local templateName = frame.args[1]  -- Get template name from first argument
    local templateArgs = {}

    -- Pass all arguments from the module invocation to the template
    --[[ The module invocation is: #invoke:YourModuleName|callTemplate|Template:MyTemplate|arg1|arg2=value}}  ]]

    for k, v in pairs(frame.args) do
        if type(k) == "number" and k > 1 then -- Exclude the template name argument
            table.insert(templateArgs, v)
        elseif type(k) == "string" then
            templateArgs[k] = v
        end
    end

    return frame:expandTemplate{ title = templateName, args = templateArgs }
end

return p