Module:Static/doc: Difference between revisions
Add docs |
m 11 revisions imported |
||
(10 intermediate revisions by 2 users not shown) | |||
Line 10: | Line 10: | ||
function p.main() | function p.main() | ||
local static = require('Module:Static') | local static = require( 'Module:Static' ) | ||
static.x = (static.x or 0) + 1 | static.x = ( static.x or 0 ) + 1 | ||
return static.x | return static.x | ||
end | end | ||
Line 19: | Line 19: | ||
If the above code sample was stored in <code>Module:foo</code> and then <code><nowiki>{{#Invoke:foo|main}} {{#Invoke:foo|main}}</nowiki></code> would result in <code>1 2</code>. | If the above code sample was stored in <code>Module:foo</code> and then <code><nowiki>{{#Invoke:foo|main}} {{#Invoke:foo|main}}</nowiki></code> would result in <code>1 2</code>. | ||
== Dev spec == | |||
Because data stored through this module can be invoked by any modules used in the same page. To avoid being interfered with by other modules, a module '''MUST''' store data in their own namespace (a sub-table, see below), and '''NEVER''' modify data in other namespace. | |||
For example, in "Module:Example": | |||
<syntaxhighlight lang='lua'> | |||
... | |||
local static = require( 'Module:Static' ) | |||
if not static.Example then | |||
static.Example = {} | |||
end | |||
static.Example.exampleData = 3 | |||
... | |||
</syntaxhighlight> | |||
Data stored by a module, must be stored in a sub-table with the same name of that module (capitalize the first letter, and all spaces replaced with underscores). This sub-table should being initialized immediately after the invocation of this module. | |||
<includeonly>{{sandbox other|| | <includeonly>{{sandbox other|| | ||
<!-- Template categories/interwikis here --> | <!-- Template categories/interwikis here --> | ||
[[Category: | [[Category:Meta modules]] | ||
[[es:Módulo:Static]] | |||
[[fr:Module:Static]] | |||
[[pt:Módulo:Static]] | |||
[[ru:Модуль:Статические данные]] | |||
[[zh:Module:Static]] | |||
}}</includeonly> | }}</includeonly> | ||
<noinclude> | <noinclude> | ||
<!-- Documentation categories/interwikis here --> | <!-- Documentation categories/interwikis here --> | ||
[[es:Módulo:Static/doc]] | |||
[[fr:Module:Static/doc]] | |||
[[pt:Módulo:Static/doc]] | |||
[[ru:Модуль:Статические данные/док]] | |||
[[zh:Module:Static/doc]] | |||
</noinclude> | </noinclude> |
Latest revision as of 08:07, 4 July 2024
Usage
This module returns a table that can store data that persists in between multiple {{#Invoke:}}
calls.
Example:
local p = {}
function p.main()
local static = require( 'Module:Static' )
static.x = ( static.x or 0 ) + 1
return static.x
end
return p
If the above code sample was stored in Module:foo
and then {{#Invoke:foo|main}} {{#Invoke:foo|main}}
would result in 1 2
.
Dev spec
Because data stored through this module can be invoked by any modules used in the same page. To avoid being interfered with by other modules, a module MUST store data in their own namespace (a sub-table, see below), and NEVER modify data in other namespace.
For example, in "Module:Example":
...
local static = require( 'Module:Static' )
if not static.Example then
static.Example = {}
end
static.Example.exampleData = 3
...
Data stored by a module, must be stored in a sub-table with the same name of that module (capitalize the first letter, and all spaces replaced with underscores). This sub-table should being initialized immediately after the invocation of this module.
es:Módulo:Static/doc fr:Module:Static/doc pt:Módulo:Static/doc ru:Модуль:Статические данные/док zh:Module:Static/doc