请输入您要查询的百科知识:

 

词条 Module:Flagg
释义

local p = {}

function p.main(frame)

--Get input arguments

local args = require('Module:Arguments').getArgs(frame,{valueFunc =

  function(key,value)    if value then      value = mw.text.trim(value)      --Change empty string to nil for all args except 'image' and 'border'      if key=="image" or key=="border" or value~="" then        return value      end    end    return nil  end

})

--Call main function

return p.luaMain(frame,args)

end

function p.luaMain(frame,args)

function emp2nil(x)

end

function space2emp(x)

end

function nopx(x)

end

--Country & mode parameters

local mode = string.lower(args[1] or "usc")

local mi = string.sub(mode,1,1)

local ms = string.sub(mode,2,2)

local mn = string.sub(mode,3,3)

local me = string.sub(mode,4,-1)

local country = args[2] or ""

local avar = args["avar"] or args["altvar"]

local clink = args["clink"] or args["link"]

--Get country data & altvar data

local data, alink, amap, asuf

if avar then

  local age = args["age"] or ""  local aalias  amap, aalias = require("Module:Flagg/Altvar data").alttable(age)  avar = string.gsub(string.lower(avar or ""),"[ \\-]","")  avar = aalias[avar] or avar  if not amap[avar] then error("Unknown avar") end  local apar = {altvar=amap[avar].altvar;mw=amap[avar].mw;age=amap[avar].age;variant=args["variant"] or args[3]}  data = require("Module:CountryData").gettable(frame,country,apar)  asuf = amap[avar].altlink  alink = data["link alias-"..amap[avar].altvar] or (clink or data["shortname alias"] or data.alias or country).." "..asuf

else

  data = (args["nodata"] and {}) or require("Module:CountryData").gettable(frame,country,{variant=args["variant"] or args[3]})  avar = ""  amap = {[""]={altvar=""}}

end

--Name and link parameters

clink = clink or data.alias or country

local pref = args["pref"]

local suff = args["suff"] or asuf

if not pref and not suff then --Default prefix

end

local yn_map = {[""]=0; ["0"]=0; ["no"]=0; ["n"]=0; ["1"]=1; ["yes"]=1; ["y"]=1}

local fthe = (args["pthe"] and yn_map[args["pthe"]]~=0) or (args["the"] and yn_map[args["the"]]~=0)

local nthe = (args["nthe"] and yn_map[args["nthe"]]~=0) or (args["the"] and yn_map[args["the"]]~=0)

fthe = fthe and (pref and "t" or "T").."he " or ""

nthe = nthe and (pref and "t" or "T").."he " or ""

local flink = args["plink"] or args["flink"] or alink

local fsec = args["psection"] or args["section"]

local csec = args["csection"] or args["section"]

fsec = fsec and "#"..fsec or ""

csec = csec and "#"..csec or ""

local name = args["name"]

if not name then

  local cname = string.find(me,"e") and (data["name alias-"..amap[avar].altvar] or data["shortname alias"] or data.alias) or country  if mn == "f" then    name = cname=="" and "" or space2emp((pref or "").." ")..nthe..cname..space2emp(" "..(suff or ""))  else    name = cname  end

end

--Image parameters

local pimage = args["image"]

local placeholder = "Flag placeholder.svg"

local variant = args["variant"] or args[3] or ""

local image_map = {[""]=placeholder; ["none"]=placeholder; ["blank"]=placeholder}

if pimage then --Remove namespace

  pimage = string.gsub(pimage,"^[Ff][Ii][Ll][Ee]:","")  pimage = string.gsub(pimage,"^[Ii][Mm][Aa][Gg][Ee]:","")

end

local iname = image_map[pimage] or pimage

local size = args["size"] or args["sz"]

local size_map = {xs="12x8px"; s="17x11px"; m="23x15px"; l="32x21px"; xl="46x30px"}

if size==nil or string.find(size,"^%d*x?%d+px$") then

elseif string.find(size,"^%d*x?%d+$") then --EIS size without "px" suffix

else --size from map, or invalid value

end

local border = args["border"]

if iname then

  size = size or "23x15px"  if yn_map[border]==0 then border = "" else border = "|border" end

else

  iname = data["flag alias-"..amap[avar].altvar.."-"..variant] or data["flag alias-"..variant] or data["flag alias-"..amap[avar].altvar] or data["flag alias"] or placeholder  size = size or emp2nil(data.size) or "23x15px"  if border then    if yn_map[border]==0 then border = "" else border = "|border" end  else    local autoborder = data["border-"..variant] or data["border-"..amap[avar].altvar] or data.border    if autoborder and autoborder~="border" then border = "" else border = "|border" end  end

end

local am = ""

if args["alt"] or string.find(me,"a") then

  am = args["alt"] or args["name"] or country  am = am.."|"..am

end

--Build display name

local text = args["text"]

if not text then

  if mn=="x" then --no text    text = ""  elseif mn=="p" or mn=="f" then --prefix/suffix link    text = flink=="" and name or ""..name..""  elseif mn=="b" then --both prefix/suffix and normal country link  	local preflink = pref and (flink=="" and pref.." " or ""..pref.." ") or ""  	local sufflink = suff and (flink=="" and " "..suff or " "..suff.."") or ""  	local namelink = (name=="" and "" or nthe)..(clink=="" and name or ""..name.."")    text = preflink..namelink..sufflink  elseif mn=="d" then --data template    --check if redirect    if require('Module:Redirect').luaIsRedirect("Template:Country data "..country) then      text = "["..mw.title.new("Template:Country data "..country):fullUrl("redirect=no").." "..name.."]"    else      text = ""..name..""    end  elseif mn=="u" then --unlinked    text = name  else --country link (default)    text = clink=="" and name or ""..name..""  end

end

--Build image

local ilink = args["ilink"]

if not ilink then

  if mi=="x" or (iname==placeholder and pimage~=placeholder) then --no image/invisible image    iname = placeholder    border = ""    ilink = "|link="    am = ""  elseif mi=="i" then --image page link    ilink = ""  elseif mi=="c" then --country link    ilink = "|link="..clink..(clink=="" and "" or csec)  elseif mi=="p" or mi=="f" then --prefix/suffix link    ilink = "|link="..flink..(flink=="" and "" or fsec)  elseif mi=="d" then --data template    --check if redirect    if require('Module:Redirect').luaIsRedirect("Template:Country data "..country) then      ilink = "|link="..mw.title.new("Template:Country data "..country):fullUrl("redirect=no")    else      ilink = "|link=Template:Country data "..country    end  else --unlinked (default)    ilink = "|link="  end

end

local image = ""

--Combine image and name with separator

local align = args["align"] or args["al"]

local nalign = args["nalign"] or args["nal"]

local align_map = {left="left", l="left", center="center", centre="center", c="center", middle="center", m="center", right="right", r="right"}

local out

if string.find(me,"r") then

  --image right of name  if (ms=="x" and mi=="x") or (string.find(me,"o") and iname==placeholder and pimage~=placeholder) then --name only    out = text  elseif ms=="x" then --no separator    out = text..""..image..""  elseif ms=="n" then --non-breaking space    out = text.." "..image..""  elseif ms=="l" then --line break    out = text.."
"..image.."
" elseif ms=="t" then --table cell out = "style=\\"text-align:"..(align_map[nalign] or "left").."\\"|"..text.."||style=\\"text-align:"..(align_map[align] or "center")..";\\"|"..image.."" else --fixed-width span box (default) local width = args["width"] or args["w"] or require("Module:Flaglist").luawidth(size) out = text.." "..image.."" end else --image left of name if (ms=="x" and mi=="x") or (string.find(me,"o") and iname==placeholder and pimage~=placeholder) then --name only out = text elseif ms=="x" then --no separator out = ""..image..""..text elseif ms=="n" then --non-breaking space out = ""..image.." "..text elseif ms=="l" then --line break out = ""..image.."
"..text elseif ms=="t" then --table cell out = "style=\\"text-align:"..(align_map[align] or "center")..";\\"|"..image.."||style=\\"text-align:"..(align_map[nalign] or "left").."\\"|"..text else --fixed-width span box (default) local width = nopx(args["width"] or args["w"]) or require("Module:Flaglist").luawidth(size) out = ""..image.." "..text end

end

if string.find(me,"w") then --avoid wrapping

end

--Tracking categories

local cat = ""

if pimage and not image_map[pimage] and country~="" and data["flag alias"] and not args.demo then

end

return out..cat

end

return p

1 : Pages using Flagg with specified image instead of data template image

随便看

 

开放百科全书收录14589846条英语、德语、日语等多语种百科知识,基本涵盖了大多数领域的百科知识,是一部内容自由、开放的电子版国际百科全书。

 

Copyright © 2023 OENC.NET All Rights Reserved
京ICP备2021023879号 更新时间:2024/9/28 1:24:01