Module:RecursiveSelectiveList: Difference between revisions

From Ikwipedia
No edit summary
No edit summary
Line 2: Line 2:


function p.main(frame)
function p.main(frame)
     local categoryName = frame.args.categoryName or "Category:Books" -- Default category
     local categoryName = frame.args.categoryName or "Category:Example" -- Default category
     local limit = tonumber(frame.args.limit) or 10 -- Default limit
     local limit = tonumber(frame.args.limit) or 10 -- Default limit


    -- Get the category title
     local category = mw.title.new(categoryName)
     local category = mw.title.new(categoryName)
     if not category or not category.exists then
     if not category or not category.exists then
         return "Error: Category does not exist or is invalid."
         return "Error: The specified category does not exist."
     end
     end


    -- Retrieve the pages in the category
     local members = category:members()
     local pages = category:members()
     local result = {}
     local results = {}
     local count = 0
     local count = 0


     for page in pages do
     for page in members do
         table.insert(results, string.format("* [[%s]]", page.title))
         table.insert(result, "* [[" .. page.title .. "]]")
         count = count + 1
         count = count + 1
         if count >= limit then
         if count >= limit then
Line 24: Line 22:
     end
     end


    -- Return the results as a bulleted list
     return table.concat(result, "\n")
    if #results == 0 then
        return "No pages found in this category."
    end
     return table.concat(results, "\n")
end
end


return p
return p

Revision as of 07:25, 22 December 2024

Documentation for this module may be created at Module:RecursiveSelectiveList/doc

local p = {}

function p.main(frame)
    local categoryName = frame.args.categoryName or "Category:Example" -- Default category
    local limit = tonumber(frame.args.limit) or 10 -- Default limit

    local category = mw.title.new(categoryName)
    if not category or not category.exists then
        return "Error: The specified category does not exist."
    end

    local members = category:members()
    local result = {}
    local count = 0

    for page in members do
        table.insert(result, "* [[" .. page.title .. "]]")
        count = count + 1
        if count >= limit then
            break
        end
    end

    return table.concat(result, "\n")
end

return p