<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-GB">
	<id>https://stockhub.co/index.php?action=history&amp;feed=atom&amp;title=Module%3ASandbox%2Fpppery%2Flist_markup</id>
	<title>Module:Sandbox/pppery/list markup - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://stockhub.co/index.php?action=history&amp;feed=atom&amp;title=Module%3ASandbox%2Fpppery%2Flist_markup"/>
	<link rel="alternate" type="text/html" href="https://stockhub.co/index.php?title=Module:Sandbox/pppery/list_markup&amp;action=history"/>
	<updated>2026-05-26T02:53:31Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.5</generator>
	<entry>
		<id>https://stockhub.co/index.php?title=Module:Sandbox/pppery/list_markup&amp;diff=146570&amp;oldid=prev</id>
		<title>imported&gt;Pppery: Strict param, keep harmless blank lines between hetrogenous lists</title>
		<link rel="alternate" type="text/html" href="https://stockhub.co/index.php?title=Module:Sandbox/pppery/list_markup&amp;diff=146570&amp;oldid=prev"/>
		<updated>2020-03-27T14:25:41Z</updated>

		<summary type="html">&lt;p&gt;Strict param, keep harmless blank lines between hetrogenous lists&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;local p = {}&lt;br /&gt;
local yesno = require(&amp;quot;Module:Yesno&amp;quot;)&lt;br /&gt;
function p.main(frame)&lt;br /&gt;
	if frame.args.text == nil then&lt;br /&gt;
		if frame.args.page == nil then&lt;br /&gt;
			frame.args.text = mw.title.getCurrentTitle():getContent()&lt;br /&gt;
		else&lt;br /&gt;
			frame.args.text = mw.title.new(frame.args.page):getContent()&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	return p._main(frame.args.text,yesno(frame.args.strict))&lt;br /&gt;
end&lt;br /&gt;
function p._main(text, strict)&lt;br /&gt;
	local out = &amp;quot;&amp;quot;&lt;br /&gt;
	local lastindent = &amp;quot;&amp;quot;&lt;br /&gt;
	local blanklines = &amp;quot;&amp;quot;&lt;br /&gt;
	for line in mw.text.gsplit(text, &amp;quot;\n&amp;quot;) do&lt;br /&gt;
		local _, endindent = line:find(&amp;quot;^[:*#]+&amp;quot;)&lt;br /&gt;
		if endindent == nil then&lt;br /&gt;
			-- not an indented comment&lt;br /&gt;
			if #lastindent ~= 0 and #mw.text.trim(line) == 0 then&lt;br /&gt;
				-- buffer blank lines or lines containing whitespace until we see the next non-blank line&lt;br /&gt;
				blanklines = blanklines .. line .. &amp;quot;\n&amp;quot;&lt;br /&gt;
			else&lt;br /&gt;
				-- reset state, emitting any blank lines&lt;br /&gt;
				out = out .. blanklines .. line .. &amp;quot;\n&amp;quot;&lt;br /&gt;
				blanklines = &amp;quot;&amp;quot;&lt;br /&gt;
				lastindent = &amp;quot;&amp;quot;&lt;br /&gt;
			end&lt;br /&gt;
		else&lt;br /&gt;
			local thisindent = line:sub(1, endindent)&lt;br /&gt;
			if endindent &amp;gt; #lastindent then&lt;br /&gt;
				thisindent = lastindent .. line:sub(#lastindent + 1, endindent)&lt;br /&gt;
			elseif endindent == #lastindent then&lt;br /&gt;
				if strict then&lt;br /&gt;
					thisindent = lastindent&lt;br /&gt;
				else&lt;br /&gt;
					-- err on the side of keeping markup that causes visual changes, despite being incorrect&lt;br /&gt;
					if #thisindent == 1 and #lastindent == 1 and thisindent ~= lastindent then&lt;br /&gt;
						-- add back blank lines if there is going to be a breakpoint anyway&lt;br /&gt;
						out = out .. blanklines&lt;br /&gt;
					end&lt;br /&gt;
					thisindent = lastindent:sub(1, -2) .. thisindent:sub(-1)&lt;br /&gt;
				end&lt;br /&gt;
			elseif strict then&lt;br /&gt;
				thisindent = lastindent:sub(1, endindent - #lastindent - 1)&lt;br /&gt;
			else&lt;br /&gt;
				--  as before, erring on the side of keeping markup that causes a visual change&lt;br /&gt;
				if #thisindent == 1 and #lastindent == 1 and thisindent ~= lastindent then&lt;br /&gt;
					-- add back blank lines if there is going to be a breakpoint anyway&lt;br /&gt;
					out = out .. blanklines&lt;br /&gt;
				end&lt;br /&gt;
				thisindent = lastindent:sub(1, endindent - #lastindent - 2) .. thisindent:sub(-1)&lt;br /&gt;
			end&lt;br /&gt;
			blanklines = &amp;quot;&amp;quot;&lt;br /&gt;
			lastindent = thisindent&lt;br /&gt;
			out = out .. (thisindent .. line:sub(endindent + 1)) .. &amp;quot;\n&amp;quot;&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	return out&lt;br /&gt;
end&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>imported&gt;Pppery</name></author>
	</entry>
</feed>