Documentation[voir] [modifier] [historique] [purger]

Module pour faciliter l’utilisation des modèles quand le contenu d’un paramètre contient beaucoup de "|" sans avoir à les échapper.

Utilisation modifier

Fonctions 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 modifier

Pour 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.




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