Module:RecursiveSelectiveList

From Ikwipedia
Revision as of 07:24, 22 December 2024 by EnWikiAdmin (talk | contribs)

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

local p = {}

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

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

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

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

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

return p