“モジュール:File link” のwerson間の差分
細 (已更改“Module:File link”的保护设置:高風險模板:5001引用<!-- 機器人3 -->([编辑=仅允许模板编辑员](无限期)[移动=仅允许模板编辑员](无限期))) |
細 (1版 をインポートしました) |
||
14行目: | 14行目: | ||
if type(val) ~= 'string' then | if type(val) ~= 'string' then | ||
error(string.format( | error(string.format( | ||
" | "'_main'関数における'%s'引数のタイプエラー(想定:文字列、実際:%s)", | ||
key, type(val) | key, type(val) | ||
), level) | ), level) | ||
85行目: | 85行目: | ||
}) | }) | ||
if not origArgs.file then | if not origArgs.file then | ||
error(" | error("[[Template:File link]]のエラー: 'file'引数が未入力です", 0) | ||
end | end | ||
2024 ppm 3 2024-03-04T13:39:03+00:00up 4 312024 (Kun.) 13:39時点におけるwerson
このモジュールについての説明文ページを モジュール:File link/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( "'_main'関数における'%s'引数のタイプエラー(想定:文字列、実際:%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("[[Template:File link]]のエラー: 'file'引数が未入力です", 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' then v = '' end args[k] = v end return p._main(args) end return p