Module:Numéro Q
Apparence
[voir] [modifier] [historique] [purger]
Module support pour {{Numéro Q}} :
Q1
Q1
Utilisation
Fonctions exportables :
numero(frame)
– Fonction appelable depuis un modèle. Tente de trouver le numéro Q pertinent à partir d’un titre d’article, d’une url d’un élément Wikidata, ou d’une chaîne sous la forme "Qxxxx" .- Paramètres, voir au dessous et la documentation de {{Numéro Q}}
_numero(input, erreur_si_non_trouve, test_redirection)
– fonction lua appelée par la fonction au dessus, exportée pour appeler depuis un autre module Lua. Paramètre:- input
- une chaîne. Peut-être un titre d’article, une uri pour copier/coller depuis la barre d’adresse sur Wikidata, un wikilien au format [[titre]]
- erreur_si_non_trouvé
- par défaut "oui", positionner à "non" si on ne veut qu’une chaîne vide et pas une chaîne d’erreur de modèle wiki dans le cas où la fonction ne trouve pas d’identifiant.
- test_redirection
- booléen. Dans le cas où le titre d’article n’a pas d’élément et si on affiche une erreur, signaler si c’est un titre de redirection.
Modules externes et autres éléments dont ce module a besoin pour fonctionner :
mw.title
– description (courte description expliquant la dépendance de ce module externe).
Exemples
Pour des exemples, voir la page de test permettant de tester diverses modifications apportées.
Q1
Q1
Q42891670
La documentation de ce module est générée par le modèle {{Documentation module}}.
Elle est incluse depuis sa sous-page de documentation. Veuillez placer les catégories sur cette page-là.
Les éditeurs peuvent travailler dans le bac à sable (créer).
Voir les statistiques d'appel depuis le wikicode sur l'outil wstat et les appels depuis d'autres modules.
-- extracting Q titles from wikilinks like [[d:Q1]], [[:d:Q1]], [[wikidata:Q1]], [[d:Q1|Q1]] or [[d:Q1|plop]]
local function id_from_wd_wikilink(link)
attempt = link
:gsub("^%[%[:?d:", "")
:gsub("^%[%[:?wikidata:", "")
:gsub("%|.*%]%]$", "")
:gsub("%]%]$", "")
if attempt:find("^Q[0-9]+$") then return attempt end
end
-- in case template family like {{PAGENAME}} with its bug are used, apply the
local function qid_from_htmlcoded_title(link)
return mw.wikibase.getEntityIdForTitle(mw.title.makeTitle("", mw.getCurrentFrame():callParserFunction("#titleparts", link)).text)
end
local function id_from_any(link, test_redirection)
local title = mw.title.makeTitle("", link)
local maybe_qid = id_from_wd_wikilink(link) or
(title and mw.wikibase.getEntityIdForTitle(title.text)) or
qid_from_htmlcoded_title(link)
if maybe_qid then return maybe_qid end
if (not maybe_qid) and test_redirection then
if title.isRedirect then
error("le titre « " .. link .. " » est une redirection qui n’est pas reliée à un élément Wikidata" )
end
end
error("l’article de titre « " .. link .. " » n’existe pas ou n’est pas lié à un élément Wikidata" )
end
return {
id_from_wd_wikilink = id_from_wd_wikilink,
id_from_any = id_from_any,
numero = function (frame)
local tester_redirection = true
if not frame.args[1] or frame.args[1] == '' then
error("pas de titre d’article fourni au modèle (probablement « Numéro Q »), c’est un paramètre requis")
end
if frame.args["tester_redirection"] and frame.args["tester_redirection"] == "non" then
tester_redirection = false
end
return id_from_any(
frame.args[1],
tester_redirection
)
end
}