Module:ConcatArgs
Module pour faciliter l’utilisation des modèles quand le contenu d’un paramètre contient beaucoup de "|" sans avoir à les échapper.
Utilisation
modifierFonctions exportables :
ConcatArgs(frame)
– concaténer les arguments numérotés de la frame parente en les séparant par des|
. Paramètres de la frame enfant : "init": "min": commencer la concaténation des arguments numéroter à partir d’un certain indice.
Exemples
modifierPour des exemples, voir la page de test permettant de tester diverses modifications apportées. Exemple principal d’utilisation, le d:Template:SPARQL sur Wikidata, parce que des "|" sont utilisés dans les requêtes SPARQL. Le modèle a un paramètre "query" utilisé en valeur "init". Le reste des paramètres, après les "|", est donc placé dans les paramètres nommés.
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.
local p = {}
function table.slice(tbl, first, last, step)
local sliced = {}
for i = first or 1, last or #tbl, step or 1 do
sliced[#sliced+1] = tbl[i]
end
return sliced
end
p.slice = table.slice
local function count_args(table)
local nargs = 0
for num, _ in ipairs(table) do
nargs = math.max(num, nargs)
end
return nargs
end
function p.ConcatArgs(frame)
local pargs = frame:getParent().args
local init = tonumber(frame.args["init"]) or frame.args["init"]
local slice = table.slice(
pargs,
tonumber(frame.args["min"]),
count_args(pargs)
)
if (init) then table.insert(slice, 1, pargs[init]) end
return table.concat(slice, "|")
end
return p