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
Content deleted Content added
No edit summary
No edit summary
 
Line 1: Line 1:
local p = {}
local p = {}


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


-- Check if recursion limit is reached
function p.incrementHeadings(content)
if depth > maxDepth then
-- Increment headings
return "Recursion limit reached."
end

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

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



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