Module:Variable arguments: Difference between revisions

(Variable argument functions)
 
mNo edit summary
 
(13 intermediate revisions by the same user not shown)
Line 2: Line 2:
local p = {}
local p = {}


function p.modlink(frame)
function p.breadcrumb(frame)
     local args = mArguments.getArgs(frame, {
     local args = mArguments.getArgs(frame, {
    parentOnly = true
        parentOnly = true
     })
     })
local out_str = ""
    local result = ""
local i = 0
    local i = 0
 
for k, v in pairs(args) do
    local pname = ""
out_str = out_str .. "[[Module:" .. v .. "]]" .. ", "
   
i = i + 1
    for k, v in pairs(args) do
end
        pname = pname .. v
        result = result .. string.format("[[%s|%s]] {{pipe}} ", pname, v)
out_str = out_str:sub(1, -3)
        i = i + 1
        pname = pname .. "/"
if out_str == "" then
    end
out_str = "[[Module:" .. frame:preprocess("{{ROOTPAGENAME}}") .. "]]"
end
out_str = out_str
.. " – the "
.. string.gsub("module that implement", "()", {[((i > 1) and {7} or {22})[1]] = "s"})
.. " the functionality."
return out_str
end


function p.breadcrumb(frame)
    result = result:sub(1, -11)
local args = mArguments.getArgs(frame, {
   
    parentOnly = true
     if result == "" or result == nil then
     })
        result = "[[{{#titleparts: {{FULLPAGENAME}}|-1}}]]"
local out_str = ""
    end
local i = 0
   
    result = "<div id=\"contentSub\">\n"
for k, v in pairs(args) do
        .. "<div style=\"margin: 0.5em;\"></div>\n"
out_str = out_str .. "[[" .. v .. "]] &#124; "
        .. "<div class=\"nomobile\" style=\"margin: -0.8em;\"></div>\n"
i = i + 1
        .. "<div style=\"margin: 0em;\">\n"
end
        .. string.format("<span class=\"subpages\">&lt; %s</span>\n", result)
        .. "</div>\n</div>{{#if: {{ARTICLESPACE}}||[[Category:Article subpages]]}}"
if out_str == "" then
    return frame:preprocess(result)
out_str = frame:preprocess("[[{{#titleparts: {{FULLPAGENAME}}|-1}}]]")
end
out_str = "<div id=\"contentSub\">"
.. "<div style=\"margin: 0.5em;\"></div>"
.. "<div class=\"nomobile\" style=\"margin: -0.8em;\"></div>"
.. "<div style=\"margin: 0em;\"><span class=\"subpages\">&lt; " .. out_str
.. "</span></div></div>"
return out_str
end
end


return p
return p

Latest revision as of 22:23, 16 April 2025

This module is used to store functions for templates that take a variable number of arguments but do not use Module:Labelled list hatnote:


local mArguments = require("Module:Arguments")
local p = {}

function p.breadcrumb(frame)
    local args = mArguments.getArgs(frame, {
        parentOnly = true
    })
    local result = ""
    local i = 0

    local pname = ""
    
    for k, v in pairs(args) do
        pname = pname .. v
        result = result .. string.format("[[%s|%s]] {{pipe}} ", pname, v)
        i = i + 1
        pname = pname .. "/"
    end

    result = result:sub(1, -11)
    
    if result == "" or result == nil then
        result = "[[{{#titleparts: {{FULLPAGENAME}}|-1}}]]"
    end
    
    result = "<div id=\"contentSub\">\n"
        .. "<div style=\"margin: 0.5em;\"></div>\n"
        .. "<div class=\"nomobile\" style=\"margin: -0.8em;\"></div>\n"
        .. "<div style=\"margin: 0em;\">\n"
        .. string.format("<span class=\"subpages\">&lt; %s</span>\n", result)
        .. "</div>\n</div>{{#if: {{ARTICLESPACE}}||[[Category:Article subpages]]}}"
    return frame:preprocess(result)
end

return p