Module:VolDiff
Jump to navigation
Jump to search
Documentation for this module may be created at Module:VolDiff/doc
local p = {}
-- Helper function to parse chapter number from the chapter link
local function getChapterNumber(chapterLink)
local match = mw.ustring.match(chapterLink, "Chapter (%d+)")
return match
end
-- Main function to process the DiffBox template
function p.main(frame)
local args = frame:getParent().args
local currentTitle = mw.title.getCurrentTitle().text
local result = ""
-- Extract the main parameters for DiffBox
local part = args.Part or ""
local title = args.Title or ""
-- Start the DiffBox template
result = result .. string.format('{{DiffBox|Part=%s|Title=%s', part, title)
-- Add optional labels if they are present
if args.Label1 then
result = result .. string.format('|Label1=%s', args.Label1)
end
if args.Label2 then
result = result .. string.format('|Label2=%s', args.Label2)
end
result = result .. '|\n'
-- Iterate through each Diff entry
for i = 1, 50 do
local part = args["Part" .. i]
local chapter = args["Chapter" .. i]
local page = args["Page" .. i]
local image1 = args["Image1" .. i]
local image2 = args["Image2" .. i]
local desc = args["Desc" .. i]
local diffLabel1 = args["Label1" .. i]
local diffLabel2 = args["Label2" .. i]
if part and chapter and page and image1 and image2 and desc then
local chapterNumber = getChapterNumber(chapter)
-- Check if the current page title matches the chapter number
if chapterNumber and mw.ustring.match(currentTitle, chapterNumber) then
result = result .. string.format('{{Diff|Part=%s|Chapter=%s|Page=%s|Image1=%s|Image2=%s|Desc=%s',
part, chapter, page, image1, image2, desc)
-- Add optional labels if they are present
if diffLabel1 then
result = result .. string.format('|Label1=%s', diffLabel1)
end
if diffLabel2 then
result = result .. string.format('|Label2=%s', diffLabel2)
end
result = result .. '}}\n'
end
end
end
-- End the DiffBox template
result = result .. '}}'
return mw.text.preprocess(result)
end
return p