<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://petitplanet.wiki/index.php?action=history&amp;feed=atom&amp;title=Module%3AFormatting</id>
	<title>Module:Formatting - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://petitplanet.wiki/index.php?action=history&amp;feed=atom&amp;title=Module%3AFormatting"/>
	<link rel="alternate" type="text/html" href="https://petitplanet.wiki/index.php?title=Module:Formatting&amp;action=history"/>
	<updated>2026-04-13T04:27:01Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.5</generator>
	<entry>
		<id>https://petitplanet.wiki/index.php?title=Module:Formatting&amp;diff=346&amp;oldid=prev</id>
		<title>ReisuDesign at 12:46, 10 November 2025</title>
		<link rel="alternate" type="text/html" href="https://petitplanet.wiki/index.php?title=Module:Formatting&amp;diff=346&amp;oldid=prev"/>
		<updated>2025-11-10T12:46:41Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;a href=&quot;https://petitplanet.wiki/index.php?title=Module:Formatting&amp;amp;diff=346&amp;amp;oldid=46&quot;&gt;Show changes&lt;/a&gt;</summary>
		<author><name>ReisuDesign</name></author>
	</entry>
	<entry>
		<id>https://petitplanet.wiki/index.php?title=Module:Formatting&amp;diff=46&amp;oldid=prev</id>
		<title>Stevium at 10:50, 9 November 2025</title>
		<link rel="alternate" type="text/html" href="https://petitplanet.wiki/index.php?title=Module:Formatting&amp;diff=46&amp;oldid=prev"/>
		<updated>2025-11-09T10:50:26Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;a href=&quot;https://petitplanet.wiki/index.php?title=Module:Formatting&amp;amp;diff=46&amp;amp;oldid=45&quot;&gt;Show changes&lt;/a&gt;</summary>
		<author><name>Stevium</name></author>
	</entry>
	<entry>
		<id>https://petitplanet.wiki/index.php?title=Module:Formatting&amp;diff=45&amp;oldid=prev</id>
		<title>Stevium at 10:46, 9 November 2025</title>
		<link rel="alternate" type="text/html" href="https://petitplanet.wiki/index.php?title=Module:Formatting&amp;diff=45&amp;oldid=prev"/>
		<updated>2025-11-09T10:46:31Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 10:46, 9 November 2025&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l148&quot;&gt;Line 148:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 148:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;		local pre = main[1]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;		local pre = main[1]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;		local t_prefix = lib.split(pre, &amp;#039;:&amp;#039;)[1]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;		local t_prefix = lib.split(pre, &amp;#039;:&amp;#039;)[1]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;		if not lib.inArray({&#039;User&#039;, &#039;U&#039;, &#039;Project&#039;, &#039;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Genshin Impact &lt;/del&gt;Wiki&#039;}, t_prefix) then&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;		if not lib.inArray({&#039;User&#039;, &#039;U&#039;, &#039;Project&#039;, &#039;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Petit Planet &lt;/ins&gt;Wiki&#039;}, t_prefix) then&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;			pre = &amp;#039;Template:&amp;#039; .. pre&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;			pre = &amp;#039;Template:&amp;#039; .. pre&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;		end&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;		end&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key petitplanet:diff:1.41:old-44:rev-45:php=table --&gt;
&lt;/table&gt;</summary>
		<author><name>Stevium</name></author>
	</entry>
	<entry>
		<id>https://petitplanet.wiki/index.php?title=Module:Formatting&amp;diff=44&amp;oldid=prev</id>
		<title>Stevium: Created Module:Formatting</title>
		<link rel="alternate" type="text/html" href="https://petitplanet.wiki/index.php?title=Module:Formatting&amp;diff=44&amp;oldid=prev"/>
		<updated>2025-11-09T10:36:13Z</updated>

		<summary type="html">&lt;p&gt;Created Module:Formatting&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;-- Source: https://genshin-impact.fandom.com/wiki/Module:Formatting&lt;br /&gt;
&lt;br /&gt;
local p = {}&lt;br /&gt;
local lib = require(&amp;#039;Module:Feature&amp;#039;)&lt;br /&gt;
local search = lib.inArray&lt;br /&gt;
local nw = mw.text.nowiki&lt;br /&gt;
&lt;br /&gt;
function p.main(frame)&lt;br /&gt;
	local args = require(&amp;#039;Module:Arguments&amp;#039;).getArgs(frame, {&lt;br /&gt;
		parentFirst = true,&lt;br /&gt;
		removeBlanks = false&lt;br /&gt;
	})&lt;br /&gt;
	&lt;br /&gt;
	-- helper function to parse params&lt;br /&gt;
	function FP(arr, val, def, noBlk)&lt;br /&gt;
		local param = nil&lt;br /&gt;
		for _, v in ipairs(arr) do&lt;br /&gt;
			if param == nil and args[v]~=nil then&lt;br /&gt;
				param = val and args[v] or v&lt;br /&gt;
			end&lt;br /&gt;
			if not noBlk then&lt;br /&gt;
				args[v]=nil&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
		return param or def&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- Define variables&lt;br /&gt;
	local main = args[1]; assert(main, &amp;#039;A value must be given&amp;#039;); main = {main, main}&lt;br /&gt;
	local label = FP({&amp;#039;label&amp;#039;, 2}, true, &amp;#039;&amp;#039;, true); label = {label, label}&lt;br /&gt;
		&lt;br /&gt;
	local mode = FP({&amp;#039;link&amp;#039;, &amp;#039;l&amp;#039;, &amp;#039;external-link&amp;#039;, &amp;#039;el&amp;#039;, &amp;#039;template&amp;#039;, &amp;#039;t&amp;#039;}) or &amp;#039;plain&amp;#039;&lt;br /&gt;
	local ret  = FP({&amp;#039;_Ybr_&amp;#039;, &amp;#039;_Yn_&amp;#039;, &amp;#039;_Y_&amp;#039;}) or &amp;#039;none&amp;#039;&lt;br /&gt;
	local spc  = FP({&amp;#039;block&amp;#039;}) or &amp;#039;inline&amp;#039;&lt;br /&gt;
	local lprs = FP({&amp;#039;let_parse&amp;#039;}) ~= nil&lt;br /&gt;
	local code = FP({&amp;#039;NC&amp;#039;}) == nil&lt;br /&gt;
	local var  = FP({&amp;#039;variable&amp;#039;, &amp;#039;v&amp;#039;}) ~= nil&lt;br /&gt;
	local esc  = FP({&amp;#039;nowiki&amp;#039;, &amp;#039;nw&amp;#039;}) and nw or (function(a)return a end)&lt;br /&gt;
	local infobox = FP({&amp;#039;_infobox&amp;#039;}) ~= nil or main[1]:find(&amp;#039;Infobox&amp;#039;)&lt;br /&gt;
	local content -- for actual render storage&lt;br /&gt;
	local final = mw.html.create()&lt;br /&gt;
	local out  = final:tag(&amp;#039;span&amp;#039;)&lt;br /&gt;
		:addClass(table.concat({&lt;br /&gt;
			&amp;#039;custom-formatting-code&amp;#039;,&lt;br /&gt;
			code and &amp;#039;&amp;#039; or &amp;#039;custom-formatting-plain&amp;#039;,&lt;br /&gt;
			spc==&amp;#039;block&amp;#039; and (&amp;#039;code-block&amp;#039; .. lib.ternary(infobox,&amp;#039;-table&amp;#039;,&amp;#039;&amp;#039;)) or &amp;#039;&amp;#039;&lt;br /&gt;
		}, &amp;#039; &amp;#039;))&lt;br /&gt;
	&lt;br /&gt;
	-- Define defaults&lt;br /&gt;
	local _d = {&lt;br /&gt;
		[&amp;#039;pipe&amp;#039;] = &amp;#039;|&amp;#039;,&lt;br /&gt;
		[&amp;#039;open&amp;#039;] = ({&lt;br /&gt;
			[&amp;#039;link&amp;#039;] = &amp;#039;[[&amp;#039;, [&amp;#039;l&amp;#039;] = &amp;#039;[[&amp;#039;,&lt;br /&gt;
			[&amp;#039;external-link&amp;#039;] = &amp;#039;[&amp;#039;, [&amp;#039;el&amp;#039;] = &amp;#039;[&amp;#039;,&lt;br /&gt;
			[&amp;#039;template&amp;#039;] = &amp;#039;{{&amp;#039;, [&amp;#039;t&amp;#039;] = &amp;#039;{{&amp;#039;,&lt;br /&gt;
			[&amp;#039;plain&amp;#039;] = &amp;#039;&amp;#039;&lt;br /&gt;
		})[mode],&lt;br /&gt;
		[&amp;#039;close&amp;#039;] = ({&lt;br /&gt;
			[&amp;#039;link&amp;#039;] = &amp;#039;]]&amp;#039;, [&amp;#039;l&amp;#039;] = &amp;#039;]]&amp;#039;,&lt;br /&gt;
			[&amp;#039;external-link&amp;#039;] = &amp;#039;]&amp;#039;, [&amp;#039;el&amp;#039;] = &amp;#039;]&amp;#039;,&lt;br /&gt;
			[&amp;#039;template&amp;#039;] = &amp;#039;}}&amp;#039;, [&amp;#039;t&amp;#039;] = &amp;#039;}}&amp;#039;,&lt;br /&gt;
			[&amp;#039;plain&amp;#039;] = &amp;#039;&amp;#039;&lt;br /&gt;
		})[mode],&lt;br /&gt;
		[&amp;#039;join&amp;#039;] = ((&lt;br /&gt;
				FP({&amp;#039;no_joint&amp;#039;}) or&lt;br /&gt;
				((mode==&amp;#039;t&amp;#039; or mode==&amp;#039;template&amp;#039;) and infobox)&lt;br /&gt;
			) and &amp;#039;&amp;#039;)&lt;br /&gt;
			or ({&lt;br /&gt;
				[&amp;#039;_Ybr_&amp;#039;] = &amp;#039; yields:&amp;lt;br&amp;gt;&amp;#039;,&lt;br /&gt;
				[&amp;#039;_Yn_&amp;#039;] = &amp;#039; yields:\n&amp;#039;,&lt;br /&gt;
				[&amp;#039;_Y_&amp;#039;] = &amp;#039; yields: &amp;#039;,&lt;br /&gt;
				[&amp;#039;none&amp;#039;] = &amp;#039;&amp;#039;&lt;br /&gt;
			})[ret],&lt;br /&gt;
		ref = FP({&amp;#039;ref&amp;#039;, &amp;#039;r&amp;#039;}) and {&amp;#039;&amp;lt;ref&amp;gt;&amp;#039;, &amp;#039;&amp;lt;/ref&amp;gt;&amp;#039;} or {&amp;#039;&amp;#039;,&amp;#039;&amp;#039;},&lt;br /&gt;
		bold = FP({&amp;#039;bold&amp;#039;, &amp;#039;b&amp;#039;}) and {&amp;#039;&amp;lt;b&amp;gt;&amp;#039;, &amp;#039;&amp;lt;/b&amp;gt;&amp;#039;} or {&amp;#039;&amp;#039;,&amp;#039;&amp;#039;},&lt;br /&gt;
		italic = FP({&amp;#039;italic&amp;#039;, &amp;#039;i&amp;#039;}) and {&amp;#039;&amp;lt;i&amp;gt;&amp;#039;, &amp;#039;&amp;lt;/i&amp;gt;&amp;#039;} or {&amp;#039;&amp;#039;,&amp;#039;&amp;#039;},&lt;br /&gt;
		under = FP({&amp;#039;underline&amp;#039;, &amp;#039;u&amp;#039;}) and {&amp;#039;&amp;lt;u&amp;gt;&amp;#039;, &amp;#039;&amp;lt;/u&amp;gt;&amp;#039;} or {&amp;#039;&amp;#039;,&amp;#039;&amp;#039;},&lt;br /&gt;
	}&lt;br /&gt;
	_d.prefix = table.concat({ FP({&amp;#039;prefix&amp;#039;},true,&amp;#039;&amp;#039;), _d.ref[1], _d.bold[1], _d.italic[1], _d.under[1] }):gsub(&amp;#039;{_SP_}&amp;#039;, &amp;#039; &amp;#039;):gsub(&amp;#039;{_NL_}&amp;#039;, &amp;#039;\n&amp;#039;)&lt;br /&gt;
	_d.suffix = table.concat({ _d.under[2], _d.italic[2], _d.bold[2], _d.ref[2], FP({&amp;#039;suffix&amp;#039;},true,&amp;#039;&amp;#039;), }):gsub(&amp;#039;{_SP_}&amp;#039;, &amp;#039; &amp;#039;):gsub(&amp;#039;{_NL_}&amp;#039;, &amp;#039;\n&amp;#039;)&lt;br /&gt;
&lt;br /&gt;
	-- Variable formatting&lt;br /&gt;
	if var then main[2] = &amp;#039;((&amp;#039;..main[2]..&amp;#039;))&amp;#039; end&lt;br /&gt;
	if FP({&amp;#039;variable-label&amp;#039;, &amp;#039;vl&amp;#039;})~=nil and lib.isNotEmpty(label[2]) then label[2] = &amp;#039;((&amp;#039;..label[2]..&amp;#039;))&amp;#039; end&lt;br /&gt;
	&lt;br /&gt;
	--create result as plain text&lt;br /&gt;
	if mode == &amp;#039;plain&amp;#039; then&lt;br /&gt;
		out:wikitext(&lt;br /&gt;
			nw(_d.prefix),&lt;br /&gt;
			esc(main[2]),&lt;br /&gt;
			nw(_d.suffix)&lt;br /&gt;
		)&lt;br /&gt;
		if ret ~= &amp;#039;none&amp;#039; or not code then&lt;br /&gt;
			content = frame:preprocess(table.concat({&lt;br /&gt;
				_d.prefix,&lt;br /&gt;
				main[1],&lt;br /&gt;
				_d.suffix&lt;br /&gt;
			}))&lt;br /&gt;
		end&lt;br /&gt;
		&lt;br /&gt;
	--create result as wiki link&lt;br /&gt;
	elseif search({&amp;#039;link&amp;#039;, &amp;#039;l&amp;#039;}, mode) then&lt;br /&gt;
		out:wikitext(&lt;br /&gt;
			nw(_d.prefix),&lt;br /&gt;
			nw(_d[&amp;#039;open&amp;#039;]),&lt;br /&gt;
			esc(main[2]),&lt;br /&gt;
				lib.isEmpty(label[2]) and &amp;#039;&amp;#039; or&lt;br /&gt;
				(nw(_d.pipe) .. esc(label[2])),&lt;br /&gt;
			nw(_d[&amp;#039;close&amp;#039;]),&lt;br /&gt;
			nw(_d.suffix)&lt;br /&gt;
		)&lt;br /&gt;
		if ret ~= &amp;#039;none&amp;#039; or not code then&lt;br /&gt;
			content = frame:preprocess(table.concat({&lt;br /&gt;
				_d.prefix,&lt;br /&gt;
				main[1],&lt;br /&gt;
				(&lt;br /&gt;
					label[1]==&amp;#039;&amp;#039; and &amp;#039;&amp;#039;&lt;br /&gt;
					or (_d.pipe .. label[1])&lt;br /&gt;
				),&lt;br /&gt;
				_d.suffix&lt;br /&gt;
			}))&lt;br /&gt;
		end&lt;br /&gt;
&lt;br /&gt;
	--create result as external link&lt;br /&gt;
	elseif search({&amp;#039;external-link&amp;#039;, &amp;#039;el&amp;#039;}, mode) then&lt;br /&gt;
		out:wikitext(&lt;br /&gt;
			nw(_d.prefix),&lt;br /&gt;
			nw(_d[&amp;#039;open&amp;#039;]),&lt;br /&gt;
			nw(main[2]),&lt;br /&gt;
				lib.isEmpty(label[2]) and &amp;#039;&amp;#039; or&lt;br /&gt;
				(&amp;#039; &amp;#039; .. esc(label[2])),&lt;br /&gt;
			nw(_d[&amp;#039;close&amp;#039;]),&lt;br /&gt;
			nw(_d.suffix)&lt;br /&gt;
		)&lt;br /&gt;
		if ret ~= &amp;#039;none&amp;#039; or not code then&lt;br /&gt;
			content = frame:preprocess(table.concat({&lt;br /&gt;
				_d.prefix,&lt;br /&gt;
				main[1],&lt;br /&gt;
				(&lt;br /&gt;
					label[1]==&amp;#039;&amp;#039; and &amp;#039;&amp;#039;&lt;br /&gt;
					or (&amp;#039; &amp;#039; .. label[1])&lt;br /&gt;
				),&lt;br /&gt;
				_d.suffix&lt;br /&gt;
			}))&lt;br /&gt;
		end&lt;br /&gt;
	elseif search({&amp;#039;template&amp;#039;, &amp;#039;t&amp;#039;}, mode) then&lt;br /&gt;
		local yieldargs = {}&lt;br /&gt;
		local pre = main[1]&lt;br /&gt;
		local t_prefix = lib.split(pre, &amp;#039;:&amp;#039;)[1]&lt;br /&gt;
		if not lib.inArray({&amp;#039;User&amp;#039;, &amp;#039;U&amp;#039;, &amp;#039;Project&amp;#039;, &amp;#039;Genshin Impact Wiki&amp;#039;}, t_prefix) then&lt;br /&gt;
			pre = &amp;#039;Template:&amp;#039; .. pre&lt;br /&gt;
		end&lt;br /&gt;
		out:wikitext(&lt;br /&gt;
			nw(_d.prefix),&lt;br /&gt;
			nw(_d[&amp;#039;open&amp;#039;]),&lt;br /&gt;
			&amp;#039;[[&amp;#039;, pre, &amp;#039;|&amp;#039;, main[2]:gsub(&amp;#039; &amp;#039;,&amp;#039;&amp;amp;nbsp;&amp;#039;), &amp;#039;]]&amp;#039;&lt;br /&gt;
		)&lt;br /&gt;
		&lt;br /&gt;
		--template call with params&lt;br /&gt;
		if p.checkParams(args) then&lt;br /&gt;
			local param = 1&lt;br /&gt;
			while (args[&amp;#039;V&amp;#039;..param] or args[&amp;#039;v&amp;#039;..param] or args[&amp;#039;P&amp;#039; .. param] or args[&amp;#039;p&amp;#039; .. param] or args[param+1]) do&lt;br /&gt;
				local _p = FP({&amp;#039;V&amp;#039;..param, &amp;#039;v&amp;#039;..param, &amp;#039;P&amp;#039; .. param, &amp;#039;p&amp;#039; .. param, param+1}, nil, nil, true)&lt;br /&gt;
				local _v = FP({&amp;#039;V&amp;#039;..param, &amp;#039;v&amp;#039;..param, &amp;#039;P&amp;#039; .. param, &amp;#039;p&amp;#039; .. param, param+1}, true)&lt;br /&gt;
				local sett = {&lt;br /&gt;
					p      = _p,&lt;br /&gt;
					v      = _v,&lt;br /&gt;
					cmmt   = FP({_p..&amp;#039;_comment&amp;#039;}, true),&lt;br /&gt;
					prefix = FP({_p..&amp;#039;_pref&amp;#039;}, true) or (spc==&amp;#039;block&amp;#039; and &amp;#039;&amp;lt;br&amp;gt;&amp;#039;) or &amp;#039;&amp;#039;,&lt;br /&gt;
					suffix = FP({_p..&amp;#039;_suff&amp;#039;}, true) or &amp;#039;&amp;#039;,&lt;br /&gt;
					parse  = lprs or search({&amp;#039;V&amp;#039;, &amp;#039;P&amp;#039;}, (tostring(_p):sub(1,1))),&lt;br /&gt;
					var    = var or search({&amp;#039;V&amp;#039;, &amp;#039;v&amp;#039;}, (tostring(_p):sub(1,1))),&lt;br /&gt;
					param  = p.parseParam(_v, _p)&lt;br /&gt;
				}&lt;br /&gt;
				out:wikitext(sett.prefix)&lt;br /&gt;
				if sett.cmmt then&lt;br /&gt;
					out:wikitext(&amp;#039;&amp;lt;br&amp;gt;((!-- &amp;#039;, nw(sett.cmmt), &amp;#039; --))&amp;lt;br&amp;gt;&amp;#039;)&lt;br /&gt;
				end&lt;br /&gt;
				out:wikitext(nw(_d.pipe))&lt;br /&gt;
				--named param only&lt;br /&gt;
				if type(sett.param.name) == &amp;#039;string&amp;#039; and sett.param.name ~= sett.p then&lt;br /&gt;
					out&lt;br /&gt;
						:tag(&amp;#039;b&amp;#039;):wikitext(nw(sett.param.name)):done()&lt;br /&gt;
						:wikitext(string.rep(&amp;#039;&amp;amp;nbsp;&amp;#039;,sett.param.spacing),&amp;#039;=&amp;amp;nbsp;&amp;#039;)&lt;br /&gt;
				end&lt;br /&gt;
				out:wikitext(&lt;br /&gt;
					sett.var and &amp;#039;((&amp;#039; or &amp;#039;&amp;#039;,&lt;br /&gt;
					p.NewLineAllow(sett.param.value, sett.parse),&lt;br /&gt;
					sett.var and &amp;#039;))&amp;#039; or &amp;#039;&amp;#039;&lt;br /&gt;
				)&lt;br /&gt;
				out:wikitext(sett.suffix)&lt;br /&gt;
				&lt;br /&gt;
				-- store param value&lt;br /&gt;
				yieldargs[sett.param.name] = mw.text.unstrip(sett.param.value)&lt;br /&gt;
				&lt;br /&gt;
				&lt;br /&gt;
				--increase count for the next &amp;#039;while&amp;#039; loop&lt;br /&gt;
				param = param + 1&lt;br /&gt;
			end&lt;br /&gt;
			&lt;br /&gt;
			for n,v in pairs(args) do&lt;br /&gt;
				if (n ~= 1) then&lt;br /&gt;
					out:wikitext(&lt;br /&gt;
						(spc==&amp;#039;block&amp;#039; and &amp;#039;&amp;lt;br&amp;gt;&amp;#039;) or &amp;#039;&amp;#039;,&lt;br /&gt;
						nw(_d.pipe),&amp;#039;&amp;lt;b&amp;gt;&amp;#039;,nw(n),&amp;#039;&amp;lt;/b&amp;gt; = &amp;#039;,&lt;br /&gt;
						p.NewLineAllow(v, lprs)&lt;br /&gt;
					)&lt;br /&gt;
					yieldargs[n] = mw.text.unstrip(v)&lt;br /&gt;
				end&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
		out:wikitext((spc==&amp;#039;block&amp;#039; and &amp;#039;&amp;lt;br&amp;gt;&amp;#039;) or &amp;#039;&amp;#039;, nw(_d[&amp;#039;close&amp;#039;]), nw(_d.suffix))&lt;br /&gt;
&lt;br /&gt;
		-- auto template result for examples&lt;br /&gt;
		if ret~=&amp;#039;none&amp;#039; or not code then&lt;br /&gt;
			content = _d.prefix .. frame:expandTemplate{title = main[1], args = yieldargs} .. _d.suffix&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	if content and (ret ~= &amp;#039;none&amp;#039; or not code) then&lt;br /&gt;
		if content:find(&amp;#039;&amp;lt;ref&amp;#039;) then&lt;br /&gt;
			local c_p,c_r,c_s = string.match(content, &amp;#039;^(.-)&amp;lt;ref&amp;gt;(.-)&amp;lt;/ref&amp;gt;(.-)$&amp;#039;)&lt;br /&gt;
			content = c_p .. frame:extensionTag{ name = &amp;#039;ref&amp;#039;, content = c_r } .. c_s&lt;br /&gt;
		end&lt;br /&gt;
		if ret ~= &amp;#039;none&amp;#039; then&lt;br /&gt;
			if infobox then&lt;br /&gt;
				final = mw.html.create()&lt;br /&gt;
					:wikitext(content)&lt;br /&gt;
					:node(final)&lt;br /&gt;
			else&lt;br /&gt;
				final:wikitext(&lt;br /&gt;
					(spc==&amp;#039;block&amp;#039; and &amp;#039;&amp;lt;br&amp;gt;&amp;#039; or &amp;#039; &amp;#039;),&lt;br /&gt;
					_d.join,&lt;br /&gt;
					content&lt;br /&gt;
				)&lt;br /&gt;
			end&lt;br /&gt;
		elseif not code then&lt;br /&gt;
			out:addClass(&amp;#039;custom-formatting-nested&amp;#039;)&lt;br /&gt;
			final:tag(&amp;#039;span&amp;#039;):addClass(&amp;#039;custom-formatting-resulting&amp;#039;):wikitext(content)&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	-- Parse keywords&lt;br /&gt;
	final = tostring(final):gsub(&amp;#039;{_SP_}&amp;#039;, &amp;#039; &amp;#039;):gsub(&amp;#039;{_NL_}&amp;#039;, &amp;#039;\n&amp;#039;)&lt;br /&gt;
	final = p.variableFormat(final)&lt;br /&gt;
	&lt;br /&gt;
	return final&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.parseParam(param, pName)&lt;br /&gt;
	local tmp = param&lt;br /&gt;
	local name, value, spacing = &amp;#039;&amp;#039;,&amp;#039;&amp;#039;,1&lt;br /&gt;
	&lt;br /&gt;
	-- the parameter&amp;#039;s name is anything to the left of the first equals sign;&lt;br /&gt;
	-- the equals sign can be escaped, for wikis that don&amp;#039;t have [[Template:=]]&lt;br /&gt;
	if tmp:find(&amp;#039;=&amp;#039;) then&lt;br /&gt;
		name, spacing, value = string.match(tmp,&amp;#039;^(.-)(%s*)=%s*(.-)$&amp;#039;)&lt;br /&gt;
		if string.len(spacing) == 0 then spacing = 1 else spacing = string.len(spacing) end&lt;br /&gt;
	else&lt;br /&gt;
		name = type(pName)==&amp;#039;number&amp;#039;&lt;br /&gt;
			and (pName-1)&lt;br /&gt;
			or tonumber((pName:gsub(&amp;#039;[^%d]+&amp;#039;, &amp;#039;&amp;#039;)))&lt;br /&gt;
		value = tmp&lt;br /&gt;
	end&lt;br /&gt;
	return {&lt;br /&gt;
		name = name,&lt;br /&gt;
		value = value,&lt;br /&gt;
		spacing = spacing&lt;br /&gt;
	}&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.variableFormat(textin)&lt;br /&gt;
	while (textin:find(&amp;#039;%(%(&amp;#039;) and textin:find(&amp;#039;%)%)&amp;#039;)) do&lt;br /&gt;
		local textrp = string.match(textin,&amp;#039;%(%((.-)%)%)&amp;#039;)&lt;br /&gt;
		textin = textin:gsub(&amp;#039;%(%(.-%)%)&amp;#039;,tostring(mw.html.create():tag(&amp;quot;span&amp;quot;):addClass(&amp;#039;variable&amp;#039;):wikitext(textrp)),1)&lt;br /&gt;
	end&lt;br /&gt;
	return textin&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.checkParams(args)&lt;br /&gt;
	for n,v in pairs(args) do&lt;br /&gt;
		if (n ~= 1 and v~=nil) then&lt;br /&gt;
			return true&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	return false&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--helper function to allow new line format in template calls in block format, as directly allowing makes the &amp;lt;code&amp;gt; container break&lt;br /&gt;
function p.NewLineAllow(str, parse)&lt;br /&gt;
	local container = mw.html.create()&lt;br /&gt;
	local nw = mw.text.nowiki&lt;br /&gt;
	&lt;br /&gt;
	if str:find(&amp;#039;[\n\r]&amp;#039;) then&lt;br /&gt;
		str = str:gsub(&amp;#039;[\n\r]&amp;#039;, &amp;#039;¤¤¤&amp;#039;):gsub(&amp;#039;¤¤¤$&amp;#039;, &amp;#039;&amp;#039;)&lt;br /&gt;
		local splitstr = mw.text.split(str, &amp;#039;¤¤¤&amp;#039;, true )&lt;br /&gt;
		for i,v in ipairs(splitstr) do&lt;br /&gt;
			if not parse then v = nw(v) end&lt;br /&gt;
			container:wikitext(v)&lt;br /&gt;
			if i ~= #splitstr then&lt;br /&gt;
				container:wikitext(&amp;#039;&amp;lt;br&amp;gt;&amp;#039;)&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
		return tostring(container)&lt;br /&gt;
	else&lt;br /&gt;
		if not parse then str = nw(str) end&lt;br /&gt;
		return str&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>Stevium</name></author>
	</entry>
</feed>