Yiɣi chaŋ yɛligu maŋamaŋa puuni

Module:Ustring

Diyila Dagbani Wikipedia

This module directly imports all functions from the Tɛmplet:Scribunto/helper library. Documentation for each function can be found there.

The module takes an indefinite number of arguments. Arguments given as |s1=, |s2=, etc, are read first, and are used as strings. All remaining numerical arguments are coerced to number type if possible, and remain strings if not. If you wish for a numerical (i.e. unnamed or "|1=", "|2=") to remain a string, you can simply escape it by inserting \ at the beginning of the string.

Note that MediaWiki will always trim whitespace from named arguments; to give arguments with surrounding whitespace you must use unnamed parameters starting with \.

How to pass inconvenient strings
To pass this...Write thisExplanation
" 0123 "|\ 123 To get surrounding whitespace must use unnamed, but must precede with \ to indicate that it isn't a number.
"0123"|s1=0123If you don't need to preserve whitespace use |s1= etc.
"0123"|1=\0123If you don't need to preserve whitespace explicitly use |1= etc.
In another template, to pass its parameter {{{1}}}, preserving whitespace|\{{{1}}}Must provide the \ with unknown string input.
In another template, to pass its parameter {{{1}}}, stripping whitespace|s1={{{1}}}
In another template, to pass its parameter {{{1}}}, stripping whitespace|1=\{{#if:1|{{{1}}}}}

You can also wrap results in tags. All other unused arguments will be passed to Tɛmplet:Scribunto/helper

{{#invoke:Ustring|function_name|arg1|arg2|...}} is equivalent to Tɛmplet:Scribunto/helper

Example using mw.ustring.sub

[mali mi di yibu sheena n-niŋ]

{{#invoke:Ustring|sub|s1=abcde|2|4}}

produces:

bcd

Example using mw.ustring.gsub

[mali mi di yibu sheena n-niŋ]

{{#invoke:Ustring|gsub|s1=1234|23|}}

produces:

14

Example using mw.ustring.char

[mali mi di yibu sheena n-niŋ]

&#{{#invoke:ustring|char|49|48|59}}

produces:




Example using mw.ustring.match

[mali mi di yibu sheena n-niŋ]

{{#invoke:Ustring|match|s1=abcde|s2=(c%w)}}

produces:

cd

Note: Only the first match is returned. Additional returns are omitted because mw.ustring.gsub's second return value is generally undesirable.

Example using tag arguments

[mali mi di yibu sheena n-niŋ]
{{#invoke:Ustring|match |s1={{Module:Ustring}}|%s%s%sif%snot%s[^%s]+%sthen.+% <!--enter an actual newline character to match '\n'-->%s%s%send |tag=syntaxhighlight|lang=lua}}

produces:

ifnotfargs.tagthenreturn(what(unpack(args)))-- Outside parens truncate to first result avoiding tail callendlocaltagargs={}forx,yinpairs(fargs)doifnotfargsused[x]thentagargs[x]=yendend

Note that:

<syntaxhighlight lang="lua">{{#invoke:Ustring|match |s1={{Module:Ustring}}|%s%s%sif%snot%s[^%s]+%sthen.+% <!--enter an actual newline character to match '\n'-->%s%s%send}}</syntaxhighlight>

produces:

{{#invoke:Ustring|match|s1={{Module:Ustring}}|%s%s%sif%snot%s[^%s]+%sthen.+%<!--enter an actual newline character to match '\n'-->%s%s%send}}

Errors from accessing Tɛmplet:Scribunto/helper should be maintained, e.g.:

{{#invoke:Ustring|xyzzy}}

should produce:

Script error: The function "xyzzy" does not exist.

and

{{#invoke:Ustring|maxPatternLength}}

should produce:

Script error: "maxPatternLength" is not a function.

Tɛmplet:String handling templates


require('strict')returnsetmetatable({},{__index=function(t,k)localwhat=mw.ustring[k]iftype(what)~="function"thenreturnwhatendreturnfunction(frame)localfargs=frame.argslocalfargsused={tag=true}localargs={}localstr_i=1whilefargs['s'..str_i]dofargsused['s'..str_i]=trueargs[str_i]=fargs['s'..str_i]str_i=str_i+1endfori,vinipairs(fargs)dofargsused[i]=trueargs[i+str_i-1]=tonumber(v)orv:gsub("^\\","",1)endifnotfargs.tagthenreturn(what(unpack(args)))-- Outside parens truncate to first result avoiding tail callendlocaltagargs={}forx,yinpairs(fargs)doifnotfargsused[x]thentagargs[x]=yendendreturnframe:extensionTag{name=fargs.tag,content=what(unpack(args)),args=tagargs}endend})
close