Module:Sandbox/SiBr4
Appearance
local p = {}
-------------------------
function p.lua_code2name(code1,code2)
code1 = string.upper(code1 or "")
code2 = string.upper(code2 or "")
if string.find(code1,"%-") then
code1, code2 = string.match(code1,"^([^%-]*)%-(.*)$")
end
if --Check if valid code
--No non-alphanumeric characters allowed
string.find(code1..code2,"[^A-Z0-9]")
--3166-1 codes can be two or three letters or three digits;
--3166-2 codes must be two letters (first part) and 1-3 letters or digits (second part)
or not (string.find(code1,"^%u%u%u?$") or string.find(code1,"^%d%d%d$"))
or not (string.find(code2,"^%u?%u?%u?$") or string.find(code2,"^%d?%d?%d?$"))
or not (string.find(code1,"^%u%u$") or code2=="")
then
return error("Invalid code "..code1..(code2~="" and "-"..code2 or ""))
end
return "\""..code1.."\""..(code2 and " and \""..code2.."\"" or "")
end
function p.code2name(frame)
local args = require("Module:Arguments").getArgs(frame)
return p.lua_code2name(args[1],args[2])
end
-------------------------
function p.listdata(frame)
local args = require('Module:Arguments').getArgs(frame)
local map = {}
for k,v in pairs(args) do
if tonumber(k) ~= nil then
table.insert(map, k)
end
end
table.sort(map)
local list = mw.html.create('table')
list:css("background-color","#ecfcf4")
for n = 1, #map, 1 do
local row = list:tag("tr")
local c = args[map[n]]
local p = "Template:Country data "..c
local var = args["var"..map[n]]
local note = args["note"..map[n]]
local vartext
if var
then vartext = " (<code>"..var.."</code> variant)"
else vartext = ""
end
if require('Module:Redirect').luaIsRedirect(p)
then row:tag("td"):css("padding","0px 10px"):addClass("plainlinks"):wikitext("["..mw.title.new(p):fullUrl("redirect=no").." "..p.."]"..vartext)
else row:tag("td"):css("padding","0px 10px"):wikitext("[["..p.."]]"..vartext)
end
row:tag("td"):css("padding","0px 10px"):wikitext(frame:expandTemplate({title="flaglist", args={c, variant=(var or "")}}))
row:tag("td"):css("padding","0px 10px"):wikitext(note or "")
end
return list
end
function p.listdata2(frame)
local args = require('Module:Arguments').getArgs(frame,{removeBlanks=false})
local list = mw.html.create('table')
list:css("background-color","#ecfcf4")
for n,c in ipairs(args) do
if c ~= "" then
local row = list:tag("tr")
local p = "Template:Country data "..c
local var = args["var"..n]
local note = args["note"..n]
local vartext
if var
then vartext = " (<code>"..var.."</code> variant)"
else vartext = ""
end
if require('Module:Redirect').luaIsRedirect(p)
then row:tag("td"):css("padding","0px 10px"):addClass("plainlinks"):wikitext("["..mw.title.new(p):fullUrl("redirect=no").." "..p.."]"..vartext)
else row:tag("td"):css("padding","0px 10px"):wikitext("[["..p.."]]"..vartext)
end
row:tag("td"):css("padding","0px 10px"):wikitext(require("Module:Flagg").luaMain(frame,{"usc", c, variant=(var or "")}))
row:tag("td"):css("padding","0px 10px"):wikitext(note or "")
end
end
return list
end
-------------------------
function p.ec(frame)
local p = frame:preprocess("{{Wikipedia:List of Wikipedians by number of edits/5001โ6000}}")
local i = string.find(p,"User:SiBr4")
if i then
return string.sub(p,i-10,i-6)
else
return "?"
end
end
-------------------------
function p.test(frame)
return ""
end
-------------------------
return p