Jump to content

Module:Lorem ipsum

From Wikisource

require('strict')

local p = {}

local getArgs = require('Module:Arguments').getArgs
local yesno = require('Module:Yesno')
local namespace_other = require('Module:Namespace other')._namespace_other
local greek = require('Module:Greek')._greek

local lipsum_data = {
	['latin'] = {
		['start'] = 'Lorem ipsum',
		['text'] = {
			' dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.',
			'Curabitur pretium tincidunt lacus. Nulla gravida orci a odio. Nullam varius, turpis et commodo pharetra, est eros bibendum elit, nec luctus magna felis sollicitudin mauris. Integer in mauris eu nibh euismod gravida. Duis ac tellus et risus vulputate vehicula. Donec lobortis risus a elit. Etiam tempor. Ut ullamcorper, ligula eu tempor congue, eros est euismod turpis, id tincidunt sapien risus a quam. Maecenas fermentum consequat mi. Donec fermentum. Pellentesque malesuada nulla a mi. Duis sapien sem, aliquet nec, commodo eget, consequat quis, neque. Aliquam faucibus, elit ut dictum aliquet, felis nisl adipiscing sapien, sed malesuada diam lacus eget erat. Cras mollis scelerisque nunc. Nullam arcu. Aliquam consequat. Curabitur augue lorem, dapibus quis, laoreet et, pretium ac, nisi. Aenean magna nisl, mollis quis, molestie eu, feugiat in, orci. In hac habitasse platea dictumst.',
			'Fusce convallis, mauris imperdiet gravida bibendum, nisl turpis suscipit mauris, sed placerat ipsum urna sed risus. In convallis tellus a mauris. Curabitur non elit ut libero tristique sodales. Mauris a lacus. Donec mattis semper leo. In hac habitasse platea dictumst. Vivamus facilisis diam at odio. Mauris dictum, nisi eget consequat elementum, lacus ligula molestie metus, non feugiat orci magna ac sem. Donec turpis. Donec vitae metus. Morbi tristique neque eu mauris. Quisque gravida ipsum non sapien. Proin turpis lacus, scelerisque vitae, elementum at, lobortis ac, quam. Aliquam dictum eleifend risus. In hac habitasse platea dictumst. Etiam sit amet diam. Suspendisse odio. Suspendisse nunc. In semper bibendum libero.',
			'Proin nonummy, lacus eget pulvinar lacinia, pede felis dignissim leo, vitae tristique magna lacus sit amet eros. Nullam ornare. Praesent odio ligula, dapibus sed, tincidunt eget, dictum ac, nibh. Nam quis lacus. Nunc eleifend molestie velit. Morbi lobortis quam eu velit. Donec euismod vestibulum massa. Donec non lectus. Aliquam commodo lacus sit amet nulla. Cras dignissim elit et augue. Nullam non diam. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. In hac habitasse platea dictumst. Aenean vestibulum. Sed lobortis elit quis lectus. Nunc sed lacus at augue bibendum dapibus.',
			'Aliquam vehicula sem ut pede. Cras purus lectus, egestas eu, vehicula at, imperdiet sed, nibh. Morbi consectetuer luctus felis. Donec vitae nisi. Aliquam tincidunt feugiat elit. Duis sed elit ut turpis ullamcorper feugiat. Praesent pretium, mauris sed fermentum hendrerit, nulla lorem iaculis magna, pulvinar scelerisque urna tellus a justo. Suspendisse pulvinar massa in metus. Duis quis quam. Proin justo. Curabitur ac sapien. Nam erat. Praesent ut quam.',
			'Vivamus commodo, augue et laoreet euismod, sem sapien tempor dolor, ac egestas sem ligula quis lacus. Donec vestibulum tortor ac lacus. Sed posuere vestibulum nisl. Curabitur eleifend fermentum justo. Nullam imperdiet. Integer sit amet mauris imperdiet risus sollicitudin rutrum. Ut vitae turpis. Nulla facilisi. Quisque tortor velit, scelerisque et, facilisis vel, tempor sed, urna. Vivamus nulla elit, vestibulum eget, semper et, scelerisque eget, lacus. Pellentesque viverra purus. Quisque elit. Donec ut dolor.',
			'Duis volutpat elit et erat. In at nulla at nisl condimentum aliquet. Quisque elementum pharetra lacus. Nunc gravida arcu eget nunc. Nulla iaculis egestas magna. Aliquam erat volutpat. Sed pellentesque orci. Etiam lacus lorem, iaculis sit amet, pharetra quis, imperdiet sit amet, lectus. Integer quis elit ac mi aliquam pretium. Nullam mauris orci, porttitor eget, sollicitudin non, vulputate id, risus. Donec varius enim nec sem. Nam aliquam lacinia enim. Quisque eget lorem eu purus dignissim ultricies. Fusce porttitor hendrerit ante. Mauris urna diam, cursus id, mattis eget, tempus sit amet, risus. Curabitur eu felis. Sed eu mi. Nullam lectus mauris, luctus a, mattis ac, tempus non, leo. Cras mi nulla, rhoncus id, laoreet ut, ultricies id, odio.',
			'Donec imperdiet. Vestibulum auctor tortor at orci. Integer semper, nisi eget suscipit eleifend, erat nisl hendrerit justo, eget vestibulum lorem justo ac leo. Integer sem velit, pharetra in, fringilla eu, fermentum id, felis. Vestibulum sed felis. In elit. Praesent et pede vel ante dapibus condimentum. Donec magna. Quisque id risus. Mauris vulputate pellentesque leo. Duis vulputate, ligula at venenatis tincidunt, orci nunc interdum leo, ac egestas elit sem ut lacus. Etiam non diam quis arcu egestas commodo. Curabitur nec massa ac massa gravida condimentum. Aenean id libero. Pellentesque vitae tellus. Fusce lectus est, accumsan ac, bibendum sed, porta eget, augue. Etiam faucibus. Quisque tempus purus eu ante.',
			'Vestibulum sapien nisl, ornare auctor, consectetuer quis, posuere tristique, odio. Fusce ultrices ullamcorper odio. Ut augue nulla, interdum at, adipiscing non, tristique eget, neque. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Ut pede est, condimentum id, scelerisque ac, malesuada non, quam. Proin eu ligula ac sapien suscipit blandit. Suspendisse euismod. Ut accumsan, neque id gravida luctus, arcu pede sodales felis, vel blandit massa arcu eget ligula. Aenean sed turpis. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Donec sem eros, ornare ut, commodo eu, tempor nec, risus. Donec laoreet dapibus ligula. Praesent orci leo, bibendum nec, ornare et, nonummy in, elit. Donec interdum feugiat leo. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Pellentesque feugiat ullamcorper ipsum. Donec convallis tincidunt urna.',
			'Suspendisse et orci et arcu porttitor pellentesque. Sed lacus nunc, fermentum vel, vehicula in, imperdiet eget, urna. Nam consectetuer euismod nunc. Nulla dignissim posuere nulla. Integer iaculis lacinia massa. Nullam sapien augue, condimentum vel, venenatis id, rhoncus pellentesque, sapien. Donec sed ipsum ultrices turpis consectetuer imperdiet. Duis et ipsum ac nisl laoreet commodo. Mauris eu est. Suspendisse id turpis quis orci euismod consequat. Donec tellus mi, luctus sit amet, ultrices a, convallis eu, lorem. Proin faucibus convallis elit. Maecenas rhoncus arcu at arcu. Proin libero. Proin adipiscing. In quis lorem vitae elit consectetuer pretium. Nullam ligula urna, adipiscing nec, iaculis ut, elementum non, turpis. Fusce pulvinar.'
		}
	},
	['greek'] = {
		['start'] = 'Λορεμ ιψων',
		['text'] = {
			' δωλορ σιτ αμετ, κονσεκτετυρ αδιπισικιγγ ελιτ, αλλα δο ειυσμοδ τεμπορ ινκιδιδυντ η λαβορε και δωλορε μαγνα αλιχα. Υτ ενιμ αδ μινιμ ουενιαμ, χις νοστρυδ εξερκιτατιον υλλαμκο λαβορις νισι η αλιχιπ εξ εα κομμωδο κονσεχατ. Δυις αυτε ιρυρε δωλορ ιν ρεπρεχενδεριτ ιν ουωλυπτατε ουελιτ εσσε κιλλων δωλορε ευ φυγιατ νυλλα παριατυρ. Εξκεπτευρ σιντ οκκαικατ κυπιδατατ νον προιδεντ, συντ ιν κυλπα χι οφφικια δεσερυντ μολλιτ ανιμ ιδ εστ λαβορων.',
			'Κυραβιτυρ πρετιων τινκιδυντ λακος. Νυλλα γραυιδα ορκι α ωδιο. Νυλλαμ ουαριος, τυρπις και κομμωδο φαρετρα, εστ ερως βιβενδων ελιτ, νεκ λυκτος μαγνα φελις σολλικιτυδιν μαυρις. Ιντεγερ ιν μαυρις ευ νιβη ευισμοδ γραυιδα. Δυις ακ τελλος και ρισος ουλπυτατε ουεχικυλα. Δονεκ λοβορτις ρισος α ελιτ. Ετιαμ τεμπορ. Υτ υλλαμκορπερ, λιγυλα ευ τεμπορ κογγυε, ερως εστ ευισμοδ τυρπις, ιδ τινκιδυντ σαπιεν ρισος α χαμ. Μαικενας φερμεντων κονσεχατ μι. Δονεκ φερμεντων. Τε πελληντης μαλεσυαδα νυλλα α μι. Δυις σαπιεν σεμ, αλιχετ νεκ, κομμωδο εγετ, κονσεχατ χις, τε νε. Αλιχαμ φαυκιβος, ελιτ η δικτων αλιχετ, φελις νισλ αδιπισκιγγ σαπιεν, αλλα μαλεσυαδα διαμ λακος εγετ ερατ. Κρας μολλις τε σκελερις νυνκ. Νυλλαμ αρκυ. Αλιχαμ κονσεχατ. Κυραβιτυρ αυγυε λορεμ, δαπιβος χις, λαορεετ και, πρετιων ακ, νισι. Αινεαν μαγνα νισλ, μολλις χις, μολεστιε ευ, φευγιατ ιν, ορκι. Ιν ακ αβιτασσε πλατεα δικτυμστ.',
			'Φυσκε κονυαλλις, μαυρις ιμπερδιετ γραυιδα βιβενδων, νισλ τυρπις συσκιπιτ μαυρις, αλλα πλακερατ ιψων υρνα αλλα ρισος. Ιν κονυαλλις τελλος α μαυρις. Κυραβιτυρ νον ελιτ η λιβερο τε τριστι σοδαλης. Μαυρις α λακος. Δονεκ μαθις σεμπερ λεο. Ιν ακ αβιτασσε πλατεα δικτυμστ. Ουιυαμος φακιλισις διαμ ατ ωδιο. Μαυρις δικτων, νισι εγετ κονσεχατ ελεμεντων, λακος λιγυλα μολεστιε μετος, νον φευγιατ ορκι μαγνα ακ σεμ. Δονεκ τυρπις. Δονεκ ουιται μετος. Μορβι τε τριστι τε νε ευ μαυρις. Τε χης γραυιδα ιψων νον σαπιεν. Προιν τυρπις λακος, τε σκελερις ουιται, ελεμεντων ατ, λοβορτις ακ, χαμ. Αλιχαμ δικτων ελειφενδ ρισος. Ιν ακ αβιτασσε πλατεα δικτυμστ. Ετιαμ σιτ αμετ διαμ. Συσπενδισσε ωδιο. Συσπενδισσε νυνκ. Ιν σεμπερ βιβενδων λιβερο.',
			'Προιν νονυμμυ, λακος εγετ πυλυιναρ λακινια, πεδε φελις διγνισσιμ λεο, ουιται τε τριστι μαγνα λακος σιτ αμετ ερως. Νυλλαμ ορναρε. Πραισεντ ωδιο λιγυλα, δαπιβος αλλα, τινκιδυντ εγετ, δικτων ακ, νιβη. Ναμ χις λακος. Νυνκ ελειφενδ μολεστιε ουελιτ. Μορβι λοβορτις χαμ ευ ουελιτ. Δονεκ ευισμοδ ουεστιβυλων μασσα. Δονεκ νον λεκτος. Αλιχαμ κομμωδο λακος σιτ αμετ νυλλα. Κρας διγνισσιμ ελιτ και αυγυε. Νυλλαμ νον διαμ. Τε πελληντης αβιταντ μορβι τε τριστι σενεκτος και νετος και μαλεσυαδα φαμης ακ τυρπις εγεστας. Ιν ακ αβιτασσε πλατεα δικτυμστ. Αινεαν ουεστιβυλων. Σεδ λοβορτις ελιτ χις λεκτος. Νυνκ αλλα λακος ατ αυγυε βιβενδων δαπιβος.',
			'Αλιχαμ ουεχικυλα σεμ η πεδε. Κρας πυρος λεκτος, εγεστας ευ, ουεχικυλα ατ, ιμπερδιετ αλλα, νιβη. Μορβι κονσεκτετυερ λυκτος φελις. Δονεκ ουιται νισι. Αλιχαμ τινκιδυντ φευγιατ ελιτ. Δυις αλλα ελιτ η τυρπις υλλαμκορπερ φευγιατ. Πραισεντ πρετιων, μαυρις αλλα φερμεντων ενδρεριτ, νυλλα λορεμ ιακυλις μαγνα, πυλυιναρ τε σκελερις υρνα τελλος α ιυστο. Συσπενδισσε πυλυιναρ μασσα ιν μετος. Δυις χις χαμ. Προιν ιυστο. Κυραβιτυρ ακ σαπιεν. Ναμ ερατ. Πραισεντ η χαμ.',
			'Ουιυαμος κομμωδο, αυγυε και λαορεετ ευισμοδ, σεμ σαπιεν τεμπορ δωλορ, ακ εγεστας σεμ λιγυλα χις λακος. Δονεκ ουεστιβυλων τορτωρ ακ λακος. Σεδ ποσυερε ουεστιβυλων νισλ. Κυραβιτυρ ελειφενδ φερμεντων ιυστο. Νυλλαμ ιμπερδιετ. Ιντεγερ σιτ αμετ μαυρις ιμπερδιετ ρισος σολλικιτυδιν ρυτρων. Υτ ουιται τυρπις. Νυλλα φακιλισι. Τε χης τορτωρ ουελιτ, τε σκελερις και, φακιλισις ουελ, τεμπορ αλλα, υρνα. Ουιυαμος νυλλα ελιτ, ουεστιβυλων εγετ, σεμπερ και, τε σκελερις εγετ, λακος. Τε πελληντης ουιυερρα πυρος. Τε χης ελιτ. Δονεκ η δωλορ.',
			'Δυις ουωλυτπατ ελιτ και ερατ. Ιν ατ νυλλα ατ νισλ κονδιμεντων αλιχετ. Τε χης ελεμεντων φαρετρα λακος. Νυνκ γραυιδα αρκυ εγετ νυνκ. Νυλλα ιακυλις εγεστας μαγνα. Αλιχαμ ερατ ουλυτπατ. Σεδ τε πελληντης ορκι. Ετιαμ λακος λορεμ, ιακυλις σιτ αμετ, φαρετρα χις, ιμπερδιετ σιτ αμετ, λεκτος. Ιντεγερ χις ελιτ ακ μι αλιχαμ πρετιων. Νυλλαμ μαυρις ορκι, πορθιτορ εγετ, σολλικιτυδιν νον, ουωλπυτατε ιδ, ρισος. Δονεκ ουαριος ενιμ νεκ σεμ. Ναμ αλιχαμ λακινια ενιμ. Τε χης εγετ λορεμ ευ πυρος διγνισσιμ υλτρικιης. Φυσκε πορθιτορ ενδρεριτ αντε. Μαυρις υρνα διαμ, κυρσος ιδ, μαθις εγετ, τεμπος σιτ αμετ, ρισος. Κυραβιτυρ ευ φελις. Σεδ ευ μι. Νυλλαμ λεκτος μαυρις, λυκτος α, μαθις ακ, τεμπος νον, λεο. Κρας μι νυλλα, ρονκος ιδ, λαορεετ υτ, υλτρικιης ιδ, ωδιο.',
			'Δονεκ ιμπερδιετ. Ουεστιβυλων αυκτορ τορτωρ ατ ορκι. Ιντεγερ σεμπερ, νισι εγετ συσκιπιτ ελειφενδ, ερατ νισλ ενδρεριτ ιυστο, εγετ ουεστιβυλων λορεμ ιυστο ακ λεο. Ιντεγερ σεμ ουελιτ, φαρετρα ιν, φριγγιλλα ευ, φερμεντων ιδ, φελις. Ουεστιβυλων αλλα φελις. Ιν ελιτ. Πραισεντ και πεδε ουελ αντε δαπιβος κονδιμεντων. Δονεκ μαγνα. Τε χης ιδ ρισος. Μαυρις ουλπυτατε τε πελληντης λεο. Δυις ουλπυτατε, λιγυλα ατ ουενενατις τινκιδυντ, ορκι νυνκ ιντερδων λεο, ακ εγεστας ελιτ σεμ η λακος. Ετιαμ νον διαμ χις αρκυ εγεστας κομμωδο. Κυραβιτυρ νεκ μασσα ακ μασσα γραυιδα κονδιμεντων. Αινεαν ιδ λιβερο. Τε πελληντης ουιται τελλος. Φυσκε λεκτος εστ, ακκυμσαν ακ, βιβενδων αλλα, πορτα εγετ, αυγυε. Ετιαμ φαυκιβος. Τε χης τεμπος πυρος ευ αντε.',
			'Ουεστιβυλων σαπιεν νισλ, ορναρε αυκτορ, κονσεκτετυερ χις, ποσυερε τε τριστι, ωδιο. Φυσκε υλτρικης υλλαμκορπερ ωδιο. Υτ αυγυε νυλλα, ιντερδων ατ, αδιπισκιγγ νον, τε τριστι εγετ, τε νε. Τε πελληντης αβιταντ μορβι τε τριστι σενεκτος και νετος και μαλεσυαδα φαμης ακ τυρπις εγεστας. Υτ πεδε εστ, κονδιμεντων ιδ, τε σκελερις ακ, μαλεσυαδα νον, χαμ. Προιν ευ λιγυλα ακ σαπιεν συσκιπιτ βλανδιτ. Συσπενδισσε ευισμοδ. Υτ ακκυμσαν, τε νε ιδ γραυιδα λυκτος, αρκυ πεδε σοδαλης φελις, ουελ βλανδιτ μασσα αρκυ εγετ λιγυλα. Αινεαν αλλα τυρπις. Τε πελληντης αβιταντ μορβι τε τριστι σενεκτος και νετος και μαλεσυαδα φαμης ακ τυρπις εγεστας. Δονεκ σεμ ερως, ορναρε υτ, κομμωδο ευ, τεμπορ νεκ, ρισος. Δονεκ λαορεετ δαπιβος λιγυλα. Πραισεντ ορκι λεο, βιβενδων νεκ, ορναρε και, νονυμμυ ιν, ελιτ. Δονεκ ιντερδων φευγιατ λεο. Ουεστιβυλων αντε ιψων πριμις ιν φαυκιβος ορκι λυκτος και υλτρικης ποσυερε κυβιλια Κυραι; Τε πελληντης φευγιατ υλλαμκορπερ ιψων. Δονεκ κονυαλλις τινκιδυντ υρνα.',
			'Συσπενδισσε και ορκι και αρκυ πορθιτορ τε πελληντης. Σεδ λακος νυνκ, φερμεντων ουελ, ουεχικυλα ιν, ιμπερδιετ εγετ, υρνα. Ναμ κονσεκτετυερ ευισμοδ νυνκ. Νυλλα διγνισσιμ ποσυερε νυλλα. Ιντεγερ ιακυλις λακινια μασσα. Νυλλαμ σαπιεν αυγυε, κονδιμεντων ουελ, ουενενατις ιδ, ρονκος τε πελληντης, σαπιεν. Δονεκ αλλα ιψων υλτρικης τυρπις κονσεκτετυερ ιμπερδιετ. Δυις και ιψων ακ νισλ λαορεετ κομμωδο. Μαυρις ευ εστ. Συσπενδισσε ιδ τυρπις χις ορκι ευισμοδ κονσεχατ. Δονεκ τελλος μι, λυκτος σιτ αμετ, υλτρικης α, κονυαλλις ευ, λορεμ. Προιν φαυκιβος κονυαλλις ελιτ. Μαικενας ρονκος αρκυ ατ αρκυ. Προιν λιβερο. Προιν αδιπισκιγγ. Ιν χις λορεμ ουιται ελιτ κονσεκτετυερ πρετιων. Νυλλαμ λιγυλα υρνα, αδιπισκιγγ νεκ, ιακυλις υτ, ελεμεντων νον, τυρπις. Φυσκε πυλυιναρ.'
		}
	}
}

local function _lorem_ipsum(args)
	local par_count = tonumber(args[1]) or 1
	local par_lead = args[2] or ''
	local par_end = args[3] or ''
	
	local link = yesno(args.link or args[4]) or false
	local paragraphs = yesno(args.paragraphs) ~= false
	local demospace = args.demospace or nil
	local script = args.script or 'latin'
	
	local par_break = '\n\n'
	if not paragraphs then
		par_break = ''
	elseif mw.text.trim(par_lead) == '' and par_end ~= ' ' then
		par_break = mw.getCurrentFrame():extensionTag('nowiki', '') .. '\n\n'
	end
	
	local lipsum = lipsum_data[script] or lipsum_data['latin']
	local start = lipsum.start
	
	local pars = {}
	for i = 1, par_count do
		local j = (i - 1) % #(lipsum.text) + 1
		
		local par_start = ''
		if i == 1 and link then
			par_start = '[[Lorem ipsum|' .. start .. ']]'
		elseif j == 1 then
			par_start = start
		end
		
		local par_text = par_start .. lipsum['text'][j]
		if script == 'greek' then
			par_text = greek({par_text})
		end
		
		table.insert(pars, par_lead .. par_text .. par_end)
	end
	
	local cats = {}
	if par_lead ~= '' or par_end ~= '' or link or not paragraphs or script ~= 'latin' then
		table.insert(cats, '[[Category:' .. 'Lorem ipsum with additional parameters' .. ']]')
	end
	if yesno(args.cat) ~= false then
		table.insert(cats, namespace_other({
			[1] = '[[Category:' .. 'Content templates' .. '|' .. 'Lorem ipsum' .. ']]',
			[2] = '',
			['target'] = 'main',
			['demospace'] = demospace
		}))
	end
	
	return table.concat(pars, par_break) .. table.concat(cats)
end

function p.lorem_ipsum(frame)
	local args = getArgs(frame)
	local unblanked_args = getArgs(frame, {removeBlanks = false, trim = false})
	args[2] = unblanked_args[2]
	args[3] = unblanked_args[3]
	return _lorem_ipsum(args)
end

return p