Module:Convert/sandbox/doc
![]() | This is a documentation subpage for Module:Convert/sandbox. It may contain usage information, categories and other content that is not part of the original module page. |
This module converts a value from one unit of measurement to another. For example:
{{convert|123|lb|kg}}
→ 123 pounds (56 kg)
The module is called using a template—parameters passed to the template are used by this module to control how a conversion is performed. For example, units can be abbreviated (like kg
), or displayed as names (like kilogram
), and the output value can be rounded to a specified precision. For usage information, see the convert documentation.
The template that invokes this module is:
The following modules are required:
- Module:Convert – (this module) code to convert units
- Module:Convert/data – unit definitions
- Module:Convert/text – text messages and parameter names and values
The following modules are optional and are used only if required and if the module exists:
- Module:Convert/extra – extra (temporary) unit definitions; used if a unit is not found in Module:Convert/data
- Module:ConvertNumeric – code to spell an input value in words (only English is supported)
Many testcase pages are available. Currently, the testcases compare the output from the current Template:Convert with the output from Template:Convert/sandboxlua.
- Template:Convert/testcases – template tests
Units are defined in the wikitext of the master list of units. Wikitext copied from that page is translated to create the unit definitions by running a Lua script on a local computer.
- User:Johnuniq/Conversion data – master list of unit definitions
- Module:Convert/makeunits – script to translate wikitext from User:Johnuniq/Conversion data to Lua source for Module:Convert/data
Module:Convert/data is transcluded into every page using the convert module, so experimenting with a new unit in that module would involve a significant overhead. The Module:Convert/extra module is an alternative which is only transcluded on pages with a unit that is not defined in the main data module.
Sandbox
When making a change, copy the current modules to the sandbox pages, then edit the sandbox copies:
- Module:Convert/sandbox
- Module:Convert/data/sandbox
- Module:Convert/text/sandbox
- Module:Convert/extra/sandbox
Use the following template to test the results (example {{convert/sandbox|123|lb|kg}}
):
Template:Convert/sandbox invokes Module:Convert/sandbox with parameter sandbox = on
which causes convert to use the sandbox modules rather than the normal modules.
To do: Implement unit tests and document usage.
Configuration
The template that invokes this module can define options to configure the module. For example:
{{#invoke:convert | convert | numdot = , | numsep = . }}
- Sets the decimal mark to be a comma, and the thousands separator to be a dot.
Other options, with default values, are:
maxsigfig = 14
– maximum number of significant figureswarnings = off
– on if invalid options should show a warningsandbox = off
– on if the sandbox modules should be used
Other configuration is available in the translation_table
at Module:Convert/text. For example, bn:Module:Convert/text uses:
group = 2
– group numbers 3 digits, then 2 digitsplural_suffix = ''
– disable plural unit names (do not append "s")- Tables to translate digits to and from the English digits used in calculations.
Module:Convert/text contains all text used for input parameters and for output messages and categories. For example, lk=on
may be used at en.wikipedia to link each displayed unit to its article. The text module could be edited to replace "lk
" and "on
" with any desired text.