Jump to content

Fyrimynd:Escape

Frá Wikipedia, hin frælsa alfrøðin
Documentation icon Skjalfesting til fyrimyndina[vís] [rætta] [søga] [dagfør]

While primarily intended for use by other Lua modules, it can provide an alternative to multiple <nowiki>...</nowiki> tags when part of the desire output should be executed.

For example, {{demo}} normally requires the demonstrated template to be wrapped in <nowiki>...</nowiki>. However, you may want part of the value to be shown in the 'pre' tag to be processed before it reaches {{demo}}, such as in the example below where the result of {{#invoke:Escape/testcases|test_string2}} is shown inside the <pre>...</pre> tags.

Code Result
{{demo
|<!--not escaped: -->{{escape | mode = kill 
  | char=; 
  | {*{#invoke:Escape ; main ; mode {{=}} kill ;
<!--unescaped:-->{{#invoke:Escape/testcases|test_string2}}<br>; { }*} 
  | * 
  | {{!}} }}
}}
{{#invoke:Escape | main | mode = kill |
test { test {\{ test, \test, \{,test\ \ \ {\
| { }}

test test { test, test, {,test
Note how the
*
character, used to break up the
{{
to prevent execution, is removed and how the
;
character is replaced by
|
.

Non-execution

[rætta wikitekst]

After removal of the escape chars, the returned text is inert; i.e. not executed even without <pre>...</pre>. (The above example is executed only because {{demo}} forces execution.)

For example, setting |mode=kill with
\{\{done\}\
} as the first parameter and nothing else will simply cause the default escape character
\
to be removed:

{{done}}

Original:

[rætta wikitekst]

test { test {\{ test, \test, \{,test\ \ \ {\

Using internal method to remove
{
:

[rætta wikitekst]
{{escape|mode=kill|test { test {\{ test, \test, \{,test\ \ \ {\|{}}
test test { test, test, {,test \

Using {{replace}} to remove
{
:

[rætta wikitekst]
{{escape|mode=undo|{{replace|{{escape|mode=text|test { test {\{ test, \test, \{,test\ \ \ {\}}|{|}}}}
test test { test, test, {,test \

No removal of
{
between escape/unescape (escape char not restored):

[rætta wikitekst]
{{escape|mode=undo
|{{escape|mode=text|test { test {\{ test, \test, \{,test\ \ \ {\}}
}}
test { test {{ test, test, {,test {\

Restore to original after escape

[rætta wikitekst]
{{escape|mode=undo
|{{escape|mode=text|test { test {\{ test, \test, \{,test\ \ \ {\}}
|\
}}
test { test {\{ test, \test, \{,test\ \ \ {\

Remove the word
test
if not escaped and then place a different escape char in the place of the old escape char (for use by something else):

[rætta wikitekst]

Note: The '%' char is a special in Lua, so use '%%' if that is the desired replacement. Otherwise, just a single char is fine (or a word).

{{escape|mode=kill
|test { test {\{ test, \test, \{,test\ \ \ {\
|test
|%%
}}
{ {%{ , %test, %{,% % % {\