Module:World topic/sandbox
Appearance
local p = {}
local Navbox = require("Module:Navbox")
local country = {
Afghanistan = {""},
Albania = {""},
Algeria = {""},
Andorra = {""},
Angola = {""},
["Antigua and Barbuda"] = {""},
Argentina = {""},
Armenia = {""},
Australia = {""},
Austria = {""},
Azerbaijan = {""},
Bahamas = {"the Bahamas"},
Bahrain = {""},
Bangladesh = {""},
Barbados = {""},
Belarus = {""},
Belgium = {""},
Belize = {""},
Benin = {""},
Bhutan = {""},
Bolivia = {""},
["Bosnia and Herzegovina"] = {""},
Botswana = {""},
Brazil = {""},
Brunei = {""},
Bulgaria = {""},
["Burkina Faso"] = {""},
Burundi = {""},
Cambodia = {""},
Cameroon = {""},
Canada = {""},
["Cape Verde"] = {""},
["Central African Republic"] = {"the Central African Republic"},
Chad = {""},
Chile = {""},
China = {""},
Colombia = {""},
Comoros = {""},
["Democratic Republic of the Congo"] = {"the Democratic Republic of the Congo"},
["Republic of the Congo"] = {"the Republic of the Congo"},
["Costa Rica"] = {""},
Croatia = {""},
Cuba = {""},
Cyprus = {""},
["Czech Republic"] = {"the Czech Republic"},
Denmark = {""},
Djibouti = {""},
Dominica = {""},
["East Timor"] = {""},
["Dominican Republic"] = {"the Dominican Republic"},
Ecuador = {""},
Egypt = {""},
["El Salvador"] = {""},
["Equatorial Guinea"] = {""},
Eritrea = {""},
Estonia = {""},
Eswatini = {""},
Ethiopia = {""},
Fiji = {""},
Finland = {""},
France = {""},
Gabon = {""},
Gambia = {"the Gambia"},
Georgia = {"Georgia (country)"},
Germany = {""},
Ghana = {""},
Greece = {""},
Grenada = {""},
Guatemala = {""},
Guinea = {""},
["Guinea-Bissau"] = {""},
Guyana = {""},
Haiti = {""},
Honduras = {""},
Hungary = {""},
Iceland = {""},
India = {""},
Indonesia = {""},
Iran = {""},
Iraq = {""},
Ireland = {"the Republic of Ireland"},
Israel = {""},
Italy = {""},
["Ivory Coast"] = {""},
Jamaica = {""},
Japan = {""},
Jordan = {""},
Kazakhstan = {""},
Kenya = {""},
Kiribati = {""},
Kosovo = {""},
["North Korea"] = {""},
["South Korea"] = {""},
Kuwait = {""},
Kyrgyzstan = {""},
Laos = {""},
Latvia = {""},
Lebanon = {""},
Lesotho = {""},
Liberia = {""},
Libya = {""},
Liechtenstein = {""},
Lithuania = {""},
Luxembourg = {""},
Madagascar = {""},
Malawi = {""},
Malaysia = {""},
Maldives = {""},
Mali = {""},
Malta = {""},
["Marshall Islands"] = {"the Marshall Islands"},
Mauritania = {""},
Mauritius = {""},
Mexico = {""},
["Federated States of Micronesia"] = {"the Federated States of Micronesia"},
Moldova = {""},
Monaco = {""},
Mongolia = {""},
Montenegro = {""},
Morocco = {""},
Mozambique = {""},
Myanmar = {""},
Namibia = {""},
Nauru = {""},
Nepal = {""},
Netherlands = {"the Netherlands"},
["New Zealand"] = {""},
Nicaragua = {""},
Niger = {""},
Nigeria = {""},
["North Macedonia"] = {""},
Norway = {""},
Oman = {""},
Pakistan = {""},
Palestine = {"State of Palestine"},
Palau = {""},
Panama = {""},
["Papua New Guinea"] = {""},
Paraguay = {""},
Peru = {""},
Philippines = {"the Philippines"},
Poland = {""},
Portugal = {""},
Qatar = {""},
Romania = {""},
Russia = {""},
Rwanda = {""},
["Saint Kitts and Nevis"] = {""},
["Saint Lucia"] = {""},
["Saint Vincent and the Grenadines"] = {""},
Samoa = {""},
["San Marino"] = {""},
["São Tomé and Príncipe"] = {""},
["Saudi Arabia"] = {""},
Senegal = {""},
Serbia = {""},
Seychelles = {""},
["Sierra Leone"] = {""},
Singapore = {""},
Slovakia = {""},
Slovenia = {""},
["Solomon Islands"] = {"the Solomon Islands"},
Somalia = {""},
["South Africa"] = {""},
["South Sudan"] = {""},
Spain = {""},
["Sri Lanka"] = {""},
Sudan = {""},
Suriname = {""},
Sweden = {""},
Switzerland = {""},
Syria = {""},
Taiwan = {""},
Tajikistan = {""},
Tanzania = {""},
Thailand = {""},
Togo = {""},
Tonga = {""},
["Trinidad and Tobago"] = {""},
Tunisia = {""},
Turkey = {""},
Turkmenistan = {""},
Tuvalu = {""},
Uganda = {""},
Ukraine = {""},
["United Arab Emirates"] = {"the United Arab Emirates"},
["United Kingdom"] = {"the United Kingdom"},
["United States"] = {"the United States"},
Uruguay = {""},
Uzbekistan = {""},
Vanuatu = {""},
["Vatican City"] = {""},
Venezuela = {""},
Vietnam = {""},
["Western Sahara"] = {""},
Yemen = {""},
Zambia = {""},
Zimbabwe = {""},
}
local function li(text)
local li = mw.html.create("li")
li
:wikitext(text)
:done()
return tostring(li)
end
local function linktarget(x, y)
if y ~= nil and y == "" then
return x
else
return y
end
end
local function links(args1, args2, argsprefix, argssuffix, sorter, redlinks, override)
local list = {}
local prefix = (args1 or argsprefix or "") .. " "
local suffix = args2 or argssuffix or ""
for x, y in pairs(sorter) do
local target = nil
if redlinks then
if override[y] then
target = override[y]
elseif y == "Georgia" or y == "Palestine" then
if mw.title.new(prefix..country[y][1]..suffix).exists then
target = prefix..country[y][1]..suffix
else
target = prefix..y..suffix
end
else
target = prefix..linktarget(y, country[y][1])..suffix
end
else -- noredlinks
if override[y] then
if mw.title.new(override[y]).exists then
target = override[y]
end
elseif mw.title.new(prefix..linktarget(y, country[y][1])..suffix).exists then
target = prefix..linktarget(y, country[y][1])..suffix
elseif y == "Georgia" or y == "Palestine" then
if mw.title.new(prefix..y..suffix).exists then
target = prefix..y..suffix
end
end
end
if target then
table.insert(list, li("[["..target.."|"..y.."]]" ) )
end
end
return list
end
function p.main(frame)
local pframe = frame:getParent()
local config = frame.args
local args = pframe.args
return p._main(args)
end
function p._main(args)
local state, titlemid, title, group1
if mw.title.getCurrentTitle() == "Template:World topic" then
state = "autocollapse"
else
state = args.state
end
if args[1] ~= nil or args.prefix ~= nil and (args[2] == nil or args.suffix == nil) then
titlemid = " the"
end
if args.title ~= nil then
title = args.title
else
title = "[["..(args[1] or args.prefix or "")..(titlemid or "").." World"..(args.suffix or "").."]]"
end
if args.group1 ~= nil and args.group1 ~= "" then
group1 = args.group1
end
local sorter = {}
for n in pairs(country) do
table.insert(sorter, n)
end
table.sort(sorter)
-- parse link overrides, e.g. |link_United_States=Foo sets override["United States"] = "Foo"
local override = {}
for k,v in pairs(args) do
local country = mw.ustring.match(k, "^link_(.*)")
if country then
country = mw.ustring.gsub(country, "_", " ")
override[country] = v
end
end
local redlinks = args.noredlinks == nil
local list1 = table.concat(links(args[1], args[2], args.prefix, args.suffix, sorter, redlinks, override) )
local navarguments = {
name = args.name or "World topic",
state = state,
navbar = args.navbar or "Tnavbar",
border = args.border,
title = title,
image = args.image,
titlestyle = args.titlestyle,
bodystyle = args.bodystyle,
abovestyle = args.abovestyle,
belowstyle = args.belowstyle,
groupstyle = args.groupstyle,
liststyle = args.liststyle,
listclass = "hlist",
above = args.above,
group1 = group1,
list1 = list1
}
return Navbox._navbox(navarguments)
end
return p