Module:World topic

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 = {""},
	["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 = {""},
	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"] = {""},
	Somalia = {""},
	["South Africa"] = {""},
	["South Sudan"] = {""},
	Spain = {""},
	["Sri Lanka"] = {""},
	Sudan = {""},
	Suriname = {""},
	Sweden = {""},
	Switzerland = {""},
	Syria = {""},
	Taiwan = {""},
	Tajikistan = {""},
	Tanzania = {""},
	Thailand = {""},
	["Timor-Leste"] = {""},
	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" 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" 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

Content Disclaimer

Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.

  1. The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
  2. There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
  3. It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
  4. Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
  5. Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.