Module:Title

Une page de Wikiversité.
Sauter à la navigation Sauter à la recherche

Ce module sert d'exemple dans la leçon Initiation au Lua avec Scribunto. son utilisation est décrite en détail dans celle-ci et, par conséquent, ce module ne doit pas être modifié sans tenir compte de la leçon.


local p = {}

function p.creation(frame)
	local reponse = ""
	local title = mw.title.makeTitle(frame.args[1],frame.args[2])
	reponse = reponse.."<br />Le titre de la page dont on vient de créer l’objet Title est : "..title.prefixedText
	return reponse
end

function p.visualisation(frame)
	title = mw.title.new(frame.args[1])
	reponse = ""
	for index, objet in pairs(title) do
		reponse = reponse.."</br>À la clé '''"..index.."''', on trouve un objet de type : "..type(objet)
	end
	return reponse
end

function p.redirection(frame)
	local page = frame.args[1]
	local title = mw.title.new(page)
	if title.Redirect then
		return "</br>La page '''[["..page.."]]''' est une redirection."
	else
		return "</br>La page '''[["..page.."]]''' n’est pas une redirection."
	end
end

function p.titre()
	local titr = mw.title.getCurrentTitle()
	return "Le titre de cette page est : "..titr.text
end

function p.discussion(frame)
	local page = frame.args[1]
	local title = mw.title.new(page)
	if title.isTalkPage then
		return "</br>La page '''"..page.."''' est une page de discussion."
	else
		return "</br>La page '''"..page.."''' n’est pas une page de discussion."
	end
end

function p.existe(frame)
	local reponse = ""
	local page = frame.args[1]
	local title = mw.title.new(page)
	if title then
		reponse = reponse.."L'objet title existe "
	else
		reponse = reponse.."L'objet title n'existe pas "
	end
	if title.exists then
		reponse = reponse.."et la page existe. "
	else
		reponse = reponse.."et la page n'existe pas. "
	end
	return reponse
end

function p.discute(frame)
	local page = frame.args[1]
	local title = mw.title.new(page)
	if title.canTalk then
		return "</br>La page '''"..page.."''' peut avoir une page de discussion."
	else
		return "</br>La page '''"..page.."''' ne peut pas avoir une page de discussion."
	end
end

function p.mot(frame)
	local mot = frame.args[1]
	local page = "Statique/Présentation de la leçon"
	local title = mw.title.new(page)
	local texte = title.getContent(title)
	local position = mw.ustring.find(texte,mot)
	if position then
		return "Le mot "..mot.." a été trouvé en position "..position
	else
		return "Le mot "..mot.." n'a pas été trouvé dans la page"
	end
end

function p.souspage(frame)
	local page = frame.args[1]
	local title = mw.title.new(page)
	if title.isSubpage then
		return "</br>La page '''"..page.."''' est une sous-page."
	else
		return "</br>La page '''"..page.."''' n’est pas une sous-page."
	end
end

function p.special(frame)
	local page = frame.args[1]
	local title = mw.title.new(page)
	if title.isSpecialPage then
		return "</br>La page '''"..page.."''' est une page spéciale."
	else
		return "</br>La page '''"..page.."''' n’est pas une page spéciale."
	end
end

function p.basepagetitle(frame)
	local reponse = ""
	local page = frame.args[1]
	local title = mw.title.new(page)
	local titlebase = title.basePageTitle
	reponse = reponse.."<br />Le premier objet title concerne la page : "..title.prefixedText
	reponse = reponse.."<br />Le deuxième objet title concerne la page : "..titlebase.prefixedText
	return reponse
end

function p.base(frame)
	local reponse = ""
	local page = frame.args[1]
	local title = mw.title.new(page)
	reponse = reponse.."Pour la page : '''"..page.."''', ''title.baseText'' nous donne : '''"..title.baseText.."'''."
	return reponse
end

function p.locale(frame)
	local page = frame.args[1]
	local title = mw.title.new(page)
	if title.isLocal then
		return "</br>La page '''"..page.."''' est locale au projet."
	else
		return "</br>La page '''"..page.."''' n’est pas locale au projet."
	end
end

function p.identifiant(frame)
	local reponse = ""
	local page = frame.args[1]
	local title = mw.title.new(page)
	if title.exists then
		reponse = reponse.."La page existe. "
	else
		reponse = reponse.."La page n'existe pas. "
	end
	reponse = reponse.."L'identifiant de la page est "..title.id
	return reponse
end

function p.subpage(frame)
	local reponse = ""
	local page = frame.args[1]
	local title = mw.title.new(page)
	reponse = reponse.."Pour la page : '''"..page.."''', ''title.subpageText'' nous donne : '''"..title.subpageText.."'''."
	return reponse
end

function p.contenu(frame)
	local page = frame.args[1]
	local title = mw.title.new(page)
	if title.isContentPage then
		return "</br>La page '''"..page.."''' est une page de contenu."
	else
		return "</br>La page '''"..page.."''' n’est pas une page de contenu."
	end
end

function p.num_espace(frame)
	local page = frame.args[1]
	local title = mw.title.new(frame.args[1])
	return "</br>La page '''"..page.."''' se trouve dans l'espace de numéro : ".. title.namespace
end

return p