Jump to content

Module:Lorem ipsum: Difference between revisions

From Wikipedia, the free encyclopedia
Content deleted Content added
do not add category when substing the module
fix max length not working correctly in first paragraph
Line 53: Line 53:
out = out .. "[[Category:Wikipedia articles containing placeholders]]"
out = out .. "[[Category:Wikipedia articles containing placeholders]]"
end
end
out = out .. mw.ustring.format(mw.ustring.sub(paragraph, 1, maxLen), (link and "link" or ""))
out = out .. mw.ustring.format(paragraph, (link and "link" or ""))
return frame:preprocess(out)
return mw.ustring.sub(frame:preprocess(out), 1, maxLen)
end
end
}
}

Revision as of 18:52, 22 October 2024

local yn = require("Module:Yesno")
return {
	main = function(frame)
		local args = require("Module:Arguments").getArgs(frame)
		local data = args["data"] and mw.loadData(args["data"]) or mw.loadData("Module:Lorem_ipsum/data")
		local paragraphs = {}
		for k,v in ipairs(data) do
			table.insert(paragraphs, v)
		end
		local out = ''
		local link = yn(args["link"]) or yn(args[4]) or false
		local join = yn(args["join"]) or false
		local cat = yn(args["cat"]) or true
		local count = tonumber(args[1] or 1)
		local i = 1
		if join then
			out = out .. (args["prefix"] or args[2] or "")
		end
		while i <= count do
			if not join then
				out = out .. (args["prefix"] or args[2] or "\n")
			end
			out = out .. mw.ustring.format(paragraphs[math.mod(i - 1, #paragraphs) + 1], (link and "link" or ""))
			if not join then
				out = out .. (args["suffix"] or args[3] or "") .. "\n"
			else
				out = out .. (i == count and "" or " ")
			end
			link = false
			i = i + 1
		end
		if join then
			out = out .. (args["suffix"] or args[3] or "")
		end
		if cat and mw.title.getCurrentTitle().namespace == 0 and not mw.isSubsting() then
			out = out .. "[[Category:Wikipedia articles containing placeholders]]"
		end
		return frame:preprocess(out)
	end,
	oneParagraph = function(frame)
		local args = require("Module:Arguments").getArgs(frame)
		local data = args["data"] and mw.loadData(args["data"]) or mw.loadData("Module:Lorem_ipsum/data")
		local paragraphs = {}
		for k,v in ipairs(data) do
			table.insert(paragraphs, v)
		end
		local i = tonumber(args[1] or 1)
		local link = yn(args["link"])
		local paragraph = paragraphs[math.mod(i - 1, #paragraphs) + 1]
		local maxLen = tonumber(args["max len"] or mw.ustring.len(paragraph))
		local out = ""
		if cat and mw.title.getCurrentTitle().namespace == 0 and not mw.isSubsting() then
			out = out .. "[[Category:Wikipedia articles containing placeholders]]"
		end
		out = out .. mw.ustring.format(paragraph, (link and "link" or ""))
		return mw.ustring.sub(frame:preprocess(out), 1, maxLen)
	end
}