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

 

词条 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 .. "
= " .. count .. " languages"

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 10

p.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条英语、德语、日语等多语种百科知识,基本涵盖了大多数领域的百科知识,是一部内容自由、开放的电子版国际百科全书。

 

Copyright © 2023 OENC.NET All Rights Reserved
京ICP备2021023879号 更新时间:2024/11/11 19:32:11