Module:Ustring/doc: Difference between revisions
More actions
No edit summary |
No edit summary |
||
(One intermediate revision by the same user not shown) | |||
Line 1: | Line 1: | ||
{{ | {{doc sub}} | ||
<!-- Please place categories where indicated at the bottom of this page and interwikis at Wikidata (see [[Wikipedia:Wikidata]]) --> | <!-- Please place categories where indicated at the bottom of this page and interwikis at Wikidata (see [[Wikipedia:Wikidata]]) --> | ||
This module directly imports all functions from the {{luaref|Ustring library|mw.ustring}} library. Documentation for each function can be found there. | This module directly imports all functions from the {{luaref|Ustring library|mw.ustring}} library. Documentation for each function can be found there. | ||
Line 106: | Line 105: | ||
[[Category:Modules]] | [[Category:Modules]] | ||
}}</includeonly><noinclude> | }}</includeonly><noinclude> | ||
[[Category:Module | [[Category:Module documents]] | ||
</noinclude> | </noinclude> |
Latest revision as of 00:53, 10 March 2025
This is a documentation subpage for Module:Ustring. It may contain usage information, categories and other content that is not part of the original module page. |
This module directly imports all functions from the mw.ustring
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 \
.
To pass this... | Write this | Explanation |
---|---|---|
" 0123 " |
\ 123 | To get surrounding whitespace must use unnamed, but must precede with \ to indicate that it isn't a number.
|
"0123" |
s1=0123 | s1= etc. |
"0123" |
1=\0123 | 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
frame:extensionTag
Usage
{{#invoke:Ustring|function_name|arg1|arg2|...}}
is equivalent to mw.ustring.function_name
( arg1, arg2, ... )
Example using mw.ustring.sub
{{#invoke:Ustring|sub|s1=abcde|2|4}}
produces:
bcd
Example using mw.ustring.gsub
{{#invoke:Ustring|gsub|s1=1234|23|}}
produces:
14
Example using mw.ustring.char
&#{{#invoke:ustring|char|49|48|59}}
produces:
Example using mw.ustring.match
{{#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
{{#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:
if not fargs.tag then
return (what(unpack(args))) -- Outside parens truncate to first result avoiding tail call
end
local tagargs = {}
for x, y in pairs(fargs) do
if not fargsused[x] then tagargs[x] = y end
end
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
Errors from accessing mw.ustring
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.