Transforme des textes en lien externe

Utilisation

modifier

Fonctions :

  • fonction(lien, texte) – crée un lien vers lien et affiche le texte test, ou à défaut, affiche l'URL du lien moins le "http://" initial. Ne retourne rien si lien est nul ou égal à "-".
  • fonction(liste, séparateur) – crée des liens vers toutes les URL indiquées dans une table passée comme paramètre 1 et les sépare par le paramètre séparateur.

Exemples

modifier

Pour des exemples, voir la page de test permettant de tester diverses modifications apportées.



local p = {}

function p.makelink(url, showntext)
	if (not url) or (url == "-") then 
		return nil
	end

	--I validation de l'url (paramètre URL)
	url = mw.text.trim(url)


	-- II texte à afficher (paramètre "showntext")

	--- valeur spéciale : aucun texte
	if showntext == "-" then
		return url
	end

	--- laissé vide : texte basé sur l'URL
	if not showntext then
		if mw.ustring.sub(url, 1, 1) == "[" then
			return url
		end
		local space =  mw.ustring.find(url, ' ') -- si le nom du site est passé par mégarde dans l'URL, le séparer
		if space then
			local full = url
			url = mw.ustring.sub(full, 2, space - 1)
			showntext =	mw.ustring.sub(full, space)
		else
			showntext = string.gsub( url, 'https?://', '')
		end
		---- remove trailing slash
		if string.sub(showntext, #showntext, #showntext) == '/' then
			showntext = string.sub(showntext, 1, #showntext - 1)
		end
	end

	return '[' .. url ..  ' ' ..  showntext .. ']'
end

function p.makelinks(stringlist, separator)
	if not type(stringlist) == table then
		return error('stringlist should be table')
	end
	if not separator then
		separator = '<br />'
	end
	for i, j in pairs(stringlist) do
		stringlist[i] = p.makelink(k)
	return table.concat(stringlist, separator )
	end
end

return p