请输入您要查询的百科知识:

 

词条 Module:File link
释义 -- 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(

"type error in '%s' parameter of '_main' (expected string, got %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

checkArg('file', args.file, 3)

ret[#ret + 1] = 'File:' .. args.file

-- Format

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) then

ret[#ret + 1] = 'border'

end

addPositional('location')

addPositional('alignment')

addPositional('size')

addNamed('upright')

addNamed('link')

addNamed('alt')

addNamed('page')

addNamed('class')

addNamed('lang')

addNamed('start')

addNamed('end')

addNamed('thumbtime')

addPositional('caption')

return string.format('%s', table.concat(ret, '|'))

end

function p.main(frame)

local origArgs = require('Module:Arguments').getArgs(frame, {

wrappers = 'Template:File link'

})

if not origArgs.file then

error("'file' parameter missing from File link", 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 .

if v == '_BLANK' then

v =

end

args[k] = v

end

return p._main(args)

end

return p

随便看

 

开放百科全书收录14589846条英语、德语、日语等多语种百科知识,基本涵盖了大多数领域的百科知识,是一部内容自由、开放的电子版国际百科全书。

 

Copyright © 2023 OENC.NET All Rights Reserved
京ICP备2021023879号 更新时间:2024/9/21 20:36:55