User:Mheguy/sandbox: Difference between revisions

From SGUTranscripts
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
                    --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 "p". 
                                        --Such functions are callable in Wikipedia
                                        --via the #invoke command.
                                        --"frame" will contain the data that Wikipedia
                                        --sends this function when it runs.
                                -- 'Hello' is a name of your choice. The same name needs to be referred to when the module is used.
   
    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
function p.count_fruit(frame)
local num_bananas = tonumber(frame.args.bananas) or 0 -- Named arguments ({{#invoke:Example|count_fruit|foo=bar}})
local num_apples = tonumber(frame.args.apples) or 0 -- are likewise accessed by indexing `frame.args` by name (`frame.args["bananas"]`,
--  or equivalently `frame.args.bananas`.
local conj_bananas = num_bananas == 1 and 'banana' or 'bananas'
    local conj_apples = num_apples == 1 and 'apple' or 'apples'
    -- Ternary operators assign values based on a condition in a compact way.
-- Here, `conj_bananas` gets `'banana'` if `num_bananas` is 1, else `'bananas'`.
-- Similarly, `conj_apples` gets `'apple'` if `num_apples` is 1, else `'apples'`.
   
    return 'I have ' .. num_bananas ..  ' ' .. conj_bananas .. ' and ' .. num_apples .. ' ' .. conj_apples
  -- Like above, concatenate a bunch of strings together to produce
  -- a sentence based on the arguments given.
end


<span id="2024"></span>
return p    --All modules end by returning the variable containing their functions to Wikipedia.
{|class="sortable wikitable sortable mw-collapsible"  {{SGU list headers
-- Now we can use this module by calling {{#invoke: Example | hello }},
|year = 2024 [[#jump|[↑]]]
-- {{#invoke: Example | hello_to | foo }}, or {{#invoke:Example|count_fruit|bananas=5|apples=6}}
|range = (Episodes 965-1016)}}
-- 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
{{User:Mheguy/sandbox/row_template
-- variable that you returned.
|episode=1003||date=09-28|status=|notes=
 
}}
-- The "print" function is not allowed in Wikipedia.  All output is accomplished
|}
-- via strings "returned" to Wikipedia.
|-
|style="border: 1px solid darkgray;background:#F8F9F9;text-align:left;background:#CCD9EA;" |&nbsp;&nbsp;<big>'''2024&nbsp;[[#jump|[↑]]]'''</big> &nbsp;&nbsp;(Episodes 965-1016)
|}

Latest revision as of 07:13, 25 November 2024

local p = {} --All Lua modules on Wikipedia 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 "p".

                                       --Such functions are callable in Wikipedia
                                       --via the #invoke command.
                                       --"frame" will contain the data that Wikipedia
                                       --sends this function when it runs. 
                                -- 'Hello' is a name of your choice. The same name needs to be referred to when the module is used.
   
   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 function p.count_fruit(frame)

local num_bananas = tonumber(frame.args.bananas) or 0 -- Named arguments ({{#invoke:Example|count_fruit|foo=bar}}) local num_apples = tonumber(frame.args.apples) or 0 -- are likewise accessed by indexing `frame.args` by name (`frame.args["bananas"]`, -- or equivalently `frame.args.bananas`.

local conj_bananas = num_bananas == 1 and 'banana' or 'bananas'

   local conj_apples = num_apples == 1 and 'apple' or 'apples'
   										-- Ternary operators assign values based on a condition in a compact way.

-- Here, `conj_bananas` gets `'banana'` if `num_bananas` is 1, else `'bananas'`. -- Similarly, `conj_apples` gets `'apple'` if `num_apples` is 1, else `'apples'`.

   return 'I have ' .. num_bananas ..  ' ' .. conj_bananas .. ' and ' .. num_apples .. ' ' .. conj_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 Wikipedia. -- 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.