<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://heroes.thelazy.net//index.php?action=history&amp;feed=atom&amp;title=Module%3AKeywords</id>
	<title>Module:Keywords - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://heroes.thelazy.net//index.php?action=history&amp;feed=atom&amp;title=Module%3AKeywords"/>
	<link rel="alternate" type="text/html" href="https://heroes.thelazy.net//index.php?title=Module:Keywords&amp;action=history"/>
	<updated>2026-04-29T10:09:58Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.0</generator>
	<entry>
		<id>https://heroes.thelazy.net//index.php?title=Module:Keywords&amp;diff=65871&amp;oldid=prev</id>
		<title>Imahero at 21:44, 2 December 2023</title>
		<link rel="alternate" type="text/html" href="https://heroes.thelazy.net//index.php?title=Module:Keywords&amp;diff=65871&amp;oldid=prev"/>
		<updated>2023-12-02T21:44:57Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 21:44, 2 December 2023&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l3&quot;&gt;Line 3:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 3:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;                     --Such variables can have whatever name you want and may  &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;                     --Such variables can have whatever name you want and may  &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;                     --also contain various data as well as functions.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;                     --also contain various data as well as functions.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;p.get = function(frame)&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;	return &#039;gotcha&#039;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;end&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;p.hello = function( frame )     --Add a function to &amp;quot;p&amp;quot;.   &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;p.hello = function( frame )     --Add a function to &amp;quot;p&amp;quot;.   &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;                                         --Such functions are callable in Wikipedia&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;                                         --Such functions are callable in Wikipedia&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Imahero</name></author>
	</entry>
	<entry>
		<id>https://heroes.thelazy.net//index.php?title=Module:Keywords&amp;diff=65848&amp;oldid=prev</id>
		<title>Imahero: Created page with &quot;local p = {};     --All Lua modules on Wikipedia must begin by defining a variable                      --that will hold their externally accessible functions....&quot;</title>
		<link rel="alternate" type="text/html" href="https://heroes.thelazy.net//index.php?title=Module:Keywords&amp;diff=65848&amp;oldid=prev"/>
		<updated>2023-12-02T20:43:39Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;local p = {};     --All Lua modules on Wikipedia must begin by defining a variable                      --that will hold their externally accessible functions....&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;local p = {};     --All Lua modules on Wikipedia must begin by defining a variable &lt;br /&gt;
                    --that will hold their externally accessible functions.&lt;br /&gt;
                    --Such variables can have whatever name you want and may &lt;br /&gt;
                    --also contain various data as well as functions.&lt;br /&gt;
p.hello = function( frame )     --Add a function to &amp;quot;p&amp;quot;.  &lt;br /&gt;
                                        --Such functions are callable in Wikipedia&lt;br /&gt;
                                        --via the #invoke command.&lt;br /&gt;
                                        --&amp;quot;frame&amp;quot; will contain the data that Wikipedia&lt;br /&gt;
                                        --sends this function when it runs. &lt;br /&gt;
                                 -- &amp;#039;Hello&amp;#039; is a name of your choice. The same name needs to be referred to when the module is used.&lt;br /&gt;
    &lt;br /&gt;
    local str = &amp;quot;Hello World!&amp;quot;  --Declare a local variable and set it equal to&lt;br /&gt;
                                --&amp;quot;Hello World!&amp;quot;.  &lt;br /&gt;
    &lt;br /&gt;
    return str    --This tells us to quit this function and send the information in&lt;br /&gt;
                  --&amp;quot;str&amp;quot; back to Wikipedia.&lt;br /&gt;
    &lt;br /&gt;
end  -- end of the function &amp;quot;hello&amp;quot;&lt;br /&gt;
function p.hello_to(frame)		-- Add another function&lt;br /&gt;
	local name = frame.args[1]  -- To access arguments passed to a module, use `frame.args`&lt;br /&gt;
							    -- `frame.args[1]` refers to the first unnamed parameter&lt;br /&gt;
							    -- given to the module&lt;br /&gt;
	return &amp;quot;Hello, &amp;quot; .. name .. &amp;quot;!&amp;quot;  -- `..` concatenates strings. This will return a customized&lt;br /&gt;
									 -- greeting depending on the name given, such as &amp;quot;Hello, Fred!&amp;quot;&lt;br /&gt;
end&lt;br /&gt;
function p.count_fruit(frame)&lt;br /&gt;
	&lt;br /&gt;
	local num_bananas = tonumber(frame.args.bananas) or 0	-- Named arguments ({{#invoke:Example|count_fruit|foo=bar}})&lt;br /&gt;
	local num_apples = tonumber(frame.args.apples) or 0		-- are likewise accessed by indexing `frame.args` by name (`frame.args[&amp;quot;bananas&amp;quot;]`,&lt;br /&gt;
															--  or equivalently `frame.args.bananas`.&lt;br /&gt;
															&lt;br /&gt;
	local conj_bananas = num_bananas == 1 and &amp;#039;banana&amp;#039; or &amp;#039;bananas&amp;#039;&lt;br /&gt;
    local conj_apples = num_apples == 1 and &amp;#039;apple&amp;#039; or &amp;#039;apples&amp;#039;&lt;br /&gt;
    										-- Ternary operators assign values based on a condition in a compact way.&lt;br /&gt;
											-- Here, `conj_bananas` gets `&amp;#039;banana&amp;#039;` if `num_bananas` is 1, else `&amp;#039;bananas&amp;#039;`.&lt;br /&gt;
											-- Similarly, `conj_apples` gets `&amp;#039;apple&amp;#039;` if `num_apples` is 1, else `&amp;#039;apples&amp;#039;`.&lt;br /&gt;
    &lt;br /&gt;
    return &amp;#039;I have &amp;#039; .. num_bananas ..  &amp;#039; &amp;#039; .. conj_bananas .. &amp;#039; and &amp;#039; .. num_apples .. &amp;#039; &amp;#039; .. conj_apples														&lt;br /&gt;
										   -- Like above, concatenate a bunch of strings together to produce&lt;br /&gt;
										   -- a sentence based on the arguments given.&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function lucky(a, b) -- One can define custom functions for use. Here we define a function &amp;#039;lucky&amp;#039; that has two inputs a and b. The names are of your choice.&lt;br /&gt;
	if b == &amp;#039;yeah&amp;#039; then -- Condition: if b is the string &amp;#039;yeah&amp;#039;. Strings require quotes. Remember to include &amp;#039;then&amp;#039;.&lt;br /&gt;
		return a .. &amp;#039; is my lucky number.&amp;#039; -- Outputs &amp;#039;a is my lucky number.&amp;#039; if the above condition is met. The string concatenation operator is denoted by 2 dots.&lt;br /&gt;
	else -- If no conditions are met, i.e. if b is anything else, output specified on the next line.  &amp;#039;else&amp;#039; should not have &amp;#039;then&amp;#039;.&lt;br /&gt;
		return a -- Simply output a.&lt;br /&gt;
	end -- The &amp;#039;if&amp;#039; section should end with &amp;#039;end&amp;#039;.&lt;br /&gt;
end -- As should &amp;#039;function&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
function p.Name2(frame)&lt;br /&gt;
	-- The next five lines are mostly for convenience only and can be used as is for your module. The output conditions start on line 50.&lt;br /&gt;
	local pf = frame:getParent().args -- This line allows template parameters to be used in this code easily. The equal sign is used to define variables. &amp;#039;pf&amp;#039; can be replaced with a word of your choice.&lt;br /&gt;
	local f = frame.args -- This line allows parameters from {{#invoke:}} to be used easily. &amp;#039;f&amp;#039; can be replaced with a word of your choice.&lt;br /&gt;
	local M = f[1] or pf[1] -- f[1] and pf[1], which we just defined, refer to the first parameter. This line shortens them as &amp;#039;M&amp;#039; for convenience. You could use the original variable names.&lt;br /&gt;
	local m = f[2] or pf[2] -- Second shortened as &amp;#039;m&amp;#039;.&lt;br /&gt;
	local l = f.lucky or pf.lucky -- A named parameter &amp;#039;lucky&amp;#039; is shortend as l. Note that the syntax is different from unnamed parameters.&lt;br /&gt;
	if m == nil then -- If the second parameter is not used.&lt;br /&gt;
		return &amp;#039;Potato&amp;#039; -- Outputs the string &amp;#039;Potato&amp;#039; if the first condition is met.&lt;br /&gt;
	elseif M &amp;gt; m then -- If the first condition is not met, this line tests a second condition: if M is greater than m.&lt;br /&gt;
		return lucky(M - m, l) -- If the condition is met, the difference is calculated and passed to the self defined function along with l. The output depends on whether l is set to &amp;#039;yeah&amp;#039;.&lt;br /&gt;
	else&lt;br /&gt;
		return &amp;#039;Vegetable!&amp;#039;&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p    --All modules end by returning the variable containing their functions to Wikipedia.&lt;br /&gt;
-- Now we can use this module by calling {{#invoke: Example | hello }},&lt;br /&gt;
-- {{#invoke: Example | hello_to | foo }}, or {{#invoke:Example|count_fruit|bananas=5|apples=6}}&lt;br /&gt;
-- Note that the first part of the invoke is the name of the Module&amp;#039;s wikipage,&lt;br /&gt;
-- and the second part is the name of one of the functions attached to the &lt;br /&gt;
-- variable that you returned.&lt;br /&gt;
&lt;br /&gt;
-- The &amp;quot;print&amp;quot; function is not allowed in Wikipedia.  All output is accomplished&lt;br /&gt;
-- via strings &amp;quot;returned&amp;quot; to Wikipedia.&lt;/div&gt;</summary>
		<author><name>Imahero</name></author>
	</entry>
</feed>