<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ar">
	<id>https://3rabica.org/index.php?action=history&amp;feed=atom&amp;title=%D9%88%D8%AD%D8%AF%D8%A9%3AParameters</id>
	<title>وحدة:Parameters - تاريخ المراجعة</title>
	<link rel="self" type="application/atom+xml" href="https://3rabica.org/index.php?action=history&amp;feed=atom&amp;title=%D9%88%D8%AD%D8%AF%D8%A9%3AParameters"/>
	<link rel="alternate" type="text/html" href="https://3rabica.org/index.php?title=%D9%88%D8%AD%D8%AF%D8%A9:Parameters&amp;action=history"/>
	<updated>2026-06-05T09:04:04Z</updated>
	<subtitle>تاريخ التعديل لهذه الصفحة في الويكي</subtitle>
	<generator>MediaWiki 1.43.7</generator>
	<entry>
		<id>https://3rabica.org/index.php?title=%D9%88%D8%AD%D8%AF%D8%A9:Parameters&amp;diff=459&amp;oldid=prev</id>
		<title>عبد العزيز في 19:00، 18 مايو 2020</title>
		<link rel="alternate" type="text/html" href="https://3rabica.org/index.php?title=%D9%88%D8%AD%D8%AF%D8%A9:Parameters&amp;diff=459&amp;oldid=prev"/>
		<updated>2020-05-18T19:00:45Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;صفحة جديدة&lt;/b&gt;&lt;/p&gt;&lt;div&gt;-- This module implements [[Template:Parameters]].&lt;br /&gt;
-- [SublimeLinter luacheck-globals:mw]&lt;br /&gt;
local DEFINITIONS =&lt;br /&gt;
{&lt;br /&gt;
    [&amp;quot;image&amp;quot;] =    {&lt;br /&gt;
        [&amp;quot;code&amp;quot;] = &amp;#039;&amp;lt;!--  مثل example.jpg --&amp;gt;&amp;#039;,&lt;br /&gt;
        [&amp;quot;dlist&amp;quot;] = &amp;#039;مثل example.jpg&amp;#039;,&lt;br /&gt;
        },&lt;br /&gt;
    [&amp;quot;صورة&amp;quot;] =    {&lt;br /&gt;
        [&amp;quot;code&amp;quot;] = &amp;#039;&amp;lt;!--  مثل example.jpg --&amp;gt;&amp;#039;,&lt;br /&gt;
        [&amp;quot;dlist&amp;quot;] = &amp;#039;مثل example.jpg&amp;#039;,&lt;br /&gt;
        },&lt;br /&gt;
	[&amp;quot;alt&amp;quot;] = {&lt;br /&gt;
		[&amp;quot;code&amp;quot;] = &amp;#039;&amp;lt;!-- text alternative for image; see WP:ALT --&amp;gt;&amp;#039;,&lt;br /&gt;
		[&amp;quot;dlist&amp;quot;] = &amp;#039;text alternative for image; see [[WP:ALT]]&amp;#039;},&lt;br /&gt;
	[&amp;quot;coordinates&amp;quot;] = {&lt;br /&gt;
		[&amp;quot;code&amp;quot;] = &amp;#039;&amp;lt;!-- استخدم {{Coord}} --&amp;gt;&amp;#039;,&lt;br /&gt;
		[&amp;quot;dlist&amp;quot;] = &amp;#039;استخدم {{قا|Coord}}&amp;#039;},&lt;br /&gt;
	[&amp;quot;coords&amp;quot;] = {&lt;br /&gt;
		[&amp;quot;code&amp;quot;] = &amp;#039;&amp;lt;!-- استخدم {{Coord}} --&amp;gt;&amp;#039;,&lt;br /&gt;
		[&amp;quot;dlist&amp;quot;] = &amp;#039;استخدم  {{قا|Coord}}&amp;#039;},&lt;br /&gt;
	[&amp;quot;native_name&amp;quot;] = {&lt;br /&gt;
		[&amp;quot;code&amp;quot;] = &amp;#039;&amp;lt;!-- name in local language; if more than one, separate &amp;#039; ..&lt;br /&gt;
			&amp;#039;using {{قائمة بسيطة}} use {{رمز لغة}}, and omit native_name_lang --&amp;gt;&amp;#039;,&lt;br /&gt;
		[&amp;quot;dlist&amp;quot;] = &amp;#039;name in local language; if more than one, separate &amp;#039; ..&lt;br /&gt;
			&amp;#039;using {{قا|قائمة بسيطة}}, use {{قا|رمز لغة}}, and omit {{Para|native_name_lang}}&amp;#039;},&lt;br /&gt;
	[&amp;quot;native_name_lang&amp;quot;] = {&lt;br /&gt;
		[&amp;quot;code&amp;quot;] = &amp;#039;&amp;lt;!-- language two- or three-letter ISO code --&amp;gt;&amp;#039;,&lt;br /&gt;
		[&amp;quot;dlist&amp;quot;] = &amp;#039;language two- or three-letter ISO code&amp;#039;},&lt;br /&gt;
	[&amp;quot;start_date&amp;quot;] = {&lt;br /&gt;
		[&amp;quot;code&amp;quot;] = &amp;#039;&amp;lt;!-- {{تاريخ بداية|YYYY|MM|DD|df=y}} --&amp;gt;&amp;#039;,&lt;br /&gt;
		[&amp;quot;dlist&amp;quot;] = &amp;#039;استخدم {{Tlx|Start date|YYYY|MM|DD|df=y}}&amp;#039;},&lt;br /&gt;
	[&amp;quot;end_date&amp;quot;] = {&lt;br /&gt;
		[&amp;quot;code&amp;quot;] = &amp;#039;&amp;lt;!-- {{تاريخ نهاية|YYYY|MM|DD|df=y}} --&amp;gt;&amp;#039;,&lt;br /&gt;
		[&amp;quot;dlist&amp;quot;] = &amp;#039;استخدم {{Tlx|Start date|YYYY|MM|DD|df=y}}&amp;#039;},&lt;br /&gt;
	[&amp;quot;url&amp;quot;] = {&lt;br /&gt;
		[&amp;quot;code&amp;quot;] = &amp;#039;&amp;lt;!-- استخدم {{مسار|example.com}} --&amp;gt;&amp;#039;,&lt;br /&gt;
		[&amp;quot;dlist&amp;quot;] = &amp;#039;استخدم {{قا|URL}}&amp;#039;},&lt;br /&gt;
	[&amp;quot;website&amp;quot;] = {&lt;br /&gt;
		[&amp;quot;code&amp;quot;] = &amp;#039;&amp;lt;!-- استخدم {{مسار|example.com}} --&amp;gt;&amp;#039;,&lt;br /&gt;
		[&amp;quot;dlist&amp;quot;] = &amp;#039;استخدم {{Tls|URL|example.com}}&amp;#039;},}&lt;br /&gt;
&lt;br /&gt;
local p = {}&lt;br /&gt;
local removeDuplicates = require(&amp;#039;Module:TableTools&amp;#039;).removeDuplicates&lt;br /&gt;
local yesno = require(&amp;#039;Module:Yesno&amp;#039;)&lt;br /&gt;
&lt;br /&gt;
local function makeInvokeFunction(funcName)&lt;br /&gt;
	return function(frame)&lt;br /&gt;
		local getArgs = require(&amp;#039;Module:Arguments&amp;#039;).getArgs&lt;br /&gt;
		return p[funcName](getArgs(frame, {removeBlanks = false}))&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function extractParams(page)&lt;br /&gt;
	local source = mw.title.new(page, &amp;#039;Template&amp;#039;):getContent()&lt;br /&gt;
&lt;br /&gt;
	local parameters = {}&lt;br /&gt;
	for parameter in string.gmatch(source, &amp;#039;{{{(.-)%f[}|&amp;lt;&amp;gt;]&amp;#039;) do&lt;br /&gt;
		table.insert(parameters, parameter)&lt;br /&gt;
	end&lt;br /&gt;
     return removeDuplicates(parameters)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function map(tbl, transform)&lt;br /&gt;
	local returnTable = {}&lt;br /&gt;
	for k, v in pairs(tbl) do&lt;br /&gt;
		returnTable[k] = transform(v)&lt;br /&gt;
	end&lt;br /&gt;
	return returnTable&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function strMap(tbl, transform)&lt;br /&gt;
	local returnTable = map(tbl, transform)&lt;br /&gt;
	return table.concat(returnTable)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p._check(args)&lt;br /&gt;
	local title = args._base or mw.title.getCurrentTitle().fullText&lt;br /&gt;
	local unknown = args.unknown or &amp;#039;[[تصنيف:صفحات تستخدم &amp;#039;..title ..&amp;#039; مع وسائط غير معروفة|_VALUE_]]&amp;#039; --&amp;#039; &amp;#039;--&lt;br /&gt;
	--local preview = args.preview or &amp;quot;الوسيط &amp;#039;&amp;#039;&amp;#039;_VALUE_&amp;#039;&amp;#039;&amp;#039; غير مدعوم في [[&amp;quot;.. title ..&amp;quot;]]&amp;quot;&lt;br /&gt;
	local template = string.gsub(title, &amp;#039;قالب:&amp;#039;, &amp;#039;&amp;#039;)&lt;br /&gt;
	return string.format(&lt;br /&gt;
		&amp;#039;&amp;lt;!-- هذا النص تم توليده تلقائياً بواسطة [[قالب:Parameters]]  \n&amp;#039; ..&lt;br /&gt;
		&amp;#039; --&amp;gt;&amp;#039; ..&lt;br /&gt;
		&amp;#039;{{#استدعاء:Check for unknown parameters|check\n&amp;#039; ..&lt;br /&gt;
		&amp;#039;|unknown=%s\n&amp;#039; ..&lt;br /&gt;
		--&amp;#039;|preview =%s\n&amp;#039; ..&lt;br /&gt;
		&amp;#039;|template =%s\n&amp;#039; ..&lt;br /&gt;
		&amp;#039;|%s}}&amp;lt;!-- &amp;#039;..&lt;br /&gt;
		&amp;#039;\n --&amp;gt;&amp;#039;, unknown&lt;br /&gt;
	--	, preview,&lt;br /&gt;
		,template,&lt;br /&gt;
		table.concat(extractParams(args.base), &amp;#039;|&amp;#039;))&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p._code(args)&lt;br /&gt;
	local definitions = yesno(args.definitions, true)&lt;br /&gt;
	local pad = yesno(args.pad)&lt;br /&gt;
&lt;br /&gt;
	local parameters = extractParams(args.base)&lt;br /&gt;
	-- Space-pad the parameters to align the equal signs vertically&lt;br /&gt;
	if pad then&lt;br /&gt;
		local lengthPerPara = map(parameters, function (parameter)&lt;br /&gt;
			return string.len(parameter) end)&lt;br /&gt;
		-- Lua doesn&amp;#039;t support printf&amp;#039;s &amp;lt;*&amp;gt; to specify the width, apparently&lt;br /&gt;
		local fs = string.format(&amp;#039;%%-%ss&amp;#039;, math.max(unpack(lengthPerPara)))&lt;br /&gt;
		for i, parameter in pairs(parameters) do&lt;br /&gt;
			parameters[i] = string.format(fs, parameter)&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local title = args._base or mw.title.getCurrentTitle().baseText&lt;br /&gt;
	return string.format([[{{%s&lt;br /&gt;
%s}}]], title, strMap(parameters,&lt;br /&gt;
		function(s)&lt;br /&gt;
			if definitions then&lt;br /&gt;
				return string.format(&amp;#039;| %s = %s\n&amp;#039;, s,&lt;br /&gt;
					DEFINITIONS[s] and DEFINITIONS[s].code or &amp;#039;&amp;#039;)&lt;br /&gt;
			else&lt;br /&gt;
				return string.format(&amp;#039;| %s = \n&amp;#039;, s)&lt;br /&gt;
			end&lt;br /&gt;
		end))&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
function p._codeauto(args)&lt;br /&gt;
	local definitions = yesno(args.definitions, true)&lt;br /&gt;
	--local definitions = getpramvalue(args.definitions)&lt;br /&gt;
	local pad = yesno(args.pad)&lt;br /&gt;
&lt;br /&gt;
	local parameters = extractParams(args.base)&lt;br /&gt;
	-- Space-pad the parameters to align the equal signs vertically&lt;br /&gt;
	if pad then&lt;br /&gt;
		local lengthPerPara = map(parameters, function (parameter)&lt;br /&gt;
			return string.len(parameter) end)&lt;br /&gt;
		-- Lua doesn&amp;#039;t support printf&amp;#039;s &amp;lt;*&amp;gt; to specify the width, apparently&lt;br /&gt;
		local fs = string.format(&amp;#039;%%-%ss&amp;#039;, math.max(unpack(lengthPerPara)))&lt;br /&gt;
		for i, parameter in pairs(parameters) do&lt;br /&gt;
			parameters[i] = string.format(fs, parameter)&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local title = args._base or mw.title.getCurrentTitle().baseText&lt;br /&gt;
	local params = strMap(parameters,&lt;br /&gt;
		function(s)&lt;br /&gt;
			if definitions then&lt;br /&gt;
				dee =  string.format(&amp;#039;| %s = %s\n&amp;#039;, s,&lt;br /&gt;
					DEFINITIONS[s] and DEFINITIONS[s].code or &amp;#039;&amp;#039;)&lt;br /&gt;
			else&lt;br /&gt;
				dee =  string.format(&amp;#039;| %s = \n&amp;#039;, s)&lt;br /&gt;
			end&lt;br /&gt;
			return dee&lt;br /&gt;
	end)&lt;br /&gt;
	local dert =  string.format([[{{%s&lt;br /&gt;
%s}}]], title, params )&lt;br /&gt;
	&lt;br /&gt;
	if not dee or dee == &amp;#039;&amp;#039; or params == &amp;quot;| state = \n&amp;quot; or params == &amp;quot;|  = \n&amp;quot;&lt;br /&gt;
	then &lt;br /&gt;
		return nil&lt;br /&gt;
	else&lt;br /&gt;
		mw.log( &amp;quot;&amp;#039;&amp;quot; .. params .. &amp;quot;&amp;#039;&amp;quot; )&lt;br /&gt;
		return dert&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
function p._compare(args)&lt;br /&gt;
	local Set = require(&amp;#039;Module:Set&amp;#039;)&lt;br /&gt;
&lt;br /&gt;
	local function normaliseParams(parameters)&lt;br /&gt;
		local paramsNorm = {}&lt;br /&gt;
		-- Prepare a key lookup metatable, which will hold the original&lt;br /&gt;
		-- parameter names for each normalised parameter, e.g.&lt;br /&gt;
		-- [test] = {TEST, Test}. paramIndex functions like a Python&lt;br /&gt;
		-- defaultdict, where the default is a table.&lt;br /&gt;
		local paramIndex = setmetatable({}, {__index = function(t, k)&lt;br /&gt;
			if not rawget(t, k) then&lt;br /&gt;
				rawset(t, k, {})&lt;br /&gt;
			end&lt;br /&gt;
			return rawget(t, k)&lt;br /&gt;
		end})&lt;br /&gt;
		for _, parameter in pairs(parameters) do&lt;br /&gt;
			table.insert(paramsNorm,&lt;br /&gt;
				string.lower(string.gsub(parameter, &amp;#039;%A&amp;#039;, &amp;#039;&amp;#039;)))&lt;br /&gt;
			table.insert(paramIndex[&lt;br /&gt;
				string.lower(string.gsub(parameter, &amp;#039;%A&amp;#039;, &amp;#039;&amp;#039;))], parameter)&lt;br /&gt;
		end&lt;br /&gt;
&lt;br /&gt;
		paramsNorm = removeDuplicates(paramsNorm)&lt;br /&gt;
		-- Overload key lookup in paramsNorm. While [[Module:Set]] will&lt;br /&gt;
		-- operate on the table (which is to say, the normalised parameters&lt;br /&gt;
		-- array), key access will be by way of the paramIndex metatable.&lt;br /&gt;
		setmetatable(paramsNorm, {__index = paramIndex})&lt;br /&gt;
		return paramsNorm&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local baseParams = extractParams(args.base)&lt;br /&gt;
	local otherParams = extractParams(args.other)&lt;br /&gt;
	local baseNormParams = normaliseParams(Set.valueComplement(&lt;br /&gt;
			otherParams, baseParams))&lt;br /&gt;
	local otherNormParams = normaliseParams(otherParams)&lt;br /&gt;
&lt;br /&gt;
	return string.format([[وسائط مطابقة:&lt;br /&gt;
&lt;br /&gt;
%s&lt;br /&gt;
&lt;br /&gt;
وسائط القالب %s:&lt;br /&gt;
&lt;br /&gt;
%s&lt;br /&gt;
&lt;br /&gt;
متفرقة بين القالبين:&lt;br /&gt;
&lt;br /&gt;
%s]],&lt;br /&gt;
	strMap(Set.valueIntersection(baseParams, otherParams),&lt;br /&gt;
		function(v) return string.format(&amp;#039;%s؛ &amp;#039;, v) end),&lt;br /&gt;
	args.other ,&lt;br /&gt;
	strMap(Set.valueIntersection(baseNormParams, otherNormParams),&lt;br /&gt;
		function(v) return string.format(&amp;#039;* %s &amp;lt; %s [%s]\n&amp;#039;,&lt;br /&gt;
			table.concat(baseNormParams[v], &amp;#039;؛ &amp;#039;),&lt;br /&gt;
			table.concat(otherNormParams[v], &amp;#039;؛ &amp;#039;),&lt;br /&gt;
			v)&lt;br /&gt;
		end),&lt;br /&gt;
	strMap(Set.valueComplement(otherNormParams, baseNormParams),&lt;br /&gt;
		function(v) return strMap(baseNormParams[v],&lt;br /&gt;
			function(s) return string.format(&amp;#039;%s؛ &amp;#039;, s) end)&lt;br /&gt;
		end))&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p._demo(args)&lt;br /&gt;
	local title = args._base and (&amp;#039;|_template=&amp;#039; .. args._base) or &amp;#039;&amp;#039;&lt;br /&gt;
	local display = args._display and (&amp;#039;|_display=&amp;#039; .. args._display) or &amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
	return string.format(&lt;br /&gt;
		&amp;#039;&amp;lt;!-- هذا النص تم توليده تلقائياً بواسطة [[قالب:Parameters]]  \n&amp;#039; ..&lt;br /&gt;
		&amp;#039; --&amp;gt;&amp;#039; ..&lt;br /&gt;
		&amp;#039;{{مثال وسائط قالب \n&amp;#039; ..&lt;br /&gt;
		&amp;#039;%s\n&amp;#039;..&lt;br /&gt;
		&amp;#039;%s\n&amp;#039;..&lt;br /&gt;
		&amp;#039;|%s}}&amp;lt;!-- &amp;#039;..&lt;br /&gt;
		&amp;#039;\n --&amp;gt;&amp;#039;, title, display,&lt;br /&gt;
		table.concat(extractParams(args.base), &amp;#039;|&amp;#039;))&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p._vlist(args)&lt;br /&gt;
&lt;br /&gt;
	return string.format(&lt;br /&gt;
		&amp;#039;\n{{رأس بيانات القالب}}\n&amp;#039; ..&lt;br /&gt;
		&amp;#039;{{div|700|70}}&amp;#039; ..&lt;br /&gt;
		&amp;#039;\n&amp;lt;templatedata&amp;gt;\n&amp;#039; ..&lt;br /&gt;
		&amp;#039;{\n&amp;#039; ..&lt;br /&gt;
		&amp;#039;	&amp;quot;params&amp;quot;: {\n&amp;#039; ..&lt;br /&gt;
		&amp;#039;		&amp;quot;%s&amp;#039;..&lt;br /&gt;
		&amp;#039;&amp;quot;: {}\n&amp;#039;..&lt;br /&gt;
		&amp;#039;},\n&amp;quot;format&amp;quot;: &amp;quot;block&amp;quot;\n&amp;#039;..&lt;br /&gt;
		&amp;#039;}&amp;#039;..&lt;br /&gt;
		&amp;#039;&amp;lt;/templatedata&amp;gt;\n{{div2}}&amp;#039;, &lt;br /&gt;
		table.concat(extractParams(args.base), &amp;#039;&amp;quot;: {},\n		&amp;quot;&amp;#039;))&lt;br /&gt;
end&lt;br /&gt;
function p._dlist(args)&lt;br /&gt;
	local definitions = yesno(args.definitions, true)&lt;br /&gt;
	return strMap(extractParams(args.base),&lt;br /&gt;
		function(s)&lt;br /&gt;
			if definitions then&lt;br /&gt;
				return string.format(&amp;#039;; %s: %s\n&amp;#039;, s,&lt;br /&gt;
					DEFINITIONS[s] and DEFINITIONS[s].dlist or &amp;#039;&amp;#039;)&lt;br /&gt;
			else&lt;br /&gt;
				return string.format(&amp;#039;; %s: \n&amp;#039;, s)&lt;br /&gt;
			end&lt;br /&gt;
		end)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p._list(args)&lt;br /&gt;
	return strMap(extractParams(args.base),&lt;br /&gt;
		function(s) return string.format(&amp;#039;* %s\n&amp;#039;, s) end)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
p.check = makeInvokeFunction(&amp;#039;_check&amp;#039;)&lt;br /&gt;
p.code = makeInvokeFunction(&amp;#039;_code&amp;#039;)&lt;br /&gt;
p.codeauto = makeInvokeFunction(&amp;#039;_codeauto&amp;#039;)&lt;br /&gt;
p.compare = makeInvokeFunction(&amp;#039;_compare&amp;#039;)&lt;br /&gt;
p.demo = makeInvokeFunction(&amp;#039;_demo&amp;#039;)&lt;br /&gt;
p.dlist = makeInvokeFunction(&amp;#039;_dlist&amp;#039;)&lt;br /&gt;
p.list = makeInvokeFunction(&amp;#039;_list&amp;#039;)&lt;br /&gt;
p.vlist = makeInvokeFunction(&amp;#039;_vlist&amp;#039;)&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>عبد العزيز</name></author>
	</entry>
</feed>