词条 | Module:Sandbox/Licsth |
释义 | -- Google Code-in 2017, Introduction to Lua in Wikipedia-- Google Code-in 2017, Lua task 3: Create your own Lua module on English Wikipedia local p = {} -- p stands for package function p.hello( frame ) end p.Hi = function(frame) strName = frame.args.name or "Jimbo" return "Hello from Lua to my friend " .. strName .. ". end function p.temperature(frame) cel = tonumber(frame.args.celsius) or 0 fah = cel * 9 / 5 + 32 msg = cel .. " degrees Celsius is " .. fah .." degrees Fahrenheit." if cel > 9 then msg = msg .. " It is warm." else msg = msg .. " It is cold." end return msg end p.times = function(frame) local num = tonumber( frame.args.num ) or 2 local out = num .. " times table for i = 1, 12 do out = out .. num.. " times " .. i .. " equals " .. i * num .. " end return out end p.mum = function(frame) local family = {"Dad", "Mum", "Uncle Stan", "Aunty Elsie", "Brian", "Cousin Sharon", "Bob the cat", "Grandpa Bob"} local msg = "" for i = 1, #family do msg = msg .. "Hello " .. family[i] .. " end return msg end p.langnames = function( frame ) local langs = mw.language.fetchLanguageNames() local langlist = "" local count = 0 for key, value in pairs( langs ) do langlist = langlist .. key .. " - " .. value .. " count = count + 1 end return langlist .. " end p.pageinfo = function( frame ) local ttl = frame.args.title local ttlobj = mw.title.new( ttl ) local existing = ttlobj.exists local redirected = ttlobj.isRedirect local text = ttl if existing then text = text .. " exists and is" else text = text .. " does not exist and is" end if redirected then text = text .. " a redirect." else text = text .." not a redirect." end return text end -- Google Code-in 2017/18, Task 10p.reign = function(frame) local text = "" local between = "– " local between2 = "– "
local startdate = frame.args[1] or "?" startdate = trim(startdate) if startdate == "" then startdate = "?" end
local enddate = frame.args[2] or "" enddate = trim(enddate)
if string.find(startdate, " ") or string.find(enddate, " ") then between = " – " end
local startdate2 = frame.args[3] or "?" startdate2 = trim(startdate2) if startdate2 == "" then startdate2 = "?" end
local enddate2 = frame.args[4] or "" enddate2 = trim(enddate2)
if string.find(startdate2, " ") or string.find(enddate2, " ") then between2 = " – " end
local show = frame.args['show'] show = trim(show) local era = frame.args.era or "" era = trim(era) local label = frame.args.label label = trim(label) local post_date = frame.args['post_date'] or frame.args['post-date'] or frame.args['postdate'] post_date = trim(post_date)
local pre_date = frame.args['pre_date'] or frame.args['pre-date'] or frame.args['predate'] pre_date = trim(pre_date)
local single = frame.args.single single = trim(single)
local wraps = frame.args['wrap'] wraps = trim(wraps) local mid_date = frame.args['mid_date'] or frame.args['mid-date'] or frame.args['middate'] mid_date = trim(mid_date)
local cap = frame.args.cap cap = trim(cap) local word = "r. "
if not label then if show == "word" then if cap == "y" then word = "Reigned " else word = "reigned " end elseif show == "colon" then if cap == "y" then word = "Reign: " else word = "reign: " end elseif show == "lword" then if cap == "y" then word = "Reigned " else word = "reigned " end elseif show == "lcolon" then if cap == "y" then word = "Reign: " else word = "reign: " end elseif show == "blank" then word = "" end else word = label .. " " end
if not single then if not pre_date then text = word .. startdate .. between .. enddate else text = word .. pre_date .. ", " .. startdate .. between .. enddate end if startdate2 ~= "?" or enddate2 ~= "" then if mid_date then text = text .. ", " .. mid_date end text = text .. ", " .. startdate2 .. between2 .. enddate2 end if post_date then text = text .. ", " .. post_date end else text = word .. single end
if era ~= "" then text = text .. " " .. era end
if wraps == "y" then text = "" .. text .. "" else text = "" .. text .. "" end
return text end function trim(text) if text == nil then return nil else return mw.text.trim(text) end
end return p |
随便看 |
|
开放百科全书收录14589846条英语、德语、日语等多语种百科知识,基本涵盖了大多数领域的百科知识,是一部内容自由、开放的电子版国际百科全书。