Module:Related topics category: Difference between revisions

From AlternateWiki
Content added Content deleted
No edit summary
No edit summary
 
(One intermediate revision by the same user not shown)
Line 2: Line 2:


local parents = {
local parents = {
["Latin America"] = 0,
["Asia"] = {0},
["Brazil"] = "Latin America",
["Afghanistan"] = {"Asia"},
["Europe"] = 0,
["Armenia"] = {"Asia"},
["United Kingdom"] = "Europe",
["Azerbaijan"] = {"Asia", "Europe"},
["Bahrain"] = {"Asia"},
["Havering"] = "United Kingdom"
["Bangladesh"] = {"Asia"},
["Bhutan"] = {"Asia"},
["British Indian Ocean Territory"] = {"Asia"},
["Brunei"] = {"Asia"},
["Cambodia"] = {"Asia"},
["China"] = {"Asia"},
["Christmas Island"] = {"Asia"},
["Cocos Islands"] = {"Asia"},
["Georgia"] = {"Asia", "Europe"},
["Hong Kong"] = {"Asia"},
["India"] = {"Asia"},
["Indonesia"] = {"Asia"},
["Iran"] = {"Asia"},
["Iraq"] = {"Asia"},
["Israel"] = {"Asia"},
["Japan"] = {"Asia"},
["Jordan"] = {"Asia"},
["Kazakhstan"] = {"Asia", "Europe"},
["Kuwait"] = {"Asia"},
["Kyrgyzstan"] = {"Asia"},
["Laos"] = {"Asia"},
["Lebanon"] = {"Asia"},
["Macau"] = {"Asia"},
["Malaysia"] = {"Asia"},
["Maldives"] = {"Asia"},
["Mongolia"] = {"Asia"},
["Myanmar"] = {"Asia"},
["Nepal"] = {"Asia"},
["North Korea"] = {"Asia"},
["Oman"] = {"Asia"},
["Pakistan"] = {"Asia"},
["Palestine"] = {"Asia"},
["Philippines"] = {"Asia"},
["Qatar"] = {"Asia"},
["Saudi Arabia"] = {"Asia"},
["Singapore"] = {"Asia"},
["South Korea"] = {"Asia"},
["Sri Lanka"] = {"Asia"},
["Syria"] = {"Asia"},
["Taiwan"] = {"Asia"},
["Tajikistan"] = {"Asia"},
["Thailand"] = {"Asia"},
["Turkey"] = {"Asia", "Europe"},
["Turkmenistan"] = {"Asia"},
["United Arab Emirates"] = {"Asia"},
["Uzbekistan"] = {"Asia"},
["Vietnam"] = {"Asia"},
["Yemen"] = {"Asia"},
["Europe"] = {0},
["Albania"] = {"Europe"},
["Andorra"] = {"Europe"},
["Austria"] = {"Europe"},
["Belarus"] = {"Europe"},
["Belgium"] = {"Europe"},
["Bosnia and Herzegovina"] = {"Europe"},
["Bulgaria"] = {"Europe"},
["Croatia"] = {"Europe"},
["Cyprus"] = {"Europe"},
["Czechia"] = {"Europe"},
["Denmark"] = {"Europe"},
["Estonia"] = {"Europe"},
["Faroe Islands"] = {"Europe"},
["Finland"] = {"Europe"},
["France"] = {"Europe"},
["Germany"] = {"Europe"},
["Gibraltar"] = {"Europe"},
["Greece"] = {"Europe"},
["Guernsey"] = {"Europe"},
["Hungary"] = {"Europe"},
["Iceland"] = {"Europe"},
["Ireland"] = {"Europe"},
["Isle of Man"] = {"Europe"},
["Italy"] = {"Europe"},
["Jersey"] = {"Europe"},
["Kosovo"] = {"Europe"},
["Latvia"] = {"Europe"},
["Liechtenstein"] = {"Europe"},
["Lithuania"] = {"Europe"},
["Luxembourg"] = {"Europe"},
["Macedonia"] = {"Europe"},
["Malta"] = {"Europe"},
["Moldova"] = {"Europe"},
["Monaco"] = {"Europe"},
["Montenegro"] = {"Europe"},
["Netherlands"] = {"Europe"},
["Norway"] = {"Europe"},
["Poland"] = {"Europe"},
["Portugal"] = {"Europe"},
["Romania"] = {"Europe"},
["Russia"] = {"Europe", "Asia"},
["San Marino"] = {"Europe"},
["Serbia"] = {"Europe"},
["Slovakia"] = {"Europe"},
["Slovenia"] = {"Europe"},
["Spain"] = {"Europe"},
["Svalbard and Jan Mayen"] = {"Europe"},
["Sweden"] = {"Europe"},
["Switzerland"] = {"Europe"},
["Ukraine"] = {"Europe"},
["United Kingdom"] = {"Europe"},
["Havering"] = {"United Kingdom"},
["Vatican City"] = {"Europe"},
["Africa"] = {0},
["Algeria"] = {"Africa"},
["Angola"] = {"Africa"},
["Benin"] = {"Africa"},
["Botswana"] = {"Africa"},
["Burkina Faso"] = {"Africa"},
["Burundi"] = {"Africa"},
["Cameroon"] = {"Africa"},
["Cape Verde"] = {"Africa"},
["Central African Republic"] = {"Africa"},
["Chad"] = {"Africa"},
["Comoros"] = {"Africa"},
["Democratic Republic of the Congo"] = {"Africa"},
["Djibouti"] = {"Africa"},
["Egypt"] = {"Africa", "Asia"},
["Equatorial Guinea"] = {"Africa"},
["Eritrea"] = {"Africa"},
["Ethiopia"] = {"Africa"},
["Gabon"] = {"Africa"},
["Gambia"] = {"Africa"},
["Ghana"] = {"Africa"},
["Guinea"] = {"Africa"},
["Guinea-Bissau"] = {"Africa"},
["Ivory Coast"] = {"Africa"},
["Kenya"] = {"Africa"},
["Lesotho"] = {"Africa"},
["Liberia"] = {"Africa"},
["Libya"] = {"Africa"},
["Madagascar"] = {"Africa"},
["Malawi"] = {"Africa"},
["Mali"] = {"Africa"},
["Mauritania"] = {"Africa"},
["Mauritius"] = {"Africa"},
["Mayotte"] = {"Africa"},
["Morocco"] = {"Africa"},
["Mozambique"] = {"Africa"},
["Namibia"] = {"Africa"},
["Niger"] = {"Africa"},
["Nigeria"] = {"Africa"},
["Republic of the Congo"] = {"Africa"},
["Reunion"] = {"Africa"},
["Rwanda"] = {"Africa"},
["Saint Helena"] = {"Africa"},
["Sao Tome and Principe"] = {"Africa"},
["Senegal"] = {"Africa"},
["Seychelles"] = {"Africa"},
["Sierra Leone"] = {"Africa"},
["Somalia"] = {"Africa"},
["South Africa"] = {"Africa"},
["South Sudan"] = {"Africa"},
["Sudan"] = {"Africa"},
["Swaziland"] = {"Africa"},
["Tanzania"] = {"Africa"},
["Togo"] = {"Africa"},
["Tunisia"] = {"Africa"},
["Uganda"] = {"Africa"},
["Western Sahara"] = {"Africa"},
["Zambia"] = {"Africa"},
["Zimbabwe"] = {"Africa"},
["Oceania"] = {0},
["American Samoa"] = {"Oceania"},
["Australia"] = {"Oceania"},
["Cook Islands"] = {"Oceania"},
["East Timor"] = {"Oceania"},
["Fiji"] = {"Oceania"},
["French Polynesia"] = {"Oceania"},
["Guam"] = {"Oceania"},
["Kiribati"] = {"Oceania"},
["Marshall Islands"] = {"Oceania"},
["Micronesia"] = {"Oceania"},
["Nauru"] = {"Oceania"},
["New Caledonia"] = {"Oceania"},
["New Zealand"] = {"Oceania"},
["Niue"] = {"Oceania"},
["Northern Mariana Islands"] = {"Oceania"},
["Palau"] = {"Oceania"},
["Papua New Guinea"] = {"Oceania"},
["Pitcairn"] = {"Oceania"},
["Samoa"] = {"Oceania"},
["Solomon Islands"] = {"Oceania"},
["Tokelau"] = {"Oceania"},
["Tonga"] = {"Oceania"},
["Tuvalu"] = {"Oceania"},
["Vanuatu"] = {"Oceania"},
["Wallis and Futuna"] = {"Oceania"},
["North America"] = {0},
["Anguilla"] = {"North America"},
["Antigua and Barbuda"] = {"North America"},
["Aruba"] = {"North America"},
["Bahamas"] = {"North America"},
["Barbados"] = {"North America"},
["Belize"] = {"North America"},
["Bermuda"] = {"North America"},
["British Virgin Islands"] = {"North America"},
["Canada"] = {"North America"},
["Cayman Islands"] = {"North America"},
["Costa Rica"] = {"North America"},
["Cuba"] = {"North America"},
["Curacao"] = {"North America"},
["Dominica"] = {"North America"},
["Dominican Republic"] = {"North America"},
["El Salvador"] = {"North America"},
["Greenland"] = {"North America"},
["Grenada"] = {"North America"},
["Guatemala"] = {"North America"},
["Haiti"] = {"North America"},
["Honduras"] = {"North America"},
["Jamaica"] = {"North America"},
["Mexico"] = {"North America"},
["Montserrat"] = {"North America"},
["Netherlands Antilles"] = {"North America"},
["Nicaragua"] = {"North America"},
["Panama"] = {"North America"},
["Puerto Rico"] = {"North America"},
["Saint Barthelemy"] = {"North America"},
["Saint Kitts and Nevis"] = {"North America"},
["Saint Lucia"] = {"North America"},
["Saint Martin"] = {"North America"},
["Saint Pierre and Miquelon"] = {"North America"},
["Saint Vincent and the Grenadines"] = {"North America"},
["Sint Maarten"] = {"North America"},
["Trinidad and Tobago"] = {"North America"},
["Turks and Caicos Islands"] = {"North America"},
["U.S. Virgin Islands"] = {"North America"},
["United States"] = {"North America"},
["Antarctica"] = {0},
["Antarctica"] = {"Antarctica"},
["South America"] = {0},
["Argentina"] = {"South America"},
["Bolivia"] = {"South America"},
["Brazil"] = {"South America"},
["Chile"] = {"South America"},
["Colombia"] = {"South America"},
["Ecuador"] = {"South America"},
["Falkland Islands"] = {"South America"},
["Guyana"] = {"South America"},
["Paraguay"] = {"South America"},
["Peru"] = {"South America"},
["Suriname"] = {"South America"},
["Uruguay"] = {"South America"},
["Venezuela"] = {"South America"},

["0"] = {} -- An empty list for the root node
}
}


local function getCategoryTree(node)
local function getCategoryTree(node)
local tree = {}
local tree = {}
table.insert(tree, "[[Category:" .. node .. "-related topics]]")

while node and parents[node] do
local function processParents(node)
table.insert(tree, "Category:" .. node .. "-related topics")
node = parents[node]
if parents[node] then
for _, parent in ipairs(parents[node]) do
if parent ~= 0 then
table.insert(tree, "[[Category:" .. parent .. "-related topics]]")
processParents(parent)
end
end
end
end
end


processParents(node)
return table.concat(tree, "")
return table.concat(tree, "")
end
end

Latest revision as of 17:40, 20 June 2023

Documentation for this module may be created at Module:Related topics category/doc

local p = {}

local parents = {
	["Asia"] = {0},
		["Afghanistan"] = {"Asia"},
		["Armenia"] = {"Asia"},
		["Azerbaijan"] = {"Asia", "Europe"},
		["Bahrain"] = {"Asia"},
		["Bangladesh"] = {"Asia"},
		["Bhutan"] = {"Asia"},
		["British Indian Ocean Territory"] = {"Asia"},
		["Brunei"] = {"Asia"},
		["Cambodia"] = {"Asia"},
		["China"] = {"Asia"},
		["Christmas Island"] = {"Asia"},
		["Cocos Islands"] = {"Asia"},
		["Georgia"] = {"Asia", "Europe"},
		["Hong Kong"] = {"Asia"},
		["India"] = {"Asia"},
		["Indonesia"] = {"Asia"},
		["Iran"] = {"Asia"},
		["Iraq"] = {"Asia"},
		["Israel"] = {"Asia"},
		["Japan"] = {"Asia"},
		["Jordan"] = {"Asia"},
		["Kazakhstan"] = {"Asia", "Europe"},
		["Kuwait"] = {"Asia"},
		["Kyrgyzstan"] = {"Asia"},
		["Laos"] = {"Asia"},
		["Lebanon"] = {"Asia"},
		["Macau"] = {"Asia"},
		["Malaysia"] = {"Asia"},
		["Maldives"] = {"Asia"},
		["Mongolia"] = {"Asia"},
		["Myanmar"] = {"Asia"},
		["Nepal"] = {"Asia"},
		["North Korea"] = {"Asia"},
		["Oman"] = {"Asia"},
		["Pakistan"] = {"Asia"},
		["Palestine"] = {"Asia"},
		["Philippines"] = {"Asia"},
		["Qatar"] = {"Asia"},
		["Saudi Arabia"] = {"Asia"},
		["Singapore"] = {"Asia"},
		["South Korea"] = {"Asia"},
		["Sri Lanka"] = {"Asia"},
		["Syria"] = {"Asia"},
		["Taiwan"] = {"Asia"},
		["Tajikistan"] = {"Asia"},
		["Thailand"] = {"Asia"},
		["Turkey"] = {"Asia", "Europe"},
		["Turkmenistan"] = {"Asia"},
		["United Arab Emirates"] = {"Asia"},
		["Uzbekistan"] = {"Asia"},
		["Vietnam"] = {"Asia"},
		["Yemen"] = {"Asia"},
	["Europe"] = {0},
		["Albania"] = {"Europe"},
		["Andorra"] = {"Europe"},
		["Austria"] = {"Europe"},
		["Belarus"] = {"Europe"},
		["Belgium"] = {"Europe"},
		["Bosnia and Herzegovina"] = {"Europe"},
		["Bulgaria"] = {"Europe"},
		["Croatia"] = {"Europe"},
		["Cyprus"] = {"Europe"},
		["Czechia"] = {"Europe"},
		["Denmark"] = {"Europe"},
		["Estonia"] = {"Europe"},
		["Faroe Islands"] = {"Europe"},
		["Finland"] = {"Europe"},
		["France"] = {"Europe"},
		["Germany"] = {"Europe"},
		["Gibraltar"] = {"Europe"},
		["Greece"] = {"Europe"},
		["Guernsey"] = {"Europe"},
		["Hungary"] = {"Europe"},
		["Iceland"] = {"Europe"},
		["Ireland"] = {"Europe"},
		["Isle of Man"] = {"Europe"},
		["Italy"] = {"Europe"},
		["Jersey"] = {"Europe"},
		["Kosovo"] = {"Europe"},
		["Latvia"] = {"Europe"},
		["Liechtenstein"] = {"Europe"},
		["Lithuania"] = {"Europe"},
		["Luxembourg"] = {"Europe"},
		["Macedonia"] = {"Europe"},
		["Malta"] = {"Europe"},
		["Moldova"] = {"Europe"},
		["Monaco"] = {"Europe"},
		["Montenegro"] = {"Europe"},
		["Netherlands"] = {"Europe"},
		["Norway"] = {"Europe"},
		["Poland"] = {"Europe"},
		["Portugal"] = {"Europe"},
		["Romania"] = {"Europe"},
		["Russia"] = {"Europe", "Asia"},
		["San Marino"] = {"Europe"},
		["Serbia"] = {"Europe"},
		["Slovakia"] = {"Europe"},
		["Slovenia"] = {"Europe"},
		["Spain"] = {"Europe"},
		["Svalbard and Jan Mayen"] = {"Europe"},
		["Sweden"] = {"Europe"},
		["Switzerland"] = {"Europe"},
		["Ukraine"] = {"Europe"},
		["United Kingdom"] = {"Europe"},
			["Havering"] = {"United Kingdom"},
		["Vatican City"] = {"Europe"},
	["Africa"] = {0},
		["Algeria"] = {"Africa"},
		["Angola"] = {"Africa"},
		["Benin"] = {"Africa"},
		["Botswana"] = {"Africa"},
		["Burkina Faso"] = {"Africa"},
		["Burundi"] = {"Africa"},
		["Cameroon"] = {"Africa"},
		["Cape Verde"] = {"Africa"},
		["Central African Republic"] = {"Africa"},
		["Chad"] = {"Africa"},
		["Comoros"] = {"Africa"},
		["Democratic Republic of the Congo"] = {"Africa"},
		["Djibouti"] = {"Africa"},
		["Egypt"] = {"Africa", "Asia"},
		["Equatorial Guinea"] = {"Africa"},
		["Eritrea"] = {"Africa"},
		["Ethiopia"] = {"Africa"},
		["Gabon"] = {"Africa"},
		["Gambia"] = {"Africa"},
		["Ghana"] = {"Africa"},
		["Guinea"] = {"Africa"},
		["Guinea-Bissau"] = {"Africa"},
		["Ivory Coast"] = {"Africa"},
		["Kenya"] = {"Africa"},
		["Lesotho"] = {"Africa"},
		["Liberia"] = {"Africa"},
		["Libya"] = {"Africa"},
		["Madagascar"] = {"Africa"},
		["Malawi"] = {"Africa"},
		["Mali"] = {"Africa"},
		["Mauritania"] = {"Africa"},
		["Mauritius"] = {"Africa"},
		["Mayotte"] = {"Africa"},
		["Morocco"] = {"Africa"},
		["Mozambique"] = {"Africa"},
		["Namibia"] = {"Africa"},
		["Niger"] = {"Africa"},
		["Nigeria"] = {"Africa"},
		["Republic of the Congo"] = {"Africa"},
		["Reunion"] = {"Africa"},
		["Rwanda"] = {"Africa"},
		["Saint Helena"] = {"Africa"},
		["Sao Tome and Principe"] = {"Africa"},
		["Senegal"] = {"Africa"},
		["Seychelles"] = {"Africa"},
		["Sierra Leone"] = {"Africa"},
		["Somalia"] = {"Africa"},
		["South Africa"] = {"Africa"},
		["South Sudan"] = {"Africa"},
		["Sudan"] = {"Africa"},
		["Swaziland"] = {"Africa"},
		["Tanzania"] = {"Africa"},
		["Togo"] = {"Africa"},
		["Tunisia"] = {"Africa"},
		["Uganda"] = {"Africa"},
		["Western Sahara"] = {"Africa"},
		["Zambia"] = {"Africa"},
		["Zimbabwe"] = {"Africa"},
	["Oceania"] = {0},
		["American Samoa"] = {"Oceania"},
		["Australia"] = {"Oceania"},
		["Cook Islands"] = {"Oceania"},
		["East Timor"] = {"Oceania"},
		["Fiji"] = {"Oceania"},
		["French Polynesia"] = {"Oceania"},
		["Guam"] = {"Oceania"},
		["Kiribati"] = {"Oceania"},
		["Marshall Islands"] = {"Oceania"},
		["Micronesia"] = {"Oceania"},
		["Nauru"] = {"Oceania"},
		["New Caledonia"] = {"Oceania"},
		["New Zealand"] = {"Oceania"},
		["Niue"] = {"Oceania"},
		["Northern Mariana Islands"] = {"Oceania"},
		["Palau"] = {"Oceania"},
		["Papua New Guinea"] = {"Oceania"},
		["Pitcairn"] = {"Oceania"},
		["Samoa"] = {"Oceania"},
		["Solomon Islands"] = {"Oceania"},
		["Tokelau"] = {"Oceania"},
		["Tonga"] = {"Oceania"},
		["Tuvalu"] = {"Oceania"},
		["Vanuatu"] = {"Oceania"},
		["Wallis and Futuna"] = {"Oceania"},
	["North America"] = {0},
		["Anguilla"] = {"North America"},
		["Antigua and Barbuda"] = {"North America"},
		["Aruba"] = {"North America"},
		["Bahamas"] = {"North America"},
		["Barbados"] = {"North America"},
		["Belize"] = {"North America"},
		["Bermuda"] = {"North America"},
		["British Virgin Islands"] = {"North America"},
		["Canada"] = {"North America"},
		["Cayman Islands"] = {"North America"},
		["Costa Rica"] = {"North America"},
		["Cuba"] = {"North America"},
		["Curacao"] = {"North America"},
		["Dominica"] = {"North America"},
		["Dominican Republic"] = {"North America"},
		["El Salvador"] = {"North America"},
		["Greenland"] = {"North America"},
		["Grenada"] = {"North America"},
		["Guatemala"] = {"North America"},
		["Haiti"] = {"North America"},
		["Honduras"] = {"North America"},
		["Jamaica"] = {"North America"},
		["Mexico"] = {"North America"},
		["Montserrat"] = {"North America"},
		["Netherlands Antilles"] = {"North America"},
		["Nicaragua"] = {"North America"},
		["Panama"] = {"North America"},
		["Puerto Rico"] = {"North America"},
		["Saint Barthelemy"] = {"North America"},
		["Saint Kitts and Nevis"] = {"North America"},
		["Saint Lucia"] = {"North America"},
		["Saint Martin"] = {"North America"},
		["Saint Pierre and Miquelon"] = {"North America"},
		["Saint Vincent and the Grenadines"] = {"North America"},
		["Sint Maarten"] = {"North America"},
		["Trinidad and Tobago"] = {"North America"},
		["Turks and Caicos Islands"] = {"North America"},
		["U.S. Virgin Islands"] = {"North America"},
		["United States"] = {"North America"},
	["Antarctica"] = {0},
		["Antarctica"] = {"Antarctica"},
	["South America"] = {0},
		["Argentina"] = {"South America"},
		["Bolivia"] = {"South America"},
		["Brazil"] = {"South America"},
		["Chile"] = {"South America"},
		["Colombia"] = {"South America"},
		["Ecuador"] = {"South America"},
		["Falkland Islands"] = {"South America"},
		["Guyana"] = {"South America"},
		["Paraguay"] = {"South America"},
		["Peru"] = {"South America"},
		["Suriname"] = {"South America"},
		["Uruguay"] = {"South America"},
		["Venezuela"] = {"South America"},

    ["0"] = {} -- An empty list for the root node
}

local function getCategoryTree(node)
    local tree = {}
    table.insert(tree, "[[Category:" .. node .. "-related topics]]")
	
    local function processParents(node)
        if parents[node] then
            for _, parent in ipairs(parents[node]) do
                if parent ~= 0 then
                    table.insert(tree, "[[Category:" .. parent .. "-related topics]]")
                    processParents(parent)
                end
            end
        end
    end

    processParents(node)
    return table.concat(tree, "")
end

function p.getCategoryTree(frame)
    local input = frame.args[1]
    local tree = getCategoryTree(input)
    return tree
end

return p