Module:Infobox/Localdata

De Aknotl
Version datée du 3 juillet 2021 à 19:02 par Infobox>Od1n (optimisation (surtout que ce module est chargé plusieurs fois par infobox et qu'il peut y avoir de nombreux paramètres) : mw.text.trim() coûteux seulement pour les paramètres non-nommés, et apparemment il n'y en a jamais ; remarquer que maintenant c'est la valeur trimmée qui est stockée dans localdata)
(diff) ← Version précédente | Voir la version actuelle (diff) | Version suivante → (diff)

La documentation pour ce module peut être créée à Module:Infobox/Localdata/doc

local localdata = {}

local wikidata = require('Module:Wikidata')
local frame = mw.getCurrentFrame()
local modulename =  frame.args.nom
local parent = frame:getParent() or frame
local templatename = parent:getTitle() -- au cas où il soit différent du nom du module
local params = parent.args

-- fill-up table localdata using params
for k, v in pairs(params) do
	if type(k) == number then
		v = mw.text.trim(v)
	end
	if v ~= '' then -- empty parameters are ignored
		localdata[k] = v
	end
end
localdata.templatename = templatename
localdata.modulename = modulename

-- load wikidata item:
localdata.item = wikidata.getEntity(localdata.wikidata)

return localdata