Module:LuaCall/doc

From wikiNonStop

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.

Usage

Main

{{#invoke:LuaCall|main|arbitrary variables|parameters|functioncall}}

The arbitrary variables are any key of your choice = any value of your choice. Values are interpreted as strings unless

tonumber(value)

isn't

nil

, 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 functioncall 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

Main

  • {{#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>

Call

  • {{#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

Errors

The module may generate script errors — whenever your call is not 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:LuaCall 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.