Module:Lorem ipsum: Difference between revisions
No edit summary |
m (1 revision imported) |
(No difference)
|
Latest revision as of 23:48, 23 October 2024
Documentation for this module may be created at Module:Lorem ipsum/doc
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 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 "")) out = frame:preprocess(out) local maxLen = tonumber(args["max len"] or mw.ustring.len(out)) return mw.ustring.sub(out, 1, maxLen) end }