Jump to content
تغییر منو
Toggle preferences menu
تغییر منوی شخصی
به سامانه وارد نشده‌اید
نشانی آی‌پی شما در صورت انجام هرگونه ویرایش به صورت عمومی قابل مشاهده خواهد بود.

پودمان:File link: تفاوت میان نسخه‌ها

از ویکی احکام
fawiki>Yamaha5
جز Yamaha5 صفحهٔ پودمان:File link/تمرین را بدون برجای‌گذاشتن تغییرمسیر به پودمان:File link منتقل کرد
 
Template:Infobox>MusikAnimal
Undid revision 948472508 by [[Special:Contributions/w>IPad365|w>IPad365]] ([[User talk:w>IPad365|talk]])
خط ۱۴: خط ۱۴:
if type(val) ~= 'string' then
if type(val) ~= 'string' then
error(string.format(
error(string.format(
"خطای نوع در پارامتر «%s» از «_main» (رشته انتظار می‌رفت، %s دریافت شد)",
"type error in '%s' parameter of '_main' (expected string, got %s)",
key, type(val)
key, type(val)
), level)
), level)
خط ۴۵: خط ۴۵:
-- Filename
-- Filename
checkArg('file', args.file, 3)
checkArg('file', args.file, 3)
ret[#ret + 1] = 'پرونده:' .. args.file
ret[#ret + 1] = 'File:' .. args.file


-- Format
-- Format
خط ۸۲: خط ۸۲:
function p.main(frame)
function p.main(frame)
local origArgs = require('Module:Arguments').getArgs(frame, {
local origArgs = require('Module:Arguments').getArgs(frame, {
wrappers = 'الگو:File link'
wrappers = 'Template:File link'
})
})
if not origArgs.file then
if not origArgs.file then
error("پارامتر «file» از [[الگو:File link]] حذف شده‌است", 0)
error("'file' parameter missing from [[Template:File link]]", 0)
end
end



نسخهٔ ‏۱ آوریل ۲۰۲۰، ساعت ۰۶:۳۱

توضیحات این پودمان می‌تواند در پودمان: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 [[Template: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 [[File:Example.png|link=]].
		if v == '_BLANK' then
			v = ''
		end
		args[k] = v
	end
	return p._main(args)
end

return p