Jump to content

Modulus:Translitteratio/aleatoria

E Vicipaedia
Icon documentationis Documentatio moduli[ostende] [recense] [historiam inspice] [purga]

Formula {{Translitteratio/aleatoria}} obsolevit!

Quaesumus ne hac formula utaris.

Hic vetus functio {{#invoke:translitteratio|aleatoria}} mota est. Quum sit en:Module:Params#unique_coins, functio aleatoria habenda est obsoleta.

{{#invoke:translitteratio/aleatoria|nomen functionis}}

De functionibus

[fontem recensere]

aleatoria

[fontem recensere]

Haec pars augenda est.

Haec functio argumentum speciale sine textu in nomine (|=...) adhibet ad quendam textum legendum. Talis textus est index commatibus separatus (at alius character in locum commatis substitui potest – vide infra). Alia argumenta scriptiones definiunt quae ostendentur (ordine fortuito) si elementum est in indice.

Ut alius character in loco comatis adhibeatur, utere argumento speciali |,=....

Ut alius character vel cunctum verbum in loco signi exclamationis adhibeatur ad negationes indicandas, utere argumento speciali |!=....

Codex manuscriptus:

{{#invoke:translitteratio/aleatoria|translitteratio_aleatoria
	| = html, sine murmuribus
	| html = &wpGenerateRawHtml=1
	| xml = &wpGenerateXml=1
	| ! sine murmuribus = &wpRemoveComments=0
	| sine nowiki = &wpRemoveNowiki=1
}}

Effectus:

&wpGenerateRawHtml=1


Codex manuscriptus:

{{#invoke:translitteratio/aleatoria|translitteratio_aleatoria
	| = xml, sine nowiki
	| html = &wpGenerateRawHtml=1
	| xml = &wpGenerateXml=1
	| ! sine murmuribus = &wpRemoveComments=0
	| sine nowiki = &wpRemoveNowiki=1
}}

Effectus:

&wpRemoveComments=0&wpRemoveNowiki=1&wpGenerateXml=1


Codex manuscriptus:

{{#invoke:translitteratio/aleatoria|translitteratio_aleatoria
	| , = /
	| ! = NON
	| = html / xml / sine nowiki
	| html = &wpGenerateRawHtml=1
	| xml = &wpGenerateXml=1
	| NON sine murmuribus = &wpRemoveComments=0
	| sine nowiki = &wpRemoveNowiki=1
}}

Effectus:

&wpRemoveComments=0&wpGenerateRawHtml=1&wpGenerateXml=1&wpRemoveNowiki=1

Ulteriora si cupis

[fontem recensere]
require[[strict]]


local ifacies = {}


ifacies.translitteratio_aleatoria = function (frame)

	local argg = {}
	for arg, txt in pairs(frame.args) do argg[arg] = txt end

	local sep
	if argg[','] ~= nil then sep = argg[',']:match'^%s*(.*%S)' end
	if sep == nil then sep = ',' elseif string.len(sep) > 1 then error(
		'Module:Translitteratio: Argumentum ‘,’ in functione ‘aleatoria’ unum characterem tantum continere potest', 0
	) end

	local neg
	if argg['!'] ~= nil then neg = argg['!']:match'^%s*(.*%S)' end
	if neg == nil then neg = '!' end

	local lneg = string.len(neg)
	local textus = sep .. (argg[''] or '') .. sep

	argg[''] = nil
	argg['!'] = nil
	argg[','] = nil

	local reddenda = {}
	local quaesita = {}
	local responsa = { '' }
	local nresp = 1
	local esep = '%s*' .. sep .. '%s*'
	local einit = '^' .. sep .. '?'
	local eneg = sep .. '%s*' .. neg .. '%s*'
	local sneg = sep .. neg
	local epartitio = sep .. '([^' .. sep .. ']*)'
	local quaesitum

	for arg, txt in pairs(argg) do
		nresp = nresp + 1
		for res in
			arg:gsub('[%%^%$%?%*%+%-%.%(%)%[%]]', '%%%0')
			:gsub(esep, sep):gsub(einit, sep):gsub(eneg, sneg)
			:gsub('%s+', '%%s*'):gmatch(epartitio)
		do
			if res ~= '' and res ~= sep and res ~= neg then
				if res:sub(1, lneg) == neg then
					quaesitum = sep .. '%s*' ..
						res:sub(lneg + 1) .. '%s*' ..
						sep
					if quaesita[quaesitum] ~= nil then
						quaesita[quaesitum][2] = nresp
					else
						quaesita[quaesitum] = { 1,
							nresp }
					end
				else
					quaesitum = sep .. '%s*' .. res ..
						'%s*' .. sep
					if quaesita[quaesitum] ~= nil then
						quaesita[quaesitum][1] = nresp
					else
						quaesita[quaesitum] = { nresp,
							1 }
					end
				end
			end
		end

		responsa[nresp] = txt

	end

	for nummus, bivium in pairs(quaesita) do
		if string.find(textus, nummus) ~= nil then
			table.insert(reddenda, responsa[bivium[1]])
		else
			table.insert(reddenda, responsa[bivium[2]])
		end
	end

	return table.concat(reddenda)

end


return ifacies