Module:IncreaseHeadings: Difference between revisions
From Teriock
More actions
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. | -- Function to adjust headings with recursion control | ||
-- Get the | function p.incrementHeadings(frame) | ||
local | -- 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 | |||
local | |||
-- Check if recursion limit is reached | |||
if | if depth > maxDepth then | ||
return " | return "Recursion limit reached." | ||
end | end | ||
-- | -- Increment heading levels | ||
content | local incrementedContent = content:gsub("(=%s*)(.-)(%s*=)", function(leadingEquals, text, trailingEquals) | ||
if | local headingLevel = #leadingEquals -- Count the number of `=` signs | ||
return | if headingLevel < 6 then | ||
local newEquals = string.rep("=", headingLevel + 1) | |||
return newEquals .. text .. newEquals | |||
else | else | ||
return | return leadingEquals .. text .. trailingEquals | ||
end | end | ||
end) | end) | ||
return | -- 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