Module:Example/sandbox: Difference between revisions
Jump to navigation
Jump to search
en>Andrybak (Create sandbox version of Module:Example) |
m (1 revision imported) |
Latest revision as of 14:01, 11 June 2022
Documentation for this module may be created at Module:Example/sandbox/doc
local p = {}; --All lua modules on Stiles.casa Wiki must begin by defining a variable
--that will hold their externally accessible functions.
--Such variables can have whatever name you want and may
--also contain various data as well as functions.
p.hello = function( frame ) --Add a function to "my_object".
--Such functions are callable in Stiles.casa Wiki
--via the #invoke command.
--"frame" will contain the data that Stiles.casa Wiki
--sends this function when it runs.
local str = "Hello World!" --Declare a local variable and set it equal to
--"Hello World!".
return str --This tells us to quit this function and send the information in
--"str" back to Stiles.casa Wiki.
end -- end of the function "hello"
function p.hello_to(frame) -- Add another function
local name = frame.args[1] -- To access arguments passed to a module, use `frame.args`
-- `frame.args[1]` refers to the first unnamed parameter
-- given to the module
return "Hello, " .. name .. "!" -- `..` concatenates strings. This will return a customized
-- greeting depending on the name given, such as "Hello, Fred!"
end
function p.count_fruit(frame)
local num_bananas = frame.args.bananas -- Named arguments ({{#invoke:Example|count_fruit|foo=bar}}) are likewise
local num_apples = frame.args.apples -- accessed by indexing `frame.args` by name (`frame.args["bananas"]`, or)
-- equivalently `frame.args.bananas`.
return 'I have ' .. num_bananas .. ' bananas and ' .. num_apples .. ' apples'
-- Like above, concatenate a bunch of strings together to produce
-- a sentence based on the arguments given.
end
return p --All modules end by returning the variable containing their functions to Stiles.casa Wiki.
-- Now we can use this module by calling {{#invoke: Example | hello }},
-- {{#invoke: Example | hello_to | foo }}, or {{#invoke:Example|count_fruit|bananas=5|apples=6}}
-- Note that the first part of the invoke is the name of the Module's wikipage,
-- and the second part is the name of one of the functions attached to the
-- variable that you returned.
-- The "print" function is not allowed in Stiles.casa Wiki. All output is accomplished
-- via strings "returned" to Stiles.casa Wiki.