Content deleted Content added
→Example using mw.ustring.char: Remove example as it does not look like the sort of code to encourage |
Document s1, s2, etc, parameters |
||
Line 3:
This module directly imports all functions from the {{luaref|Ustring library|mw.ustring}} library. Documentation for each function can be found there.
The module takes an indefinite number of arguments. Arguments given as {{para|s1}}, {{para|s2}}, etc, are read first, and are used as strings. All remaining numerical arguments are coerced
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>.
{| class="wikitable"
|+ How to pass inconvenient strings
|-
! To pass this... !! Write this !! Explanation
|-
| <code>" 0123 "</code> || {{para||\ 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> || {{para|s1|0123}} || If you don't need to preserve whitespace use {{para|s1}} etc.
|-
| In another template, to pass its parameter <code>{{{1}}}</code>, preserving whitespace || {{para||\{{{1}}}}} || Must provide the <code>\</code> with unknown string input.
|-
| In another template, to pass its parameter <code>{{{1}}}</code>, stripping whitespace || {{para|s1|{{{1}}}}} ||
|}
You can also wrap results in tags. All non-number indexed arguments will be passed to {{luaref|frame:extensionTag}}
Line 12 ⟶ 28:
===Example using mw.ustring.sub===
<code><nowiki>{{#invoke:Ustring|sub|s1=abcde|2|4}}</nowiki></code>
produces:
{{#invoke:Ustring|sub|s1=abcde|2|4}}
===Example using mw.ustring.gsub===
<code><nowiki>{{#invoke:Ustring|gsub|s1=1234|23|}}</nowiki></code>
produces:
{{#invoke:Ustring|gsub|s1=1234|23|}}
===Example using mw.ustring.char===
Line 33 ⟶ 49:
===Example using mw.ustring.match===
<code><nowiki>{{#invoke:Ustring|match|s1=abcde|s2=(c%w)}}</nowiki></code>
produces:
{{#invoke:Ustring|match|s1=abcde|s2=(c%w)}}
Note: Only the first match is returned. Additional returns are omitted because mw.ustring.gsub's second return value is generally undesirable.
Line 43 ⟶ 59:
===Example using tag arguments===
<pre>{{#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}}</pre>
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
|tag=syntaxhighlight|lang=lua}}
Line 54 ⟶ 70:
Note that:
{{#tag:pre|<nowiki><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></nowiki>}}
produces:
<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>
|