Jump to content
Toggle menu
Toggle preferences menu
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.

Module:IncreaseHeadings: Difference between revisions

From Teriock
No edit summary
Tag: Reverted
No edit summary
 
(3 intermediate revisions by the same user not shown)
Line 1: Line 1:
local p = {}
local p = {}


function p.increaseHeadings(frame)
-- Function to adjust headings with recursion control
     -- Get the page name from the argument
function p.incrementHeadings(frame)
     local pageName = frame.args[1]
     -- Get the content and recursion depth
    if not pageName or pageName == "" then
     local content = frame.args.content or "No content provided."
        return "Error: No page name provided."
     local depth = tonumber(frame.args.depth) or 1
    end
     local maxDepth = 3 -- Limit recursion depth to 3
 
    -- Fetch the raw content of the page
     local title = mw.title.new(pageName)
    if not title or not title.exists then
        return "Error: Page does not exist."
     end


     local content = title:getContent()
     -- Check if recursion limit is reached
     if not content then
     if depth > maxDepth then
         return "Error: Could not fetch page content."
         return "Recursion limit reached."
     end
     end


     -- Replace headings with custom wrapping or increase levels
     -- Increment heading levels
     content = mw.ustring.gsub(content, '^(=+)(.-)(=+)$', function(eq1, text, eq2)
     local incrementedContent = content:gsub("(=%s*)(.-)(%s*=)", function(leadingEquals, text, trailingEquals)
         if #eq1 == #eq2 then
        local headingLevel = #leadingEquals -- Count the number of `=` signs
             return '{{' .. text .. '}}'  -- Replace for testing
         if headingLevel < 6 then
            local newEquals = string.rep("=", headingLevel + 1)
             return newEquals .. text .. newEquals
         else
         else
             return eq1 .. text .. eq2
             return leadingEquals .. text .. trailingEquals
         end
         end
     end)
     end)


     return content
    -- Return adjusted content with an incremented depth
     return incrementedContent:gsub("{{H|", "{{H|depth=" .. (depth + 1) .. "|")
end
end


return p
return p

Latest revision as of 02:40, 26 December 2024

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

local p = {}

-- Function to adjust headings with recursion control
function p.incrementHeadings(frame)
    -- Get the content and recursion depth
    local content = frame.args.content or "No content provided."
    local depth = tonumber(frame.args.depth) or 1
    local maxDepth = 3 -- Limit recursion depth to 3

    -- Check if recursion limit is reached
    if depth > maxDepth then
        return "Recursion limit reached."
    end

    -- Increment heading levels
    local incrementedContent = content:gsub("(=%s*)(.-)(%s*=)", function(leadingEquals, text, trailingEquals)
        local headingLevel = #leadingEquals -- Count the number of `=` signs
        if headingLevel < 6 then
            local newEquals = string.rep("=", headingLevel + 1)
            return newEquals .. text .. newEquals
        else
            return leadingEquals .. text .. trailingEquals
        end
    end)

    -- Return adjusted content with an incremented depth
    return incrementedContent:gsub("{{H|", "{{H|depth=" .. (depth + 1) .. "|")
end

return p