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:Transclude: Difference between revisions

From Teriock
No edit summary
No edit summary
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 and preprocess it first
     -- Get and preprocess the input
     local input = frame:preprocess(frame.args[1] or '')
     local raw_input = frame.args[1] or ''
     local output = {}
     local processed_input = frame:preprocess(raw_input)
      
      
     -- Split the input into lines
     -- Debug output
     for line in input:gmatch('[^\r\n]+') do
     return string.format(
        line = trim(line)
        "Raw input:\n<pre>%s</pre>\n\nProcessed input:\n<pre>%s</pre>",
        if line ~= '' then
        raw_input,
            -- Only add the transclusion brackets if they're not already present
         processed_input
            if not line:match('^{{.*}}$') then
     )
                line = string.format('{{%s}}', line)
            end
            table.insert(output, line)
         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


return p
return p

Revision as of 11:47, 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 = frame:preprocess(raw_input)
    
    -- 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