Anonymous

Changes

From Open Educational Resources
5,336 bytes added ,  10:32, 17 November 2016
m
1 revision imported
<!-- Curly brackets matching should ignore [^}], \{{!}}; insource:/\{} is OK.
--><onlyinclude><!--
Make a search link.
-->{{plain link
|url =
{{fullurl:Special:Search|search=<!--
-->{{urlencode:<!-- encodes spaces, so let's avoid unecessary spaces.

Build this query:
hastemplate: template insource:/\{\{ *[Tt]emplate *\| *[^}]*pattern/

Add the ever present "hastemplate:" filter and a space
-->hastemplate:"{{{template|{{{1|Template usage}}}}}}" <!--

Add the "insource:/\{\{ *"
-->insource:/\{\{ *<!--

Add the "[Tt]".
Save from an expensive, /regexp/i.
-->[{{#invoke:String|sub<!-- saw first [ of a "[Tt]" -->
|{{uc:{{{template|{{{1|Template usage}}}}}}}}|1|1}}{{#invoke:String|sub
|{{lc:{{{template|{{{1|Template usage}}}}}}}}|1|1}}]{{#invoke:String|sub
<!-- ^
You saw ].

Add "emplate", the rest of the template name, starting from char 2.-->
|{{{template|{{{1|Template usage}}}}}}|2}}<!--

Add the tricky regexp part.
--> *\{{!}}[^}]*<!-- optional space " *" around initial pipe
initial pipe is \|, i.e. \{{!}}
Trickiest part: [character class] inverted with ^: [^any char NOT }]
Zero or more (*) of those "non-curly brackets".
All this stuff always matches, shows in bold in the search results

Add the users regexp pattern part and closing /.
-->{{{pattern|{{{2|''regexp''}}}}}}/<!--

Add "prefix:" You see the space before it.
--> prefix:<!--
-->{{#switch:<!-- add namespace "numbers and letters" recognition -->
{{{prefix|{{{3|}}}}}}
|#default = {{{prefix|{{{3|{{FULLPAGENAME}}}}}}}}
|n = {{NAMESPACE}}
|0|: = :
|1 = {{ns:1}}:
|2 = {{ns:2}}:
|3 = {{ns:3}}:
|4 = {{ns:4}}:
|5 = {{ns:5}}:
|6 = {{ns:6}}:
|7 = {{ns:7}}:
|8 = {{ns:8}}:
|9 = {{ns:9}}:
|10 = {{ns:10}}:
|11 = {{ns:11}}:
|12 = {{ns:12}}:
|13 = {{ns:13}}:
|14 = {{ns:14}}:
|15 = {{ns:15}}:
|100 = {{ns:100}}:
|101 = {{ns:101}}:
|108 = {{ns:108}}:
|109 = {{ns:109}}:
|118 = {{ns:118}}:
|119 = {{ns:119}}:
|446 = {{ns:446}}:
|447 = {{ns:447}}:
|711 = {{ns:711}}:
|710 = {{ns:710}}:
|828 = {{ns:828}}:
|829 = {{ns:829}}:
|2600 = {{ns:2600}}:
}}
}}<!-- End urlencode. -->
}}<!-- End fullurl
url done
Now for name param of plainlinks.

Appearance of link looks just like the query, unless labeled.
So we're rebuilding the query just for show this time. -->
|name = <!-- for commentary see duplicate above -->
{{#if:
{{{label|{{{4|}}}}}}
|{{{label|{{{4}}}}}}
|{{#if:
{{{prefix|{{{3|}}}}}}

|hastemplate:"{{{template|{{{1|Template usage}}}}}}" <!--
-->insource:/\{\{ *<!--
-->&#91;{{#invoke:String|sub<!-- saw first [ of a "[Tt]" -->
|{{uc:{{{template|{{{1|Template usage}}}}}}}}|1|1}}{{#invoke:String|sub
|{{lc:{{{template|{{{1|Template usage}}}}}}}}|1|1}}&#93;{{#invoke:String|sub
|{{{template|{{{1|Template usage}}}}}}|2}}<!-- ^
--> *\{{!}}&#91;^}&#93;*<!-- optional space " *" around initial pipe
-->{{#invoke:String|replace
|{{#invoke:String|replace
|{{{pattern|{{{2|''regexp''}}}}}}<!-- Given pattern
-->|[|&#91;}}<!-- Replace any/all [ with HTML symbol
-->|]|&#93;}}/<!-- replace any/all ] with there HTML symbol
--> prefix:<!--
-->{{#switch:<!-- add namespace "numbers and letters" recognition -->
{{{prefix|{{{3|}}}}}}
|#default = {{{prefix|{{{3|{{FULLPAGENAME}}}}}}}}
|n = {{NAMESPACE}}
|0|: = <nowiki />:
|1 = {{ns:1}}:
|2 = {{ns:2}}:
|3 = {{ns:3}}:
|4 = {{ns:4}}:
|5 = {{ns:5}}:
|6 = {{ns:6}}:
|7 = {{ns:7}}:
|8 = {{ns:8}}:
|9 = {{ns:9}}:
|10 = {{ns:10}}:
|11 = {{ns:11}}:
|12 = {{ns:12}}:
|13 = {{ns:13}}:
|14 = {{ns:14}}:
|15 = {{ns:15}}:
|100 = {{ns:100}}:
|101 = {{ns:101}}:
|108 = {{ns:108}}:
|109 = {{ns:109}}:
|118 = {{ns:118}}:
|119 = {{ns:119}}:
|446 = {{ns:446}}:
|447 = {{ns:447}}:
|711 = {{ns:711}}:
|710 = {{ns:710}}:
|828 = {{ns:828}}:
|829 = {{ns:829}}:
|2600 = {{ns:2600}}:
}}
|{{#invoke:String|replace
|{{#invoke:String|replace
|'''Testing''' <kbd>{{{pattern|{{{2}}}}}}</kbd> '''on this page'''<!--
-->|[|&#91;}}<!-- Replace any/all [ with HTML symbol
-->|]|&#93;}}<!-- replace any/all ] with there HTML symbol-->
}}
}}
}}<!-- End of plainlinks
--></onlyinclude><noinclude>{{Documentation}}</noinclude>