Jump to content

Module:LuaCall/doc

From Wikiversity

This is the documentation page for Module:LuaCall

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.

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

[edit source]
  • {{#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

Errors

[edit source]

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 35: bad argument #2 to 'reserved_call' (number expected, got no value).

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