Difference between revisions of "Module:Ustring/doc"
Arcangelus (talk | contribs) (Taken from https://en.wikipedia.org/wiki/Module:Ustring/doc. It seems more modules are required to make this work.) |
|||
(One intermediate revision by the same user not shown) | |||
Line 3: | Line 3: | ||
− | This module directly imports all functions from the | + | 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 | + | 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 <code>\</code> 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 <code>\</code>. | Note that MediaWiki will always trim whitespace from named arguments; to give arguments with surrounding whitespace you must use unnamed parameters starting with <code>\</code>. | ||
Line 14: | Line 14: | ||
! To pass this... !! Write this !! Explanation | ! To pass this... !! Write this !! Explanation | ||
|- | |- | ||
− | | <code>" 0123 "</code> | + | | <code>" 0123 "</code> || \ 123 || To get surrounding whitespace must use unnamed, but must precede with <code>\</code> to indicate that it isn't a number. |
|- | |- | ||
− | | <code>"0123"</code> | | + | | <code>"0123"</code> || s1=0123 || If you don't need to preserve whitespace use s1= etc. |
|- | |- | ||
− | | <code>"0123"</code> | | + | | <code>"0123"</code> || 1=\0123 || If you don't need to preserve whitespace explicitly use 1= etc. |
|- | |- | ||
− | | In another template, to pass its parameter <code>{{{1}}}</code>, preserving whitespace | + | | In another template, to pass its parameter <code>{{{1}}}</code>, preserving whitespace || \{{{1}}} || Must provide the <code>\</code> with unknown string input. |
|- | |- | ||
− | | In another template, to pass its parameter <code>{{{1}}}</code>, stripping whitespace | | + | | In another template, to pass its parameter <code>{{{1}}}</code>, stripping whitespace || s1={{{1}}} || |
|- | |- | ||
− | | In another template, to pass its parameter <code>{{{1}}}</code>, stripping whitespace | | + | | In another template, to pass its parameter <code>{{{1}}}</code>, stripping whitespace || 1=<nowiki>\{{#if:1|{{{1}}}}}</nowiki>}} || |
|} | |} | ||
Line 100: | Line 100: | ||
{{script error|Script error: "maxPatternLength" is not a function.}} | {{script error|Script error: "maxPatternLength" is not a function.}} | ||
− | |||
− | |||
<includeonly>{{#ifeq:{{SUBPAGENAME}}|sandbox | | | <includeonly>{{#ifeq:{{SUBPAGENAME}}|sandbox | | | ||
<!-- Categories below this line, please; interwikis at Wikidata --> | <!-- Categories below this line, please; interwikis at Wikidata --> | ||
[[Category:Modules that manipulate strings|*]] | [[Category:Modules that manipulate strings|*]] | ||
}}</includeonly> | }}</includeonly> |
Latest revision as of 03:31, 23 December 2024
Taken from https://en.wikipedia.org/wiki/Module:Ustring/doc
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 | If you don't need to preserve whitespace use s1= etc. |
"0123" |
1=\0123 | If 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 Template:Luaref
Usage[edit]
{{#invoke:Ustring|function_name|arg1|arg2|...}}
is equivalent to Template:Luaref
Example using mw.ustring.sub[edit]
{{#invoke:Ustring|sub|s1=abcde|2|4}}
produces:
bcd
Example using mw.ustring.gsub[edit]
{{#invoke:Ustring|gsub|s1=1234|23|}}
produces:
14
Example using mw.ustring.char[edit]
&#{{#invoke:ustring|char|49|48|59}}
produces:
Example using mw.ustring.match[edit]
{{#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[edit]
{{#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[edit]
Errors from accessing Template:Luaref should be maintained, e.g.:
{{#invoke:Ustring|xyzzy}}
should produce:
and
{{#invoke:Ustring|maxPatternLength}}
should produce: