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

Module:Transclude: Difference between revisions

From Teriock
Content deleted Content added
No edit summary
No edit summary
 
(14 intermediate revisions by the same user not shown)
Line 1: Line 1:
local p = {}
local p = {}


-- Helper function to trim whitespace from a string
local function trim(s)
return s:match('^%s*(.-)%s*$')
end

-- Main function to transclude pages
function p.transclude(frame)
function p.transclude(frame)
-- Get the raw input
-- Get and preprocess the input
local input = frame.args[1] or ''
local raw_input = frame.args[1] or ''
local processed_input = 'yoggle' .. raw_input:gsub('E', 's') .. 'yoggle'
-- Debug output
-- Remove <DynamicPageList> tags if present
return string.format(
input = input:gsub('<DynamicPageList>.*</DynamicPageList>', function(dpl)
"Raw input:\n<pre>%s</pre>\n\nProcessed input:\n<pre>%s</pre>",
-- Extract just the results, removing the DPL configuration
return frame:preprocess(dpl)
raw_input,
processed_input
end)
)
local output = {}
-- Split by whitespace (both spaces and newlines)
for page in input:gmatch('%S+') do
page = trim(page)
if page ~= '' then
table.insert(output, string.format('{{%s}}', page))
end
end
-- Join all transclusions with newlines
return table.concat(output, '\n')
end

-- Function to handle direct template calls
function p.transcludeFromTemplate(frame)
local parent = frame:getParent()
return p.transclude(parent)
end
end



Latest revision as of 11:53, 14 January 2025

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

local p = {}

function p.transclude(frame)
    -- Get and preprocess the input
    local raw_input = frame.args[1] or ''
    local processed_input = 'yoggle' .. raw_input:gsub('E', 's') .. 'yoggle'
    
    -- Debug output
    return string.format(
        "Raw input:\n<pre>%s</pre>\n\nProcessed input:\n<pre>%s</pre>",
        raw_input,
        processed_input
    )
end

return p