Lua templating/Basics
< Lua templating
915pages on
this wiki
Add New Page
this wiki
Lua is implemented in MediaWiki wikis using the Scribunto/Lua extension and stored in resource pages using the Module: namespace.[1]
Create Your First Lua Script
To create your first Lua script:
- Navigate to Module:Sandbox.
- Clear all existing code.
- It's a sandbox. Everyone is free to play in the sandbox. But if you find another user is actively editing the sandbox at the same time, you may also use Module:Sandbox/Username, where Username is your Wikia username.
- Add the following code and save the page:
local p = {}
function p.hello()
return 'Hello!'
end
return p
Test Your First Lua Script
To test your first Lua script:
- Navigate to either the Module_talk:Sandbox page, or your own user or sandbox page.
- Add the following code and save the page:
{{#invoke:Sandbox|hello}}
The result should be:
Hello!
Edit Your First Lua Script
To edit your first Lua script:
- Return to the Module:Sandbox.
- Edit the line with
return 'Hello!'and add your name inside the single quotes. You should end up with something likereturn 'Hello Lua!'. - Save the page.
- Return to the sandbox test page you used above to test your changes. Using the module's talk page is very convenient for quick testing.
- Refresh the page to see your name returned from the script.
The result should be similar to:
Hello Lua!
Understand Your First Lua Script
Now that you see what the script does, it's time to understand how it works.
-
local p = {}creates a local table or array for your code and names itp. -
function p.hello()adds a function namedhelloto the table. Functions can be invoked (called) by name from outside the module. -
return 'Hello!'returns the stringHello!when the function is invoked (called). -
endends the function. -
return preturns the code table to whatever process loads this Lua module.
The code that runs the script includes:
-
invoke:invokes (calls) a Lua module, and loads something -
Sandboxspecifies the name of the module to be loaded. -
hellospecifies the name of the function inside the module that is to be invoked (called).
| {{#invoke:Sandbox|hello}} | Keyword | 1st Parameter | 2nd Parameter |
|
Code |
#invoke: |
Sandbox |
hello |
|
What it does |
specifies action - here load module and implement function |
specifies the name of the module to be loaded |
specifies the name of the function inside the module that is to be invoked (called). |
Conclusion
Congratulations! You've now created, tested, edited, and understood your first Lua script.
Learn more
- See Wikiversity:Lua for more lessons
- See Wikibooks:Lua for lua basics