Módulo:Link de arquivo
Ir para navegação
Ir para pesquisar
A documentação para este módulo pode ser criada em Módulo:Link de arquivo/doc
-- This module provides a library for formatting file wikilinks. local yesno = require('Module:Yesno') local checkType = require('libraryUtil').checkType local p = {} function p._main(args) checkType('_main', 1, args, 'table') -- This is basically libraryUtil.checkTypeForNamedArg, but we are rolling our -- own function to get the right error level. local function checkArg(key, val, level) if type(val) ~= 'string' then error(string.format( "erro de tipo em parâmetro '%s' de '_main' (string esperado, recebido(a) %s)", key, type(val) ), level) end end local ret = {} -- Adds a positional parameter to the buffer. local function addPositional(key) local val = args[key] if not val then return nil end checkArg(key, val, 4) ret[#ret + 1] = val end -- Adds a named parameter to the buffer. We assume that the parameter name -- is the same as the argument key. local function addNamed(key) local val = args[key] if not val then return nil end checkArg(key, val, 4) ret[#ret + 1] = key .. '=' .. val end -- Filename args.file = args.file or args.ficheiro or args.arquivo checkArg('file', args.file, 3) ret[#ret + 1] = 'Ficheiro:' .. args.file -- Format args.format = args.format or args.formato args.formatfile = args.formatfile or args.ficheiroformato or args.arquivoformato if args.format then checkArg('format', args.format) if args.formatfile then checkArg('formatfile', args.formatfile) ret[#ret + 1] = args.format .. '=' .. args.formatfile else ret[#ret + 1] = args.format end end -- Border if yesno(args.border or args.borda) then ret[#ret + 1] = 'border' end addPositional('location') addPositional('localização') addPositional('alignment') addPositional('alinhamento') addPositional('size') addPositional('tamanho') addNamed('upright') addNamed('vertical') addNamed('link') addNamed('ligação') addNamed('alt') addNamed('page') addNamed('página') addNamed('class') addNamed('classe') addNamed('lang') addNamed('líng') addNamed('ling') addNamed('língua') addNamed('idioma') addNamed('start') addNamed('iniciar') addNamed('começar') addNamed('início') addNamed('começo') addNamed('end') addNamed('fim') addNamed('finalizar') addNamed('terminar') addNamed('thumbtime') addNamed('tempominiatura') addPositional('caption') addPositional('legenda') return string.format('[[%s]]', table.concat(ret, '|')) end function p.main(frame) local origArgs = require('Módulo:Arguments').getArgs(frame, { wrappers = 'Predefinição:Link de arquivo' }) if not origArgs.file and not origArgs.ficheiro and not origArgs.arquivo then error("Parâmetro 'file', 'ficheiro' ou 'arquivo' em falta em [[Predefinição:Link de arquivo]]", 0) end -- Copy the arguments that were passed to a new table to avoid looking up -- every possible parameter in the frame object. local args = {} for k, v in pairs(origArgs) do -- Make _BLANK a special argument to add a blank parameter. For use in -- conditional templates etc. it is useful for blank arguments to be -- ignored, but we still need a way to specify them so that we can do -- things like [[File:Example.png|link=]]. if v == '_BLANK' or v == '_EMBRANCO' then v = '' end args[k] = v end return p._main(args) end return p