Module:Infobox/Format de données

De Wiki Les Usines
Aller à la navigation Aller à la recherche

-- Module pour afficher un format de données

-- Importe les modules nécessaires local wikidata = require( 'Module:Wikidata' ) local general = require( 'Module:Infobox/Fonctions' ) local localdata = require( 'Module:Infobox/Localdata' )

-- Variables et fonctions utilisées dans certaines lignes d'infobox local isContainer = wikidata.isInstance('Q167772', item, 0)

local function specification(number) if (number == '1') then return 'Format propriétaire' elseif (number == '2') then return 'Format ouvert' end return nil end

local function affichageHexa(x)

 local t = ""
 for c in x:gmatch".." do
   t = t .. c .. " "
 end
 return "" .. t:gsub("^%s*(.-)%s*$", "%1") .. " (hexa)"

end

local function affichageSignature(value, qual) if not qual then return "" .. value .. "" end local qualifierId = qual[1].datavalue.value.id --for k,v in pairs(qual) do -- qualifierId = v.datavalue.value.id -- break --end

   if (qualifierId == "Q82828") then
       return affichageHexa(value)
   elseif (qualifierId == "Q8815") then
       return "" .. value .. " (ascii)"
   elseif (qualifierId == "Q35432091") then
       return "" .. value .. " (PRONOM regex)"
   elseif (qualifierId == "Q125267") then
       return "" .. value .. " (PCRE)"
   elseif (qualifierId == "Q185612") then
       return "" .. value .. " (regex)"
   else
       return "" .. value .. ""
   end

end

-- voir https://fr.wikipedia.org/wiki/Aide:Infobox_en_Lua return { maincolor = '#C0C0C0', parts = { -- paramètre 'nom complet' en sous-titre general.title('informatique', nil, 'nom complet'), general.mainimage('Article à illustrer Format de données'), general.logo(), { type = 'table', title = 'Caractéristiques', rows = { { type = 'row', label = 'Extension', plurallabel = 'Extensions', value = 'extension', wikidata = { -- Les propriétés de rang normal et preferred entity = item, property = 'P1195', rank = 'valid', conjtype = 'comma', linkback = 'P1195', displayformat = function(snak) return '.' .. snak.datavalue.value .. '' end, } }, { type = 'row', label = 'Type MIME', value = 'mime', wikidata = { property = 'P1163', separator = ' ', rank = 'valid', ucfirst = '-', displayformat = function(snak) return ' ' .. snak.datavalue.value .. '' end, } }, { type = 'row', label = 'PUID', value = 'puid', wikidata = { entity = item, property = 'P2748', excludespecial = true, conjtype = 'comma', linkback = 'P2748', urlpattern = 'https://www.nationalarchives.gov.uk/pronom/$1' -- définit la forme de l'url pour chaque propriété } }, { type = 'row', label = 'Signature', plurallabel = 'Signatures', value = 'signature', -- Affichage selon le type d'encodage (P3294) wikidata = { property = 'P4152', excludespecial = true, conjtype = '
', linkback = 'P4152', statementformat = function(statement) return affichageSignature(statement.mainsnak.datavalue.value, wikidata.getQualifiers(statement, {"P3294"})) end } }, { type = 'row', label = 'Développé par', value = 'développeur', property = 'P178', }, { type = 'row', label = 'Version initiale', value = 'version initiale', property = 'P577', }, { type = 'row', label = 'Type de format', value = 'genre', property = 'P136', }, { type = 'row', label = 'Conteneur de fichiers', value = 'conteneur de', wikidata = { property = 'P527', condition = function() return isContainer end, ucfirst = '-' } }, { type = 'row', label = 'Contenu par', value = 'contenu par', }, { type = 'row', label = 'Basé sur', value = 'extension de', property = 'P144', }, { type = 'row', label = 'Origine de', value = 'origine de', }, { type = 'row', label = 'Norme', value = 'standard' }, { type = 'row', label = 'ISO', blockers = 'standard', -- pour éviter les doublons cette ligne Wikidata est désactivé lorsque le champ "standard" est renseigné localement property = 'P503' }, { type = 'row', label = 'Spécification', value = function ( localdata ) return specification(localdata['spécification'] or localdata['specification'] ) end, }, general.website(), } }, } }