Module:RecursiveSelectiveList
Documentation for this module may be created at Module:RecursiveSelectiveList/doc
local p = {}
function p.main(frame)
local args = frame:getParent().args
local categoryName = args['categoryName']
if not categoryName then
return "Error: Please provide a category name."
end
-- Use mw.site's API wrapper to fetch category members
local members = {}
local limit = 500 -- Fetch up to 500 results at a time
-- Fetch members iteratively
for page in mw.site.categoryMembers('Category:' .. categoryName, 'all', limit) do
table.insert(members, page.text)
end
-- Check if any members are found
if #members == 0 then
return "No pages found in the category."
end
-- Create output list
local output = {}
for _, member in ipairs(members) do
table.insert(output, "* [[" .. member .. "]]")
end
return table.concat(output, "\n")
end
return p