This module was made as a sandbox for the user Speedit. This documentation is kept to prevent redlinks.
-- <nowiki>
--------------------------------------------------------------------------------
-- COMMON INPUTS
--------------------------------------------------------------------------------
local PARAMETERS = {
'""',
'\'\'',
'',
'"value"',
'\'value\'',
'description',
'name=""',
'name=\'\'',
'name=',
'name="value"',
'name=\'value\'',
'name=description',
'name=description=',
'name=""',
'name=\'\'',
'name=',
'name="value"',
'name=\'value\'',
'name=description',
'name=description='
}
local PARAMETERS2 = table.concat(PARAMETERS, '|'):gsub('=', '{{=}}')
--------------------------------------------------------------------------------
-- COMMON OUTPUTS
--------------------------------------------------------------------------------
local TRANSCLUSION_MODE_OUTPUT = table.concat{
'<code data-t-role="wrapper" data-t-mode="transclusion" style="all:unset;font-family:monospace;">',
'<span data-t-role="opener">{{[[Template:title|title]]</span>',
'<span data-t-role="parameter" data-t-index="1">',
'|',
'<span data-t-role="parameter-value"></span>',
'</span>',
'<span data-t-role="parameter" data-t-index="2">',
'|',
'<span data-t-role="parameter-value"></span>',
'</span>',
'<span data-t-role="parameter" data-t-index="3">',
'|',
'<span data-t-role="parameter-description" style="opacity:0.65;"><...></span>',
'</span>',
'<span data-t-role="parameter" data-t-index="4">',
'|',
'<span data-t-role="parameter-value">value</span>',
'</span>',
'<span data-t-role="parameter" data-t-index="5">',
'|',
'<span data-t-role="parameter-value">value</span>',
'</span>',
'<span data-t-role="parameter" data-t-index="6">',
'|',
'<span data-t-role="parameter-description" style="opacity:0.65;"><description></span>',
'</span>',
'<span data-t-role="parameter" data-t-index="7">',
'|',
'<span data-t-role="parameter-name" style="font-weight:bold;">name</span>',
' = ',
'<span data-t-role="parameter-value"></span>',
'</span>',
'<span data-t-role="parameter" data-t-index="8">',
'|',
'<span data-t-role="parameter-name" style="font-weight:bold;">name</span>',
' = ',
'<span data-t-role="parameter-value"></span>',
'</span>',
'<span data-t-role="parameter" data-t-index="9">',
'|',
'<span data-t-role="parameter-name" style="font-weight:bold;">name</span>',
' = ',
'<span data-t-role="parameter-description" style="opacity:0.65;"><...></span>',
'</span>',
'<span data-t-role="parameter" data-t-index="10">',
'|',
'<span data-t-role="parameter-name" style="font-weight:bold;">name</span>',
' = ',
'<span data-t-role="parameter-value">value</span>',
'</span>',
'<span data-t-role="parameter" data-t-index="11">',
'|',
'<span data-t-role="parameter-name" style="font-weight:bold;">name</span>',
' = ',
'<span data-t-role="parameter-value">value</span>',
'</span>',
'<span data-t-role="parameter" data-t-index="12">',
'|',
'<span data-t-role="parameter-name" style="font-weight:bold;">name</span>',
' = ',
'<span data-t-role="parameter-description" style="opacity:0.65;"><description></span>',
'</span>',
'<span data-t-role="parameter" data-t-index="13">',
'|',
'<span data-t-role="parameter-name" style="font-weight:bold;">name</span>',
' = ',
'<span data-t-role="parameter-description" style="opacity:0.65;"><description=></span>',
'</span>',
'<span data-t-role="parameter" data-t-index="14">',
'|',
'<span data-t-role="parameter-name" style="font-weight:bold;">name</span>',
' = ',
'<span data-t-role="parameter-value"></span>',
'</span>',
'<span data-t-role="parameter" data-t-index="15">',
'|',
'<span data-t-role="parameter-name" style="font-weight:bold;">name</span>',
' = ',
'<span data-t-role="parameter-value"></span>',
'</span>',
'<span data-t-role="parameter" data-t-index="16">',
'|',
'<span data-t-role="parameter-name" style="font-weight:bold;">name</span>',
' = ',
'<span data-t-role="parameter-description" style="opacity:0.65;"><...></span>',
'</span>',
'<span data-t-role="parameter" data-t-index="17">',
'|',
'<span data-t-role="parameter-name" style="font-weight:bold;">name</span>',
' = ',
'<span data-t-role="parameter-value">value</span>',
'</span>',
'<span data-t-role="parameter" data-t-index="18">',
'|',
'<span data-t-role="parameter-name" style="font-weight:bold;">name</span>',
' = ',
'<span data-t-role="parameter-value">value</span>',
'</span>',
'<span data-t-role="parameter" data-t-index="19">',
'|',
'<span data-t-role="parameter-name" style="font-weight:bold;">name</span>',
' = ',
'<span data-t-role="parameter-description" style="opacity:0.65;"><description></span>',
'</span>',
'<span data-t-role="parameter" data-t-index="20">',
'|',
'<span data-t-role="parameter-name" style="font-weight:bold;">name</span>',
' = ',
'<span data-t-role="parameter-description" style="opacity:0.65;"><description=></span>',
'</span>',
'<span data-t-role="closer">}}</span>',
'</code>'
}
local MULTILINE_TRANSCLUSION_MODE_OUTPUT = table.concat{
'<code data-t-role="wrapper" data-t-mode="transclusion" data-t-multiline="data-t-multiline" style="all:unset;font-family:monospace;">',
'<span data-t-role="opener">{{[[Template:title|title]]</span>',
'<span data-t-role="parameter" data-t-index="1" style="display:block;">',
'|',
'<span data-t-role="parameter-value"></span>',
'</span>',
'<span data-t-role="parameter" data-t-index="2" style="display:block;">',
'|',
'<span data-t-role="parameter-value"></span>',
'</span>',
'<span data-t-role="parameter" data-t-index="3" style="display:block;">',
'|',
'<span data-t-role="parameter-description" style="opacity:0.65;"><...></span>',
'</span>',
'<span data-t-role="parameter" data-t-index="4" style="display:block;">',
'|',
'<span data-t-role="parameter-value">value</span>',
'</span>',
'<span data-t-role="parameter" data-t-index="5" style="display:block;">',
'|',
'<span data-t-role="parameter-value">value</span>',
'</span>',
'<span data-t-role="parameter" data-t-index="6" style="display:block;">',
'|',
'<span data-t-role="parameter-description" style="opacity:0.65;"><description></span>',
'</span>',
'<span data-t-role="parameter" data-t-index="7" style="display:block;">',
'|',
'<span data-t-role="parameter-name" style="font-weight:bold;">name</span>',
' = ',
'<span data-t-role="parameter-value"></span>',
'</span>',
'<span data-t-role="parameter" data-t-index="8" style="display:block;">',
'|',
'<span data-t-role="parameter-name" style="font-weight:bold;">name</span>',
' = ',
'<span data-t-role="parameter-value"></span>',
'</span>',
'<span data-t-role="parameter" data-t-index="9" style="display:block;">',
'|',
'<span data-t-role="parameter-name" style="font-weight:bold;">name</span>',
' = ',
'<span data-t-role="parameter-description" style="opacity:0.65;"><...></span>',
'</span>',
'<span data-t-role="parameter" data-t-index="10" style="display:block;">',
'|',
'<span data-t-role="parameter-name" style="font-weight:bold;">name</span>',
' = ',
'<span data-t-role="parameter-value">value</span>',
'</span>',
'<span data-t-role="parameter" data-t-index="11" style="display:block;">',
'|',
'<span data-t-role="parameter-name" style="font-weight:bold;">name</span>',
' = ',
'<span data-t-role="parameter-value">value</span>',
'</span>',
'<span data-t-role="parameter" data-t-index="12" style="display:block;">',
'|',
'<span data-t-role="parameter-name" style="font-weight:bold;">name</span>',
' = ',
'<span data-t-role="parameter-description" style="opacity:0.65;"><description></span>',
'</span>',
'<span data-t-role="parameter" data-t-index="13" style="display:block;">',
'|',
'<span data-t-role="parameter-name" style="font-weight:bold;">name</span>',
' = ',
'<span data-t-role="parameter-description" style="opacity:0.65;"><description=></span>',
'</span>',
'<span data-t-role="parameter" data-t-index="14" style="display:block;">',
'|',
'<span data-t-role="parameter-name" style="font-weight:bold;">name</span>',
' = ',
'<span data-t-role="parameter-value"></span>',
'</span>',
'<span data-t-role="parameter" data-t-index="15" style="display:block;">',
'|',
'<span data-t-role="parameter-name" style="font-weight:bold;">name</span>',
' = ',
'<span data-t-role="parameter-value"></span>',
'</span>',
'<span data-t-role="parameter" data-t-index="16" style="display:block;">',
'|',
'<span data-t-role="parameter-name" style="font-weight:bold;">name</span>',
' = ',
'<span data-t-role="parameter-description" style="opacity:0.65;"><...></span>',
'</span>',
'<span data-t-role="parameter" data-t-index="17" style="display:block;">',
'|',
'<span data-t-role="parameter-name" style="font-weight:bold;">name</span>',
' = ',
'<span data-t-role="parameter-value">value</span>',
'</span>',
'<span data-t-role="parameter" data-t-index="18" style="display:block;">',
'|',
'<span data-t-role="parameter-name" style="font-weight:bold;">name</span>',
' = ',
'<span data-t-role="parameter-value">value</span>',
'</span>',
'<span data-t-role="parameter" data-t-index="19" style="display:block;">',
'|',
'<span data-t-role="parameter-name" style="font-weight:bold;">name</span>',
' = ',
'<span data-t-role="parameter-description" style="opacity:0.65;"><description></span>',
'</span>',
'<span data-t-role="parameter" data-t-index="20" style="display:block;">',
'|',
'<span data-t-role="parameter-name" style="font-weight:bold;">name</span>',
' = ',
'<span data-t-role="parameter-description" style="opacity:0.65;"><description=></span>',
'</span>',
'<span data-t-role="closer">}}</span>',
'</code>'
}
local INVOCATION_MODE_OUTPUT = table.concat{
'<code data-t-role="wrapper" data-t-mode="invocation" style="all:unset;font-family:monospace;">',
'<span data-t-role="opener">{{#invoke:[[Module:module|module]]|function</span>',
'<span data-t-role="parameter" data-t-index="1">',
'|',
'<span data-t-role="parameter-value"></span>',
'</span>',
'<span data-t-role="parameter" data-t-index="2">',
'|',
'<span data-t-role="parameter-value"></span>',
'</span>',
'<span data-t-role="parameter" data-t-index="3">',
'|',
'<span data-t-role="parameter-description" style="opacity:0.65;"><...></span>',
'</span>',
'<span data-t-role="parameter" data-t-index="4">',
'|',
'<span data-t-role="parameter-value">value</span>',
'</span>',
'<span data-t-role="parameter" data-t-index="5">',
'|',
'<span data-t-role="parameter-value">value</span>',
'</span>',
'<span data-t-role="parameter" data-t-index="6">',
'|',
'<span data-t-role="parameter-description" style="opacity:0.65;"><description></span>',
'</span>',
'<span data-t-role="parameter" data-t-index="7">',
'|',
'<span data-t-role="parameter-name" style="font-weight:bold;">name</span>',
' = ',
'<span data-t-role="parameter-value"></span>',
'</span>',
'<span data-t-role="parameter" data-t-index="8">',
'|',
'<span data-t-role="parameter-name" style="font-weight:bold;">name</span>',
' = ',
'<span data-t-role="parameter-value"></span>',
'</span>',
'<span data-t-role="parameter" data-t-index="9">',
'|',
'<span data-t-role="parameter-name" style="font-weight:bold;">name</span>',
' = ',
'<span data-t-role="parameter-description" style="opacity:0.65;"><...></span>',
'</span>',
'<span data-t-role="parameter" data-t-index="10">',
'|',
'<span data-t-role="parameter-name" style="font-weight:bold;">name</span>',
' = ',
'<span data-t-role="parameter-value">value</span>',
'</span>',
'<span data-t-role="parameter" data-t-index="11">',
'|',
'<span data-t-role="parameter-name" style="font-weight:bold;">name</span>',
' = ',
'<span data-t-role="parameter-value">value</span>',
'</span>',
'<span data-t-role="parameter" data-t-index="12">',
'|',
'<span data-t-role="parameter-name" style="font-weight:bold;">name</span>',
' = ',
'<span data-t-role="parameter-description" style="opacity:0.65;"><description></span>',
'</span>',
'<span data-t-role="parameter" data-t-index="13">',
'|',
'<span data-t-role="parameter-name" style="font-weight:bold;">name</span>',
' = ',
'<span data-t-role="parameter-description" style="opacity:0.65;"><description=></span>',
'</span>',
'<span data-t-role="parameter" data-t-index="14">',
'|',
'<span data-t-role="parameter-name" style="font-weight:bold;">name</span>',
' = ',
'<span data-t-role="parameter-value"></span>',
'</span>',
'<span data-t-role="parameter" data-t-index="15">',
'|',
'<span data-t-role="parameter-name" style="font-weight:bold;">name</span>',
' = ',
'<span data-t-role="parameter-value"></span>',
'</span>',
'<span data-t-role="parameter" data-t-index="16">',
'|',
'<span data-t-role="parameter-name" style="font-weight:bold;">name</span>',
' = ',
'<span data-t-role="parameter-description" style="opacity:0.65;"><...></span>',
'</span>',
'<span data-t-role="parameter" data-t-index="17">',
'|',
'<span data-t-role="parameter-name" style="font-weight:bold;">name</span>',
' = ',
'<span data-t-role="parameter-value">value</span>',
'</span>',
'<span data-t-role="parameter" data-t-index="18">',
'|',
'<span data-t-role="parameter-name" style="font-weight:bold;">name</span>',
' = ',
'<span data-t-role="parameter-value">value</span>',
'</span>',
'<span data-t-role="parameter" data-t-index="19">',
'|',
'<span data-t-role="parameter-name" style="font-weight:bold;">name</span>',
' = ',
'<span data-t-role="parameter-description" style="opacity:0.65;"><description></span>',
'</span>',
'<span data-t-role="parameter" data-t-index="20">',
'|',
'<span data-t-role="parameter-name" style="font-weight:bold;">name</span>',
' = ',
'<span data-t-role="parameter-description" style="opacity:0.65;"><description=></span>',
'</span>',
'<span data-t-role="closer">}}</span>',
'</code>'
}
local MULTILINE_INVOCATION_MODE_OUTPUT = table.concat{
'<code data-t-role="wrapper" data-t-mode="invocation" data-t-multiline="data-t-multiline" style="all:unset;font-family:monospace;">',
'<span data-t-role="opener">{{#invoke:[[Module:module|module]]|function</span>',
'<span data-t-role="parameter" data-t-index="1" style="display:block;">',
'|',
'<span data-t-role="parameter-value"></span>',
'</span>',
'<span data-t-role="parameter" data-t-index="2" style="display:block;">',
'|',
'<span data-t-role="parameter-value"></span>',
'</span>',
'<span data-t-role="parameter" data-t-index="3" style="display:block;">',
'|',
'<span data-t-role="parameter-description" style="opacity:0.65;"><...></span>',
'</span>',
'<span data-t-role="parameter" data-t-index="4" style="display:block;">',
'|',
'<span data-t-role="parameter-value">value</span>',
'</span>',
'<span data-t-role="parameter" data-t-index="5" style="display:block;">',
'|',
'<span data-t-role="parameter-value">value</span>',
'</span>',
'<span data-t-role="parameter" data-t-index="6" style="display:block;">',
'|',
'<span data-t-role="parameter-description" style="opacity:0.65;"><description></span>',
'</span>',
'<span data-t-role="parameter" data-t-index="7" style="display:block;">',
'|',
'<span data-t-role="parameter-name" style="font-weight:bold;">name</span>',
' = ',
'<span data-t-role="parameter-value"></span>',
'</span>',
'<span data-t-role="parameter" data-t-index="8" style="display:block;">',
'|',
'<span data-t-role="parameter-name" style="font-weight:bold;">name</span>',
' = ',
'<span data-t-role="parameter-value"></span>',
'</span>',
'<span data-t-role="parameter" data-t-index="9" style="display:block;">',
'|',
'<span data-t-role="parameter-name" style="font-weight:bold;">name</span>',
' = ',
'<span data-t-role="parameter-description" style="opacity:0.65;"><...></span>',
'</span>',
'<span data-t-role="parameter" data-t-index="10" style="display:block;">',
'|',
'<span data-t-role="parameter-name" style="font-weight:bold;">name</span>',
' = ',
'<span data-t-role="parameter-value">value</span>',
'</span>',
'<span data-t-role="parameter" data-t-index="11" style="display:block;">',
'|',
'<span data-t-role="parameter-name" style="font-weight:bold;">name</span>',
' = ',
'<span data-t-role="parameter-value">value</span>',
'</span>',
'<span data-t-role="parameter" data-t-index="12" style="display:block;">',
'|',
'<span data-t-role="parameter-name" style="font-weight:bold;">name</span>',
' = ',
'<span data-t-role="parameter-description" style="opacity:0.65;"><description></span>',
'</span>',
'<span data-t-role="parameter" data-t-index="13" style="display:block;">',
'|',
'<span data-t-role="parameter-name" style="font-weight:bold;">name</span>',
' = ',
'<span data-t-role="parameter-description" style="opacity:0.65;"><description=></span>',
'</span>',
'<span data-t-role="parameter" data-t-index="14" style="display:block;">',
'|',
'<span data-t-role="parameter-name" style="font-weight:bold;">name</span>',
' = ',
'<span data-t-role="parameter-value"></span>',
'</span>',
'<span data-t-role="parameter" data-t-index="15" style="display:block;">',
'|',
'<span data-t-role="parameter-name" style="font-weight:bold;">name</span>',
' = ',
'<span data-t-role="parameter-value"></span>',
'</span>',
'<span data-t-role="parameter" data-t-index="16" style="display:block;">',
'|',
'<span data-t-role="parameter-name" style="font-weight:bold;">name</span>',
' = ',
'<span data-t-role="parameter-description" style="opacity:0.65;"><...></span>',
'</span>',
'<span data-t-role="parameter" data-t-index="17" style="display:block;">',
'|',
'<span data-t-role="parameter-name" style="font-weight:bold;">name</span>',
' = ',
'<span data-t-role="parameter-value">value</span>',
'</span>',
'<span data-t-role="parameter" data-t-index="18" style="display:block;">',
'|',
'<span data-t-role="parameter-name" style="font-weight:bold;">name</span>',
' = ',
'<span data-t-role="parameter-value">value</span>',
'</span>',
'<span data-t-role="parameter" data-t-index="19" style="display:block;">',
'|',
'<span data-t-role="parameter-name" style="font-weight:bold;">name</span>',
' = ',
'<span data-t-role="parameter-description" style="opacity:0.65;"><description></span>',
'</span>',
'<span data-t-role="parameter" data-t-index="20" style="display:block;">',
'|',
'<span data-t-role="parameter-name" style="font-weight:bold;">name</span>',
' = ',
'<span data-t-role="parameter-description" style="opacity:0.65;"><description=></span>',
'</span>',
'<span data-t-role="closer">}}</span>',
'</code>'
}
--------------------------------------------------------------------------------
-- TEST CASES
--------------------------------------------------------------------------------
return {
main = {
options = {
mode = 'invocation',
preprocess = true,
nowiki = true
},
tests = {
--------------------------------------------------------------------
-- TRANSCLUSION MODE
--------------------------------------------------------------------
{
'',
'<strong class="error">Error: no title specified.</strong>'
},
{
'title',
table.concat{
'<code data-t-role="wrapper" data-t-mode="transclusion" style="all:unset;font-family:monospace;">',
'<span data-t-role="opener">{{[[Template:title|title]]</span>',
'<span data-t-role="closer">}}</span>',
'</code>'
}
},
{
table.concat({'title', PARAMETERS2}, '|'),
TRANSCLUSION_MODE_OUTPUT
},
--------------------------------------------------------------------
-- MULTILINE TRANSCLUSION MODE (FULL FLAG NAMES)
--------------------------------------------------------------------
{
'multiline=true',
'<strong class="error">Error: no title specified.</strong>'
},
{
'multiline=true|title',
table.concat{
'<code data-t-role="wrapper" data-t-mode="transclusion" data-t-multiline="data-t-multiline" style="all:unset;font-family:monospace;">',
'<span data-t-role="opener">{{[[Template:title|title]]</span>',
'<span data-t-role="closer">}}</span>',
'</code>'
}
},
{
table.concat({'multiline=true', 'title', PARAMETERS2}, '|'),
MULTILINE_TRANSCLUSION_MODE_OUTPUT
},
--------------------------------------------------------------------
-- MULTILINE TRANSCLUSION MODE (TRUNCATED FLAG NAMES)
--------------------------------------------------------------------
{
'm=true',
'<strong class="error">Error: no title specified.</strong>'
},
{
'm=true|title',
table.concat{
'<code data-t-role="wrapper" data-t-mode="transclusion" data-t-multiline="data-t-multiline" style="all:unset;font-family:monospace;">',
'<span data-t-role="opener">{{[[Template:title|title]]</span>',
'<span data-t-role="closer">}}</span>',
'</code>'
}
},
{
table.concat({'m=true', 'title', PARAMETERS2}, '|'),
MULTILINE_TRANSCLUSION_MODE_OUTPUT
},
--------------------------------------------------------------------
-- INVOCATION MODE (FULL FLAG NAMES)
--------------------------------------------------------------------
{
'invocation=true',
'<strong class="error">Error: no module specified.</strong>'
},
{
'invocation=true|module',
'<strong class="error">Error: no function specified.</strong>'
},
{
'invocation=true|module|function',
table.concat{
'<code data-t-role="wrapper" data-t-mode="invocation" style="all:unset;font-family:monospace;">',
'<span data-t-role="opener">{{#invoke:[[Module:module|module]]|function</span>',
'<span data-t-role="closer">}}</span>',
'</code>'
}
},
{
table.concat({'invocation=true', 'module', 'function', PARAMETERS2}, '|'),
INVOCATION_MODE_OUTPUT
},
--------------------------------------------------------------------
-- INVOCATION MODE (TRUNCATED FLAG NAMES)
--------------------------------------------------------------------
{
'i=true',
'<strong class="error">Error: no module specified.</strong>'
},
{
'i=true|module',
'<strong class="error">Error: no function specified.</strong>'
},
{
'i=true|module|function',
table.concat{
'<code data-t-role="wrapper" data-t-mode="invocation" style="all:unset;font-family:monospace;">',
'<span data-t-role="opener">{{#invoke:[[Module:module|module]]|function</span>',
'<span data-t-role="closer">}}</span>',
'</code>'
}
},
{
table.concat({'i=true', 'module', 'function', PARAMETERS2}, '|'),
INVOCATION_MODE_OUTPUT
},
--------------------------------------------------------------------
-- MULTILINE INVOCATION MODE (FULL FLAG NAMES)
--------------------------------------------------------------------
{
'invocation=true|multiline=true',
'<strong class="error">Error: no module specified.</strong>'
},
{
'invocation=true|multiline=true|module',
'<strong class="error">Error: no function specified.</strong>'
},
{
'invocation=true|multiline=true|module|function',
table.concat{
'<code data-t-role="wrapper" data-t-mode="invocation" data-t-multiline="data-t-multiline" style="all:unset;font-family:monospace;">',
'<span data-t-role="opener">{{#invoke:[[Module:module|module]]|function</span>',
'<span data-t-role="closer">}}</span>',
'</code>'
}
},
{
table.concat({'invocation=true', 'multiline=true', 'module', 'function', PARAMETERS2}, '|'),
MULTILINE_INVOCATION_MODE_OUTPUT
},
--------------------------------------------------------------------
-- MULTILINE INVOCATION MODE (TRUNCATED FLAG NAMES)
--------------------------------------------------------------------
{
'i=true|m=true',
'<strong class="error">Error: no module specified.</strong>'
},
{
'i=true|m=true|module',
'<strong class="error">Error: no function specified.</strong>'
},
{
'i=true|m=true|module|function',
table.concat{
'<code data-t-role="wrapper" data-t-mode="invocation" data-t-multiline="data-t-multiline" style="all:unset;font-family:monospace;">',
'<span data-t-role="opener">{{#invoke:[[Module:module|module]]|function</span>',
'<span data-t-role="closer">}}</span>',
'</code>'
}
},
{
table.concat({'i=true', 'm=true', 'module', 'function', PARAMETERS2}, '|'),
MULTILINE_INVOCATION_MODE_OUTPUT
}
}
}
}