Mudanças

Ir para navegação Ir para pesquisar

Módulo:Link de arquivo

3 328 bytes adicionados, 22h47min de 26 de março de 2020
Criou página com '-- This module provides a library for formatting file wikilinks. local yesno = require('Module:Yesno') local checkType = require('libraryUtil').checkType local p = {} funct...'
-- 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

Menu de navegação