Module:Static/doc: Difference between revisions

From Modded Wiki
Jump to navigation Jump to search
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":

Revision as of 14:48, 24 April 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.


zh:Module:Static/doc