Documentation for this module may be created at Module:CampaignNavbox/doc
local p = {}
function p.getCampaigns(frame)
local wikitext = frame.args[1] -- Get the wikitext passed to the module
local campaigns = {
PA = {},
MD = {},
Online = {}
}
-- Function to process each campaign row
local function processRow(row)
local campaign, location = row:match("|'''%[%[(.-)%]%]'''%s*|%s*.-|.-|.-|.-|.-|.-|(.-)|")
if campaign and location then
if location:find("PA") then
table.insert(campaigns.PA, campaign)
end
if location:find("MD") then
table.insert(campaigns.MD, campaign)
end
if location:find("Online") then
table.insert(campaigns.Online, campaign)
end
end
end
-- Split the wikitext into rows and process each
for row in wikitext:gmatch("|%-.-\n") do
processRow(row)
end
-- Build the navbox
local navbox = '{| class="wikitable"\n!Location\n!Campaigns\n'
for loc, camps in pairs(campaigns) do
navbox = navbox .. '|-\n|' .. loc .. '\n|' .. table.concat(camps, ', ') .. '\n'
end
navbox = navbox .. '|}'
return navbox
end
return p
