Module:WorldOrder
From Bahaipedia
						
						Note: If you make changes to this module please also update Module:WorldOrder on bahai.media.
local module = {}
-- Combined data structure
local combined_map = {
    ["0101"] = {
        pdfOffset = "2",
        publicationDate = "April, 1935",
        itemNumber = "Q14"
    },
    ["0102"] = {
        pdfOffset = "-38",
        publicationDate = "May, 1935",
        itemNumber = "Q33"
    },
    ["0103"] = {
        pdfOffset = "-78",
        publicationDate = "June, 1935",
        itemNumber = "Q56"
    },
    ["0104"] = {
        pdfOffset = "-118",
        publicationDate = "July, 1935",
        itemNumber = "Q79"
    },
    ["0105"] = {
        pdfOffset = "-158",
        publicationDate = "August, 1935",
        itemNumber = "Q96"
    },
    ["0106"] = {
        pdfOffset = "-198",
        publicationDate = "September, 1935",
        itemNumber = "Q112" 
    },
    ["0107"] = {
        pdfOffset = "-238",
        publicationDate = "October, 1935",
        itemNumber = "" 
    },
    ["0108"] = {
        pdfOffset = "-278",
        publicationDate = "November, 1935",
        itemNumber = "" 
    },
    ["0109"] = {
        pdfOffset = "-318",
        publicationDate = "December, 1935",
        itemNumber = "" 
    },
    ["0110"] = {
        pdfOffset = "-358",
        publicationDate = "January, 1936",
        itemNumber = "" 
    },
    ["0111"] = {
        pdfOffset = "-398",
        publicationDate = "February, 1936",
        itemNumber = "" 
    },
    ["0112"] = {
        pdfOffset = "-442",
        publicationDate = "March, 1936",
        itemNumber = "" 
    },
    ["0201"] = {
        pdfOffset = "2",
        publicationDate = "April, 1936",
        itemNumber = "Q216"
    },
    ["0202"] = {
        pdfOffset = "-40",
        publicationDate = "May, 1936",
        itemNumber = "Q217"
    },
    ["0203"] = {
        pdfOffset = "-80",
        publicationDate = "June, 1936",
        itemNumber = "Q218"
    },
    ["0204"] = {
        pdfOffset = "-120",
        publicationDate = "July, 1936",
        itemNumber = "Q219"
    },
    ["0205"] = {
        pdfOffset = "-160",
        publicationDate = "August, 1936",
        itemNumber = "Q220"
    },
    ["0206"] = {
        pdfOffset = "-200",
        publicationDate = "September, 1936",
        itemNumber = "Q221"
    },
    ["0207"] = {
        pdfOffset = "-240",
        publicationDate = "October, 1936",
        itemNumber = "Q222"
    },
    ["0208"] = {
        pdfOffset = "-280",
        publicationDate = "November, 1936",
        itemNumber = "Q223"
    },
    ["0209"] = {
        pdfOffset = "-320",
        publicationDate = "December, 1936",
        itemNumber = "Q224"
    },
    ["0210"] = {
        pdfOffset = "-360",
        publicationDate = "January, 1937",
        itemNumber = "Q225"
    },
    ["0211"] = {
        pdfOffset = "-400",
        publicationDate = "February, 1937",
        itemNumber = "Q226"
    },
    ["0212"] = {
        pdfOffset = "-440",
        publicationDate = "March, 1937",
        itemNumber = "Q227"
    },
    ["0301"] = {
        pdfOffset = "2",
        publicationDate = "April, 1937",
        itemNumber = "Q229"
    },
    ["0302"] = {
        pdfOffset = "-38",
        publicationDate = "May, 1937",
        itemNumber = "Q230"
    },
    ["0303"] = {
        pdfOffset = "-78",
        publicationDate = "June, 1937",
        itemNumber = "Q231"
    },
    ["0304"] = {
        pdfOffset = "-118",
        publicationDate = "July, 1937",
        itemNumber = "Q232"
    },
    ["0305"] = {
        pdfOffset = "-158",
        publicationDate = "August, 1937",
        itemNumber = "Q233"
    },
    ["0306"] = {
        pdfOffset = "-198",
        publicationDate = "September, 1937",
        itemNumber = "Q234"
    },
    ["0307"] = {
        pdfOffset = "-238",
        publicationDate = "October, 1937",
        itemNumber = "Q235"
    },
    ["0308"] = {
        pdfOffset = "-278",
        publicationDate = "November, 1937",
        itemNumber = "Q236"
    },
    ["0309"] = {
        pdfOffset = "-318",
        publicationDate = "December, 1937",
        itemNumber = "Q237"
    },
    ["0310"] = {
        pdfOffset = "-358",
        publicationDate = "January, 1938",
        itemNumber = "Q238"
    },
    ["0311"] = {
        pdfOffset = "-398",
        publicationDate = "February, 1938",
        itemNumber = "Q239"
    },
    ["0312"] = {
        pdfOffset = "-438",
        publicationDate = "March, 1938",
        itemNumber = "Q240"
    },
    ["0401"] = {
        pdfOffset = "2",
        publicationDate = "April, 1938",
        itemNumber = "Q242"
    },
    ["0402"] = {
        pdfOffset = "-38",
        publicationDate = "May, 1938",
        itemNumber = "Q243"
    },
    ["0403"] = {
        pdfOffset = "-78",
        publicationDate = "June, 1938",
        itemNumber = "Q244"
    },
    ["0404"] = {
        pdfOffset = "-118",
        publicationDate = "July, 1938",
        itemNumber = "Q245"
    },
    ["0405"] = {
        pdfOffset = "-158",
        publicationDate = "August, 1938",
        itemNumber = "Q246"
    },
    ["0406"] = {
        pdfOffset = "-200",
        publicationDate = "September, 1938",
        itemNumber = "Q247"
    },
    ["0407"] = {
        pdfOffset = "-240",
        publicationDate = "October, 1938",
        itemNumber = "Q248"
    },
    ["0408"] = {
        pdfOffset = "-282",
        publicationDate = "November, 1938",
        itemNumber = "Q249"
    },
    ["0409"] = {
        pdfOffset = "-322",
        publicationDate = "December, 1938",
        itemNumber = "Q250"
    },
    ["0410"] = {
        pdfOffset = "-362",
        publicationDate = "January, 1939",
        itemNumber = "Q251"
    },
    ["0411"] = {
        pdfOffset = "-402",
        publicationDate = "February, 1939",
        itemNumber = "Q252"
    },
    ["0412"] = {
        pdfOffset = "-442",
        publicationDate = "March, 1939",
        itemNumber = "Q253"
    },
    ["0501"] = {
        pdfOffset = "2",
        publicationDate = "April, 1939",
        itemNumber = "Q255"
    },
    ["0502"] = {
        pdfOffset = "-38",
        publicationDate = "May, 1939",
        itemNumber = "Q256"
    },
    ["0503"] = {
        pdfOffset = "-78",
        publicationDate = "June, 1939",
        itemNumber = "Q257"
    },
    ["0504"] = {
        pdfOffset = "-118",
        publicationDate = "July, 1939",
        itemNumber = "Q258"
    },
    ["0505"] = {
        pdfOffset = "-158",
        publicationDate = "August, 1939",
        itemNumber = "Q259"
    },
    ["0506"] = {
        pdfOffset = "-198",
        publicationDate = "September, 1939",
        itemNumber = "Q260"
    },
    ["0507"] = {
        pdfOffset = "-238",
        publicationDate = "October, 1939",
        itemNumber = "Q261"
    },
    ["0508"] = {
        pdfOffset = "-278",
        publicationDate = "November, 1939",
        itemNumber = "Q262"
    },
    ["0509"] = {
        pdfOffset = "-318",
        publicationDate = "December, 1939",
        itemNumber = "Q263"
    },
    ["0510"] = {
        pdfOffset = "-358",
        publicationDate = "January, 1940",
        itemNumber = "Q264"
    },
    ["0511"] = {
        pdfOffset = "-398",
        publicationDate = "February, 1940",
        itemNumber = "Q265"
    },
    ["0512"] = {
        pdfOffset = "-438",
        publicationDate = "March, 1940",
        itemNumber = "Q266"
    },
    ["0601"] = {
        pdfOffset = "0",
        publicationDate = "April, 1940",
        itemNumber = "Q268"
    },
    ["0602"] = {
        pdfOffset = "-34",
        publicationDate = "May, 1940",
        itemNumber = "Q269"
    },
    ["0603"] = {
        pdfOffset = "-76",
        publicationDate = "June, 1940",
        itemNumber = "Q270"
    },
    ["0604"] = {
        pdfOffset = "-112",
        publicationDate = "July, 1940",
        itemNumber = "Q271"
    },
    ["0605"] = {
        pdfOffset = "-152",
        publicationDate = "August, 1940",
        itemNumber = "Q272"
    },
    ["0606"] = {
        pdfOffset = "-192",
        publicationDate = "September, 1940",
        itemNumber = "Q273"
    },
    ["0607"] = {
        pdfOffset = "-228",
        publicationDate = "October, 1940",
        itemNumber = "Q274"
    },
    ["0608"] = {
        pdfOffset = "-268",
        publicationDate = "November, 1940",
        itemNumber = "Q275"
    },
    ["0609"] = {
        pdfOffset = "-304",
        publicationDate = "December, 1940",
        itemNumber = "Q276"
    },
    ["0610"] = {
        pdfOffset = "-340",
        publicationDate = "January, 1941",
        itemNumber = "Q277"
    },
    ["0611"] = {
        pdfOffset = "-376",
        publicationDate = "February, 1941",
        itemNumber = "Q278"
    },
    ["0612"] = {
        pdfOffset = "-412",
        publicationDate = "March, 1941",
        itemNumber = "Q279"
    },
    ["0701"] = {
        pdfOffset = "2",
        publicationDate = "April, 1941",
        itemNumber = "Q281"
    },
    ["0702"] = {
        pdfOffset = "-38",
        publicationDate = "May, 1941",
        itemNumber = "Q282"
    },
    ["0703"] = {
        pdfOffset = "-82",
        publicationDate = "June, 1941",
        itemNumber = "Q283"
    },
    ["0704"] = {
        pdfOffset = "-119",
        publicationDate = "July, 1941",
        itemNumber = "Q284"
    },
    ["0705"] = {
        pdfOffset = "-154",
        publicationDate = "August, 1941",
        itemNumber = "Q285"
    },
    ["0706"] = {
        pdfOffset = "-186",
        publicationDate = "September, 1941",
        itemNumber = "Q286"
    },
    ["0707"] = {
        pdfOffset = "-222",
        publicationDate = "October, 1941",
        itemNumber = "Q287"
    },
    ["0708"] = {
        pdfOffset = "-258",
        publicationDate = "November, 1941",
        itemNumber = "Q288"
    },
    ["0709"] = {
        pdfOffset = "-294",
        publicationDate = "December, 1941",
        itemNumber = "Q289"
    },
    ["0710"] = {
        pdfOffset = "-330",
        publicationDate = "January, 1942",
        itemNumber = "Q290"
    },
    ["0711"] = {
        pdfOffset = "-366",
        publicationDate = "February, 1942",
        itemNumber = "Q291"
    },
    ["0712"] = {
        pdfOffset = "-402",
        publicationDate = "March, 1942",
        itemNumber = "Q292"
    },
    ["0801"] = {
        pdfOffset = "2",
        publicationDate = "April, 1942",
        itemNumber = "Q294"
    },
    ["0802"] = {
        pdfOffset = "-34",
        publicationDate = "May, 1942",
        itemNumber = "Q295"
    },
    ["0803"] = {
        pdfOffset = "-70",
        publicationDate = "June, 1942",
        itemNumber = "Q296"
    },
    ["0804"] = {
        pdfOffset = "-106",
        publicationDate = "July, 1942",
        itemNumber = "Q297"
    },
    ["0805"] = {
        pdfOffset = "-142",
        publicationDate = "August, 1942",
        itemNumber = "Q298"
    },
    ["0806"] = {
        pdfOffset = "-178",
        publicationDate = "September, 1942",
        itemNumber = "Q299"
    },
    ["0807"] = {
        pdfOffset = "-214",
        publicationDate = "October, 1942",
        itemNumber = "Q300"
    },
    ["0808"] = {
        pdfOffset = "-250",
        publicationDate = "November, 1942",
        itemNumber = "Q301"
    },
    ["0809"] = {
        pdfOffset = "-286",
        publicationDate = "December, 1942",
        itemNumber = "Q302"
    },
    ["0810"] = {
        pdfOffset = "-322",
        publicationDate = "January, 1943",
        itemNumber = "Q303"
    },
    ["0811"] = {
        pdfOffset = "-358",
        publicationDate = "February, 1943",
        itemNumber = "Q304"
    },
    ["0812"] = {
        pdfOffset = "-394",
        publicationDate = "March, 1943",
        itemNumber = "Q305"
    },
    ["0901"] = {
        pdfOffset = "2",
        publicationDate = "April, 1943",
        itemNumber = "Q307"
    },
    ["0902"] = {
        pdfOffset = "-34",
        publicationDate = "May, 1943",
        itemNumber = "Q308"
    },
    ["0903"] = {
        pdfOffset = "-70",
        publicationDate = "June, 1943",
        itemNumber = "Q309"
    },
    ["0904"] = {
        pdfOffset = "-106",
        publicationDate = "July, 1943",
        itemNumber = "Q310"
    },
    ["0905"] = {
        pdfOffset = "-142",
        publicationDate = "August, 1943",
        itemNumber = "Q311"
    },
    ["0906"] = {
        pdfOffset = "-178",
        publicationDate = "September, 1943",
        itemNumber = "Q312"
    },
    ["0907"] = {
        pdfOffset = "-214",
        publicationDate = "October, 1943",
        itemNumber = "Q313"
    },
    ["0908"] = {
        pdfOffset = "-250",
        publicationDate = "November, 1943",
        itemNumber = "Q314"
    },
    ["0909"] = {
        pdfOffset = "-286",
        publicationDate = "December, 1943",
        itemNumber = "Q315"
    },
    ["0910"] = {
        pdfOffset = "-324",
        publicationDate = "January, 1944",
        itemNumber = "Q316"
    },
    ["0911"] = {
        pdfOffset = "-360",
        publicationDate = "February, 1944",
        itemNumber = "Q317"
    },
    ["0912"] = {
        pdfOffset = "-396",
        publicationDate = "March, 1944",
        itemNumber = "Q318"
    },
    ["1001"] = {
        pdfOffset = "2",
        publicationDate = "April, 1944",
        itemNumber = "Q320"
    },
    ["1002"] = {
        pdfOffset = "-30",
        publicationDate = "May, 1944",
        itemNumber = "Q321"
    },
    ["1003"] = {
        pdfOffset = "-70",
        publicationDate = "June, 1944",
        itemNumber = "Q322"
    },
    ["1004"] = {
        pdfOffset = "-102",
        publicationDate = "July, 1944",
        itemNumber = "Q323"
    },
    ["1005"] = {
        pdfOffset = "-134",
        publicationDate = "August, 1944",
        itemNumber = "Q324"
    },
    ["1006"] = {
        pdfOffset = "-166",
        publicationDate = "September, 1944",
        itemNumber = "Q325"
    },
    ["1007"] = {
        pdfOffset = "-198",
        publicationDate = "October, 1944",
        itemNumber = "Q326"
    },
    ["1008"] = {
        pdfOffset = "-230",
        publicationDate = "November, 1944",
        itemNumber = "Q327"
    },
    ["1009"] = {
        pdfOffset = "-262",
        publicationDate = "December, 1944",
        itemNumber = "Q328"
    },
    ["1010"] = {
        pdfOffset = "-396",
        publicationDate = "January, 1945",
        itemNumber = "Q329"
    },
    ["1011"] = {
        pdfOffset = "-328",
        publicationDate = "February, 1945",
        itemNumber = "Q330"
    },
    ["1012"] = {
        pdfOffset = "-358",
        publicationDate = "March, 1945",
        itemNumber = "Q331"
    },
    ["1101"] = {
        pdfOffset = "2",
        publicationDate = "April, 1945",
        itemNumber = "Q333"
    },
    ["1102"] = {
        pdfOffset = "-30",
        publicationDate = "May, 1945",
        itemNumber = "Q334"
    },
    ["1103"] = {
        pdfOffset = "-62",
        publicationDate = "June, 1945",
        itemNumber = "Q335"
    },
    ["1104"] = {
        pdfOffset = "-94",
        publicationDate = "July, 1945",
        itemNumber = "Q336"
    },
    ["1105"] = {
        pdfOffset = "-126",
        publicationDate = "August, 1945",
        itemNumber = "Q337"
    },
    ["1106"] = {
        pdfOffset = "-158",
        publicationDate = "September, 1945",
        itemNumber = "Q338"
    },
    ["1107"] = {
        pdfOffset = "-190",
        publicationDate = "October, 1945",
        itemNumber = "Q339"
    },
    ["1108"] = {
        pdfOffset = "-222",
        publicationDate = "November, 1945",
        itemNumber = "Q340"
    },
    ["1109"] = {
        pdfOffset = "-254",
        publicationDate = "December, 1945",
        itemNumber = "Q341"
    },
    ["1110"] = {
        pdfOffset = "-286",
        publicationDate = "January, 1946",
        itemNumber = "Q342"
    },
    ["1111"] = {
        pdfOffset = "-318",
        publicationDate = "February, 1946",
        itemNumber = "Q343"
    },
    ["1112"] = {
        pdfOffset = "-350",
        publicationDate = "March, 1946",
        itemNumber = "Q344"
    },
    ["1201"] = {
        pdfOffset = "2",
        publicationDate = "April, 1946",
        itemNumber = "Q346"
    },
    ["1202"] = {
        pdfOffset = "-30",
        publicationDate = "May, 1946",
        itemNumber = "Q347"
    },
    ["1203"] = {
        pdfOffset = "-62",
        publicationDate = "June, 1946",
        itemNumber = "Q348"
    },
    ["1204"] = {
        pdfOffset = "-94",
        publicationDate = "July, 1946",
        itemNumber = "Q349"
    },
    ["1205"] = {
        pdfOffset = "-126",
        publicationDate = "August, 1946",
        itemNumber = "Q350"
    },
    ["1206"] = {
        pdfOffset = "-158",
        publicationDate = "September, 1946",
        itemNumber = "Q351"
    },
    ["1207"] = {
        pdfOffset = "-190",
        publicationDate = "October, 1946",
        itemNumber = "Q352"
    },
    ["1208"] = {
        pdfOffset = "-222",
        publicationDate = "November, 1946",
        itemNumber = "Q353"
    },
    ["1209"] = {
        pdfOffset = "-254",
        publicationDate = "December, 1946",
        itemNumber = "Q354"
    },
    ["1210"] = {
        pdfOffset = "-286",
        publicationDate = "January, 1947",
        itemNumber = "Q355"
    },
    ["1211"] = {
        pdfOffset = "-318",
        publicationDate = "February, 1947",
        itemNumber = "Q356"
    },
    ["1212"] = {
        pdfOffset = "-350",
        publicationDate = "March, 1947",
        itemNumber = "Q357"
    },
    ["1301"] = {
        pdfOffset = "2",
        publicationDate = "April, 1947",
        itemNumber = "Q359"
    },
    ["1302"] = {
        pdfOffset = "-34",
        publicationDate = "May, 1947",
        itemNumber = "Q360"
    },
    ["1303"] = {
        pdfOffset = "-70",
        publicationDate = "June, 1947",
        itemNumber = "Q361"
    },
    ["1304"] = {
        pdfOffset = "-106",
        publicationDate = "July, 1947",
        itemNumber = "Q362"
    },
    ["1305"] = {
        pdfOffset = "-142",
        publicationDate = "August, 1947",
        itemNumber = "Q363"
    },
    ["1306"] = {
        pdfOffset = "-178",
        publicationDate = "September, 1947",
        itemNumber = "Q364"
    },
    ["1307"] = {
        pdfOffset = "-214",
        publicationDate = "October, 1947",
        itemNumber = "Q365"
    },
    ["1308"] = {
        pdfOffset = "-250",
        publicationDate = "November, 1947",
        itemNumber = "Q366"
    },
    ["1309"] = {
        pdfOffset = "-250",
        publicationDate = "December, 1947",
        itemNumber = "Q367"
    },
    ["1310"] = {
        pdfOffset = "-312",
        publicationDate = "January, 1948",
        itemNumber = "Q368"
    },
    ["1311"] = {
        pdfOffset = "-358",
        publicationDate = "February, 1948",
        itemNumber = "Q369"
    },
    ["1312"] = {
        pdfOffset = "-394",
        publicationDate = "March, 1948",
        itemNumber = "Q370"
    },
    ["1401"] = {
        pdfOffset = "2",
        publicationDate = "April, 1948",
        itemNumber = "Q372"
    },
    ["1402"] = {
        pdfOffset = "-34",
        publicationDate = "May, 1948",
        itemNumber = "Q373"
    },
    ["1403"] = {
        pdfOffset = "-70",
        publicationDate = "June, 1948",
        itemNumber = "Q374"
    },
    ["1404"] = {
        pdfOffset = "-106",
        publicationDate = "July, 1948",
        itemNumber = "Q375"
    },
    ["1405"] = {
        pdfOffset = "-142",
        publicationDate = "August, 1948",
        itemNumber = "Q376"
    },
    ["1406"] = {
        pdfOffset = "-178",
        publicationDate = "September, 1948",
        itemNumber = "Q377"
    },
    ["1407"] = {
        pdfOffset = "-214",
        publicationDate = "October, 1948",
        itemNumber = "Q378"
    },
    ["1408"] = {
        pdfOffset = "-250",
        publicationDate = "November, 1948",
        itemNumber = "Q379"
    },
    ["1409"] = {
        pdfOffset = "-286",
        publicationDate = "December, 1948",
        itemNumber = "Q380"
    },
    ["1410"] = {
        pdfOffset = "-322",
        publicationDate = "January, 1949",
        itemNumber = "Q381"
    },
    ["1411"] = {
        pdfOffset = "-358",
        publicationDate = "February, 1949",
        itemNumber = "Q382"
    },
    ["1412"] = {
        pdfOffset = "-394",
        publicationDate = "March, 1949",
        itemNumber = "Q383"
    }
}
-- Function to generate padded keys (No change needed)
function getPaddedKey(vol, iss)
    local volPadded = string.format("%02d", vol)
    local issPadded = string.format("%02d", iss)
    return volPadded .. issPadded
end
-- Accept the input as the volume/issue number, return date published
function module.publicationDate(frame)
    local volNumber = tonumber(frame.args[1])
    local issNumber = tonumber(frame.args[2])
    local key = getPaddedKey(volNumber, issNumber)
    if combined_map[key] then
        return combined_map[key].publicationDate
    else
        return nil -- or some default value or error message
    end
end
-- Accept the input as volume number, return pdf page number offset
function module.pdfOffset(frame)
    local volumeNumber = tonumber(frame.args[1])
    local issueNumber = tonumber(frame.args[2])
    local key = getPaddedKey(volumeNumber, issueNumber)
    if combined_map[key] then
        return combined_map[key].pdfOffset
    else
        return nil -- or some default value or error message
    end
end
-- BEGIN SECTION WHICH RETURNS AN ARTICLE OR AUTHOR BY VOL/ISSUE/PAGE NUMBER --
-- Usage: [[Template:Citewo]] 
-- Internal function to fetch article IDs from an issue item
function module.fetchArticleIDs(issueItemID)
    local issueItem = mw.wikibase.getEntity(issueItemID)
    local articleIDs = {}
    if not issueItem or not issueItem.claims then
        return articleIDs
    end
    local articlesPropertyID = 'P4'
    local articles = issueItem.claims[articlesPropertyID]
    if not articles then
        return articleIDs
    end
    for _, articleSnak in ipairs(articles) do
        if articleSnak.mainsnak and articleSnak.mainsnak.datavalue then
            local articleID = articleSnak.mainsnak.datavalue.value.id
            table.insert(articleIDs, articleID)
        end
    end
    return articleIDs
end
-- Internal function to parse a page range string
function module.parsePageRange(pageRange)
    local startPage, endPage = pageRange:match("(%d+)-?(%d*)")
    startPage = tonumber(startPage)
    endPage = (endPage ~= "" and tonumber(endPage)) or startPage
    return startPage, endPage
end
-- Internal function to fetch article page ranges from a list of article IDs
function module.fetchArticlePageRanges(articleIDs)
    local articlePageRanges = {}
    for _, articleID in ipairs(articleIDs) do
        local articleItem = mw.wikibase.getEntity(articleID)
        
        if articleItem and articleItem.claims then
            local pagesPropertyID = 'P6'
            local pagesClaims = articleItem.claims[pagesPropertyID]
            if pagesClaims then
                for _, pagesSnak in ipairs(pagesClaims) do
                    if pagesSnak.mainsnak and pagesSnak.mainsnak.datavalue then
                        local pageRange = pagesSnak.mainsnak.datavalue.value
                        local startPage, endPage = module.parsePageRange(pageRange)
                        table.insert(articlePageRanges, {id = articleID, startPage = startPage, endPage = endPage})
                    end
                end
            end
        end
    end
    return articlePageRanges
end
-- Function to find an article by page number
function module.findArticleByPageNumber(articlePageRanges, queriedPage)
    local primaryMatch = nil
    local secondaryMatch = nil
    -- Check for Article Start
    for _, article in ipairs(articlePageRanges) do
        if article.startPage == queriedPage then
            primaryMatch = article.id
            break
        elseif queriedPage >= article.startPage and queriedPage <= article.endPage then
            secondaryMatch = article.id
        end
    end
    -- Return primary match or secondary match
    return primaryMatch or secondaryMatch
end
-- Internal function to get the article ID based on volume, issue, and page
function module.getArticleIDByPage(vol, iss, page)
    local mapKey = string.format("%02d%02d", tonumber(vol), tonumber(iss))
    local issueItemID = combined_map[mapKey] and combined_map[mapKey].itemNumber
    if not issueItemID then
        return nil, "Issue item ID not found for the given volume and issue."
    end
    local articleIDs = module.fetchArticleIDs(issueItemID)
    local articlePageRanges = module.fetchArticlePageRanges(articleIDs)
    local articleID = module.findArticleByPageNumber(articlePageRanges, page)
    return articleID
end
-- Function to fetch the author of an article item
function module.fetchArticleAuthor(articleID)
    local articleItem = mw.wikibase.getEntity(articleID)
    if articleItem and articleItem.claims then
        local authorPropertyID = 'P10'  -- Replace with the actual property ID for "author"
        local authorClaims = articleItem.claims[authorPropertyID]
        -- Check for author
        if authorClaims then
            for _, authorSnak in ipairs(authorClaims) do
                if authorSnak.mainsnak and authorSnak.mainsnak.datavalue then
                    -- Assuming the author is stored as an item
                    local authorID = authorSnak.mainsnak.datavalue.value.id
                    local authorItem = mw.wikibase.getEntity(authorID)
                    if authorItem then
                        local authorName = authorItem.labels.en.value  -- Assuming the name is in English
                        return authorName
                    end
                end
            end
        end
        -- Check for editorial (Q19)
        local editorialPropertyID = 'P12'
        local editorialClaims = articleItem.claims[editorialPropertyID]
        if editorialClaims then
            for _, editorialSnak in ipairs(editorialClaims) do
                if editorialSnak.mainsnak and editorialSnak.mainsnak.datavalue then
                    local editorialID = editorialSnak.mainsnak.datavalue.value.id
                    if editorialID == "Q19" then  -- Assuming Q19 is the ID for "editorial"
                        return "Editorial"
                    end
                end
            end
        end
    end
    return 'Unknown Author'
end
-- External function to be invoked by templates to get article name by page number
function module.getArticleByPage(frame)
    local vol = frame.args.vol
    local iss = frame.args.iss
    local page = tonumber(frame.args.page)
    local articleID, errMsg = module.getArticleIDByPage(vol, iss, page)
    if not articleID then
        return errMsg or "No article found on page " .. tostring(page)
    end
    local articleItem = mw.wikibase.getEntity(articleID)
    local articleName = articleItem and articleItem.labels and articleItem.labels.en and articleItem.labels.en.value or 'Unknown Article Name'
    return articleName
end
-- External function to get article author by page number
function module.getAuthorByPage(frame)
    local vol = frame.args.vol
    local iss = frame.args.iss
    local page = tonumber(frame.args.page)
    local articleID, errMsg = module.getArticleIDByPage(vol, iss, page)
    if not articleID then
        return errMsg or "No article found on page " .. tostring(page)
    end
    return module.fetchArticleAuthor(articleID)
end
-- END SECTION WHICH RETURNS AN ARTICLE OR AUTHOR BY VOL/ISSUE/PAGE NUMBER --
--External function to check if itemNumber exists given vol/iss/page
function module.checkItemNumber(frame)
    local vol = frame.args.vol
    local iss = frame.args.iss
    local mapKey = string.format("%02d%02d", tonumber(vol), tonumber(iss))
    local item = combined_map[mapKey]
    if item and item.itemNumber ~= "" then
        return "true" -- itemNumber exists and is not empty
    else
        return "false" -- itemNumber does not exist or is empty
    end
end
-- External function to retrieve a list of article titles for a given volume and issue
function module.getArticleTitles(frame)
    local vol = frame.args.vol
    local iss = frame.args.iss
    local mapKey = string.format("%02d%02d", tonumber(vol), tonumber(iss))
    local issueItemID = combined_map[mapKey] and combined_map[mapKey].itemNumber
    if not issueItemID then
        return "Issue item ID not found for the given volume and issue."
    end
    local articleIDs = module.fetchArticleIDs(issueItemID)
    local articleTitles = {}
    for _, articleID in ipairs(articleIDs) do
        local articleItem = mw.wikibase.getEntity(articleID)
        local articleTitle = articleItem and articleItem.labels and articleItem.labels.en and articleItem.labels.en.value or 'Unknown Article Title'
        table.insert(articleTitles, articleTitle)
    end
    return table.concat(articleTitles, ", ")
end
return module