模組:HelloWorld
閱讀設定
模組解[開]
你可能想去為呢個Scribunto module開一個解版。 編者可以響呢個模組嘅沙盤 (開 | 鏡)同埋試例 (開)版度試驗佢。 請加個類到個/doc嘅細版度。 呢個模組嘅細版。 |
-- Lua 入面所有注釋用兩個減號開頭
my_object = {}; --維基百科嘅Lua模組必須喺開頭定義一個變量,
--用來將結果送返畀維基百科個解析器。
--變量個名隨便你改,但要符合Lua語言規範。
my_object.hello = function( frame ) --喺my_object變量上定義函數。
--維基百科道可以用#invoke指令調用呢啲函數。
--函數被調用時,維基百科會向函數發送數據。
--呢啲數據存喺frame入面
local str = "Hello World!" --定義局部變量。
return str --函數返回結果 "Hello world!"
end -- hello函數結束。
my_object.hellowithparam = function( frame )
local arg = frame.args[1] or 'anonymous' -- Lua數組下標從1開始
-- frame.args有用#invoke嗰陣傳過來嘅參數
-- frame.args[1]係第一個無名嘅參數
local str = "Hello, " .. arg .. '!' -- Lua入面用 .. 來連接字串
return str
end -- hellowithparam函數結束
my_object.hellowithnamedparam = function( frame )
local arg = frame.args["name"] or "anonymous" -- 噉樣來引用有名嘅參數
local str = "Hello, " .. arg .. '!'
return str
end
return my_object --模組最後都要用return將定義有函數嘅變量送返畀維基百科個解析器
-- 維基百科唔受 print 函數,請按上面寫法用return。
-- 而今可以用{{#invoke: HelloWorld | hello }}來行第一個函數 hello。
-- #invoke指令先指定模塊名稱,HelloWorld,再指定某一函數,hello。
-- 同樣,分別可以用
-- {{#invoke: HelloWorld | hellowithparam | 你個名}}
-- 同
-- {{#invoke: HelloWorld | hellowithnamedparam | name=你個名}}
-- 來行第二同第三個函數,並且將參數「你個名」傳畀佢哋
--[[
噉樣加一大段注釋
如果有個模用到你個模組,但係啲參數係傳畀個模而唔係個模組,噉就要用
frame:getParent().args 代替 frame.args
例子可以睇Template:Jpautocore
因為用嗰時係寫{{Jpautocore|參數}}而唔係直接寫{{#invoke:Jpingauto|main|參數}}
所以
應該喺Template:Jpautocore道就噉寫{{#invoke:Jpingauto|main}}
並且喺Module:Jpingauto道用frame:getParent().args而唔係frame.args
]]