Jump to content

Module:Lua call/doc

From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by Patrick (talk | contribs) at 04:30, 14 June 2021. The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.


This module allows you to call any one single preinstalled Lua function, so that you don't need to write a module for one desired feature.

The module may generate script errors -- whenever your call isn't valid Lua code, you see the error you would normally have. For example,

{{#invoke:LuaCall|main|value=1.4512|math.fmod(value)}}Lua error in Module:Lua_call at line 36: bad argument #2 to 'reserved_call' (number expected, got no value).

because the second value is lacking. No effort is made to trap these.

Usage

{{#invoke:LuaCall|main|''arbitrary variables''|''parameters''|''function''}}

The arbitrary variables are any key of your choice = any value of your choice. Values are interpreted as strings unless tonumber(value) is not NaN - i.e. numbers should be converted to the numeric type. No effort is made to interpret tables.

The parameters all begin with reserved_, which arbitrary variable should use.

  • reserved_return sets which output from the function you want, and defaults to 1. For example, setting it to 2 for mw.ustring.gsub will return the number of replacements made.
  • reserved_debug - nonzero value forces display of a not particularly useful debug text

The function is written as some.function.name(a,b,c) where some.function.name means something in the Extension:Scribunto/Lua_reference_manual and a,b,c are the arbitrary variable names you've chosen.

Examples

{{#invoke:LuaCall|main|a=test |b=7|string.rep(a,b)}} → test test test test test test test 

{{#invoke:LuaCall|main|pattern=(%a)|replace=%1.|string=I can't get no satisfaction|mw.ustring.gsub(string,pattern,replace)|reserved_return=1}} → I. c.a.n.'t. g.e.t. n.o. s.a.t.i.s.f.a.c.t.i.o.n.

{{#invoke:LuaCall|main|pattern=(%a)|replace=%1.|string=I can't get no satisfaction|mw.ustring.gsub(string,pattern,replace)|reserved_return=2}} → 22

{{#invoke:LuaCall|main|value=1.4512|math.ceil(value)}} → 2

{{#invoke:LuaCall|main|value=1.4512|math.modf(value)}} → 1

{{#invoke:LuaCall|main|value=1.4512|math.modf(value)|reserved_return=2}} → 0.4512

{{#invoke:LuaCall|main|mw.text.nowiki(s)|s={{URL|1=https://www.Amazon.com/}}}} → <span class="url">[https://www.Amazon.com/ www<wbr/>.amazon<wbr/>.com]</span>

{{#invoke:LuaCall|call|string.format|%04x|127}} → 007f

{{#invoke:LuaCall|call|math.modf|1.4512}} → 1

{{#invoke:LuaCall|call|math.modf|1.4512|return=2}} → 1