Module:Static/doc: Difference between revisions

From Modded Wiki
Jump to navigation Jump to search
m 11 revisions imported
 
(5 intermediate revisions by 2 users not shown)
Line 21: Line 21:


== Dev spec ==
== 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, and '''NEVER''' modify data in other namespace.
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":
For example, in "Module:Example":
Line 39: Line 39:
<!-- Template categories/interwikis here -->
<!-- Template categories/interwikis here -->
[[Category:Meta modules]]
[[Category:Meta modules]]
 
[[es:Módulo:Static]]
[[fr:Module:Static]]
[[pt:Módulo:Static]]
[[ru:Модуль:Статические данные]]
[[zh:Module:Static]]
[[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]]
[[zh:Module:Static/doc]]
</noinclude>
</noinclude>

Latest revision as of 08:07, 4 July 2024

This is the documentation page. It is transcluded into Module:Static. See Template:Documentation for more information.

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