Changes

2,653 bytes added ,  04:44, 16 July 2021
Pywikibot 6.4.0
{{Module rating|alpha}}

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,

{{demo inline|<nowiki>
{{#invoke:LuaCall|main|value=1.4512|math.fmod(value)}}</nowiki>}}

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

==Usage==
<nowiki>{{#invoke:LuaCall|main|''arbitrary variables''|''parameters''|''function''}}</nowiki>

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 [[mw:Extension:Scribunto/Lua_reference_manual|Extension:Scribunto/Lua_reference_manual]] and a,b,c are the arbitrary variable names you've chosen.

==Examples==
{{demo inline|<nowiki>{{#invoke:LuaCall|main|a=test&nbsp;|b=7|string.rep(a,b)}}</nowiki>}}

{{demo inline|<nowiki>{{#invoke:LuaCall|main|pattern=(%a)|replace=%1.|string=I can't get no satisfaction|mw.ustring.gsub(string,pattern,replace)|reserved_return=1}}</nowiki>}}

{{demo inline|<nowiki>{{#invoke:LuaCall|main|pattern=(%a)|replace=%1.|string=I can't get no satisfaction|mw.ustring.gsub(string,pattern,replace)|reserved_return=2}}</nowiki>}}

{{demo inline|<nowiki>{{#invoke:LuaCall|main|value=1.4512|math.ceil(value)}}</nowiki>}}

{{demo inline|<nowiki>{{#invoke:LuaCall|main|value=1.4512|math.modf(value)}}</nowiki>}}

{{demo inline|<nowiki>{{#invoke:LuaCall|main|value=1.4512|math.modf(value)|reserved_return=2}}</nowiki>}}

{{demo inline|<nowiki>{{#invoke:LuaCall|main|mw.text.nowiki(s)|s={{URL|1=https://www.Amazon.com/}}}}</nowiki>}}

{{demo inline|<nowiki>{{#invoke:LuaCall|call|string.format|%04x|127}}</nowiki>}}

{{demo inline|<nowiki>{{#invoke:LuaCall|call|math.modf|1.4512}}</nowiki>}}

{{demo inline|<nowiki>{{#invoke:LuaCall|call|math.modf|1.4512|return=2}}</nowiki>}}

<includeonly>{{#ifeq:{{SUBPAGENAME}}|sandbox | |
<!-- Template categories below this line, please -->

}}</includeonly>