Module:Matériau : Différence entre versions
m |
|||
Ligne 2 : | Ligne 2 : | ||
local wikidata = require('Module:Wikidata') | local wikidata = require('Module:Wikidata') | ||
local linguistic = require('Module:Linguistique') | local linguistic = require('Module:Linguistique') | ||
+ | |||
+ | local speciallabels = { -- valeur du libellé défini ici plutôt que dans l'élément Wikidata (pour adaptation au contexte, léger gain de performance) | ||
+ | Q174705 = '[[Peinture à l\'huile|huile]]' | ||
+ | } | ||
function p.formatFromItem(item) | function p.formatFromItem(item) | ||
Ligne 12 : | Ligne 16 : | ||
local supportvals = {} -- comme dans huile ''sur toile'' | local supportvals = {} -- comme dans huile ''sur toile'' | ||
for i, j in pairs(materials) do | for i, j in pairs(materials) do | ||
− | local val = wikidata.formatSnak(j.mainsnak) | + | local val = wikidata.formatSnak(j.mainsnak, {speciallabels = speciallabels}) |
local typ = 'main' -- changé en 'support' s'il faut la mettre sur supportstr | local typ = 'main' -- changé en 'support' s'il faut la mettre sur supportstr | ||
if j.qualifiers and j.qualifiers.P518 then -- P518: "s'applique à " | if j.qualifiers and j.qualifiers.P518 then -- P518: "s'applique à " | ||
Ligne 26 : | Ligne 30 : | ||
table.insert(mainvals, val) | table.insert(mainvals, val) | ||
end | end | ||
− | + | end | |
− | + | ||
− | + | local main = (linguistic.conj(mainvals) or '') .. '[[Catégorie:Page utilisant des données de Wikidata/P186]]' | |
− | + | local support = linguistic.conj(supportvals) | |
− | + | if support then | |
− | + | return main .. ' sur ' .. support | |
− | + | else | |
+ | return main | ||
end | end | ||
end | end | ||
return p | return p |
Version du 10 mars 2015 à 08:08
La documentation pour ce module peut être créée à Module:Matériau/doc
local p = {} local wikidata = require('Module:Wikidata') local linguistic = require('Module:Linguistique') local speciallabels = { -- valeur du libellé défini ici plutôt que dans l'élément Wikidata (pour adaptation au contexte, léger gain de performance) Q174705 = '[[Peinture à l\'huile|huile]]' } function p.formatFromItem(item) -- affiche le matériau en fonction de Property:P186, et de son qualificatif P518 ('s'applique à') local materials = wikidata.getClaims{item = item, property = 'P186'} if not materials then return nil end local mainvals = {} local supportvals = {} -- comme dans huile ''sur toile'' for i, j in pairs(materials) do local val = wikidata.formatSnak(j.mainsnak, {speciallabels = speciallabels}) local typ = 'main' -- changé en 'support' s'il faut la mettre sur supportstr if j.qualifiers and j.qualifiers.P518 then -- P518: "s'applique à " if wikidata.getRawvalue(j.qualifiers.P518[1]) == 'Q861259' then typ = 'support' else val = val ..linguistic.inparentheses(wikidata.formatSnak(j.qualifiers.P518[1], {link = '-'})) -- enlève le lien qui fait moche ici end end if typ == 'support' then table.insert(supportvals, val) else table.insert(mainvals, val) end end local main = (linguistic.conj(mainvals) or '') .. '[[Catégorie:Page utilisant des données de Wikidata/P186]]' local support = linguistic.conj(supportvals) if support then return main .. ' sur ' .. support else return main end end return p