Module:Date Stuff: Difference between revisions

From Stiles Wiki
Jump to navigation Jump to search
No edit summary
No edit summary
Line 1: Line 1:
local p = {};    --All lua modules on Wikipedia must begin by defining a variable
local p = {}
                    --that will hold their externally accessible functions.
local args = {}
                    --Such variables can have whatever name you want and may
 
                    --also contain various data as well as functions.
--Takes a string and splits it based on a specified delimiter
p.hello = function( frame )    --Add a function to "p". 
function Split(s, delimiter)
                                        --Such functions are callable in Wikipedia
     result = {};
                                        --via the #invoke command.
    for match in (s..delimiter):gmatch("(.-)"..delimiter) do
                                        --"frame" will contain the data that Wikipedia
        table.insert(result, match);
                                        --sends this function when it runs.  
    end
                                -- 'Hello' is a name of your choice. The same name needs to be referred to when the module is used.
    return result;
   
    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 Wikipedia.
   
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
end
function p.count_fruit(frame)
 
local num_bananas = frame.args.bananas -- Named arguments ({{#invoke:Example|count_fruit|foo=bar}}) are likewise
function p.test(frame)
local num_apples = frame.args.apples   -- accessed by indexing `frame.args` by name (`frame.args["bananas"]`, or)
   return frame
  -- 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
end


return p   --All modules end by returning the variable containing their functions to Wikipedia.
return p
-- 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 Wikipedia.  All output is accomplished
-- via strings "returned" to Wikipedia.

Revision as of 12:54, 5 July 2021

Documentation for this module may be created at Module:Date Stuff/doc

local p = {}
local args = {}

--Takes a string and splits it based on a specified delimiter
function Split(s, delimiter)
    result = {};
    for match in (s..delimiter):gmatch("(.-)"..delimiter) do
        table.insert(result, match);
    end
    return result;
end

function p.test(frame)
  return frame
end

return p