More actions
Content deleted Content added
No edit summary Tag: Manual revert |
No edit summary |
||
(2 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
local p = {} |
local p = {} |
||
-- Function to adjust headings with recursion control |
|||
function p. |
function p.incrementHeadings(frame) |
||
-- Get the raw wikitext of the transcluded page |
|||
-- Get the content and recursion depth |
|||
local pageContent = frame:expandTemplate{ title = frame.args[1] } or '' |
|||
local content = frame.args.content or "No content provided." |
|||
⚫ | |||
local depth = tonumber(frame.args.depth) or 1 |
|||
-- Replace headings with custom wrapping or increase levels |
|||
local maxDepth = 3 -- Limit recursion depth to 3 |
|||
pageContent = mw.ustring.gsub(pageContent, '^(=+)(.-)(=+)$', function(eq1, text, eq2) |
|||
⚫ | |||
-- Check if recursion limit is reached |
|||
local newLevel = eq1 .. '=' |
|||
if depth > maxDepth then |
|||
⚫ | |||
return "Recursion limit reached." |
|||
⚫ | |||
-- Increment heading levels |
|||
local incrementedContent = content:gsub("(=%s*)(.-)(%s*=)", function(leadingEquals, text, trailingEquals) |
|||
local headingLevel = #leadingEquals -- Count the number of `=` signs |
|||
⚫ | |||
local newEquals = string.rep("=", headingLevel + 1) |
|||
⚫ | |||
else |
else |
||
return |
return leadingEquals .. text .. trailingEquals |
||
end |
end |
||
end) |
end) |
||
-- Return adjusted content with an incremented depth |
|||
return pageContent |
|||
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