Módulo:forma verbo/pronominales

Documentación del módulo
Módulo usado por las plantillas «forma verbo» y «participio». Lo que hace es detectar si un verbo no pronominal tiene una página para su forma pronominal que además utiliza la plantilla {{verbo pronominal}} (lo que asegura que dicha página tenga una acepción pronominal).
Esta documentación está transcluida desde Módulo:forma verbo/pronominales/doc.
Los editores pueden experimentar en la zona de pruebas de este módulo.
Por favor, añade las categorías e interwikis a la subpágina de documentación. Subpáginas de este módulo.
local p = {}

function p.main(frame)
	local verb = frame.args[1]
	if not verb then return '' end
	
	local pargs = frame:getParent().args
	local lang = pargs.leng or 'es'
	local arg2 = pargs[2] or pargs.p
	
	-- no queremos que genere un enlace al verbo pronominal para las
	-- formas del infinitivo y del gerundio
	if
		arg2 == 'inf' or arg2 == 'infinitivo' or
		arg2 == 'ger' or arg2 == 'gerundio'
	then
		return ''
	end
	
	local refl
	local header = '{{verbo pronominal|' .. lang .. '}}'
	
	-- lista de idiomas soportados y el correspondiente título a buscar
	-- mediante concatenación (para el español: verbo + 'se')
	if lang == 'es' then
		if string.sub(verb, -2) == 'se' then return '' end  -- ya era pronominal
		refl = mw.title.new(verb .. 'se', 0)
	end

	-- no modificar
	if refl
		and refl.exists
		and (string.find(refl:getContent(), header))
	then
		return 's'
	else
		return ''
	end
end

return p