<?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%3ACite%2F%D9%86%D8%B3%D8%AE%D8%A9</id>
	<title>وحدة:Cite/نسخة - تاريخ المراجعة</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%3ACite%2F%D9%86%D8%B3%D8%AE%D8%A9"/>
	<link rel="alternate" type="text/html" href="https://3rabica.org/index.php?title=%D9%88%D8%AD%D8%AF%D8%A9:Cite/%D9%86%D8%B3%D8%AE%D8%A9&amp;action=history"/>
	<updated>2026-06-11T07:54:11Z</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:Cite/%D9%86%D8%B3%D8%AE%D8%A9&amp;diff=428&amp;oldid=prev</id>
		<title>عبد العزيز في 19:47، 18 يوليو 2022</title>
		<link rel="alternate" type="text/html" href="https://3rabica.org/index.php?title=%D9%88%D8%AD%D8%AF%D8%A9:Cite/%D9%86%D8%B3%D8%AE%D8%A9&amp;diff=428&amp;oldid=prev"/>
		<updated>2022-07-18T19:47:53Z</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;local p = {}&lt;br /&gt;
local cite_functions = require(&amp;quot;Module:Cite/functions&amp;quot;)&lt;br /&gt;
local wikidata = require(&amp;quot;وحدة:Wikidata2/نسخة&amp;quot;).formatStatementsFromLua&lt;br /&gt;
local wikidata2 = require(&amp;quot;وحدة:Wikidata2/نسخة&amp;quot;).formatEntityId2 -- table&lt;br /&gt;
local quall = require(&amp;quot;Module:Cite/quall&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
function p.authorlist(auth,name)&lt;br /&gt;
	if not auth or auth == &amp;#039;&amp;#039; then return nil end&lt;br /&gt;
	local list = mw.text.split( auth, &amp;#039;، و&amp;#039;)&lt;br /&gt;
	local s = {}&lt;br /&gt;
	for i, auth in pairs(list) do&lt;br /&gt;
		local str = &amp;#039;|&amp;#039; .. name .. i .. &amp;#039;=&amp;#039; .. auth&lt;br /&gt;
	if str then table.insert(s, str) end&lt;br /&gt;
	end&lt;br /&gt;
	return table.concat(s, &amp;#039;\n&amp;#039;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function P1629(pid)&lt;br /&gt;
    local Label = wikidata2(pid, {nolink = &amp;quot;true&amp;quot;, noref=&amp;quot;true&amp;quot;}).value&lt;br /&gt;
	local pro = wikidata({property=&amp;quot;P1629&amp;quot;, nolink=&amp;quot;true&amp;quot;, entityId=pid, firstvalue=&amp;quot;true&amp;quot;, noref=&amp;quot;true&amp;quot;, label=Label})&lt;br /&gt;
	return pro&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function ValueFromItem(items, pid, firstvalue)&lt;br /&gt;
	local pattern = &amp;quot;autourl&amp;quot;&lt;br /&gt;
	if pid == &amp;quot;P212&amp;quot; or pid == &amp;quot;P957&amp;quot; then&lt;br /&gt;
		pattern = nil&lt;br /&gt;
	end -- no automatic link for ISBN&lt;br /&gt;
	for i, item in pairs(items) do&lt;br /&gt;
		ednumber = wikidata({entityId=item, property=pid, firstvalue=firstvalue, pattern=pattern, noref=&amp;quot;true&amp;quot;, modifytime=&amp;quot;longdate&amp;quot;, enlabelcate=&amp;quot;true&amp;quot;, separator=&amp;quot;، و&amp;quot;, conjunction=&amp;quot;، و&amp;quot;})&lt;br /&gt;
	end&lt;br /&gt;
	return ednumber&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function ValueFromEntityId(qid, pid, firstvalue)&lt;br /&gt;
	local pattern = &amp;quot;autourl&amp;quot;&lt;br /&gt;
	if pid == &amp;quot;P345&amp;quot; then&lt;br /&gt;
		pattern = &amp;quot;&amp;quot;&lt;br /&gt;
	end&lt;br /&gt;
	local val = wikidata({entityId=qid, property=pid, firstvalue=firstvalue, pattern=pattern, noref=&amp;quot;true&amp;quot;, modifytime=&amp;quot;longdate&amp;quot;, enlabelcate=&amp;quot;true&amp;quot;})&lt;br /&gt;
	if pid == &amp;quot;P345&amp;quot; then&lt;br /&gt;
		val = cite_functions.make_P345_link_o(val)&lt;br /&gt;
	end&lt;br /&gt;
	if val then&lt;br /&gt;
		return val&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function GetValueFromEntityId(claims, qid, pid, text, first)&lt;br /&gt;
	local Pattern = &amp;quot;autourl&amp;quot;&lt;br /&gt;
	if pid == &amp;quot;P345&amp;quot; then&lt;br /&gt;
		Pattern = &amp;quot;&amp;quot;&lt;br /&gt;
	end&lt;br /&gt;
	local url = wikidata({property=pid, firstvalue=first, noref=&amp;quot;true&amp;quot;, pattern=Pattern, modifytime=&amp;quot;longdate&amp;quot;}, claims)&lt;br /&gt;
	if not url or url == &amp;quot;&amp;quot; then&lt;br /&gt;
		url = ValueFromEntityId(qid, pid, first)&lt;br /&gt;
	end&lt;br /&gt;
	if pid == &amp;quot;P345&amp;quot; then&lt;br /&gt;
		url = cite_functions.make_P345_link_o(url)&lt;br /&gt;
	end&lt;br /&gt;
	return url&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function GetItemValue(items, claims, pid, text, firstvalue)&lt;br /&gt;
	local pattern = &amp;quot;autourl&amp;quot;&lt;br /&gt;
	local prop = wikidata({property=pid, firstvalue=(firstvalue or &amp;quot;&amp;quot;), pattern=pattern, noref=&amp;quot;true&amp;quot;, modifytime=&amp;quot;longdate&amp;quot;, separator=&amp;quot;، و&amp;quot;, conjunction=&amp;quot;، و&amp;quot;&lt;br /&gt;
		}, claims)&lt;br /&gt;
    &lt;br /&gt;
	if not prop then&lt;br /&gt;
		prop = ValueFromItem(items, pid, (firstvalue or &amp;quot;&amp;quot;))&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	if prop and prop ~= &amp;quot;&amp;quot; then&lt;br /&gt;
		if text and text ~= &amp;quot;&amp;quot; then&lt;br /&gt;
			prop = text .. prop&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	return prop&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function Getauthor(items, claims)&lt;br /&gt;
	local P50 = GetItemValue(items, claims, &amp;quot;P50&amp;quot;, &amp;quot;&amp;quot;,&amp;quot;&amp;quot;,&amp;quot;&amp;quot;)&lt;br /&gt;
	local P2093 = GetItemValue(items, claims, &amp;quot;P2093&amp;quot;, &amp;quot;&amp;quot;,&amp;quot;&amp;quot;,&amp;quot;&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
	if P50 and P50 ~= &amp;quot;&amp;quot; and P2093 and P2093 ~= &amp;quot;&amp;quot; then&lt;br /&gt;
		return P50 .. &amp;quot;، و&amp;quot; .. P2093&lt;br /&gt;
&lt;br /&gt;
	elseif P2093 and P2093 ~= &amp;quot;&amp;quot; then&lt;br /&gt;
		return P2093&lt;br /&gt;
&lt;br /&gt;
	elseif P50 and P50 ~= &amp;quot;&amp;quot; then&lt;br /&gt;
		return P50&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function GetNumberFromItem(items, claims, pid, text, firstvalue)&lt;br /&gt;
	local prop = wikidata({property=pid, firstvalue=&amp;quot;t&amp;quot;}, claims)&lt;br /&gt;
    &lt;br /&gt;
	if not prop then&lt;br /&gt;
        for i, item in pairs(items) do&lt;br /&gt;
            ednumber = wikidata({entityId=item, property=pid, firstvalue=&amp;quot;true&amp;quot;, noref=&amp;quot;true&amp;quot;})&lt;br /&gt;
            if ednumber and ednumber ~= &amp;quot;&amp;quot; then&lt;br /&gt;
                prop = ednumber&lt;br /&gt;
                break&lt;br /&gt;
            end&lt;br /&gt;
        end&lt;br /&gt;
	end&lt;br /&gt;
	if prop and prop ~= &amp;quot;&amp;quot; then&lt;br /&gt;
		if text and text ~= &amp;quot;&amp;quot; then&lt;br /&gt;
			prop = text .. prop&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	return prop&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function getISBN(items, claims)&lt;br /&gt;
	local ISBN13 = GetNumberFromItem(items, claims, &amp;quot;P212&amp;quot;, &amp;quot;|ISBN=&amp;quot;, &amp;quot;yes&amp;quot;) --ISBN 13&lt;br /&gt;
	if not ISBN13 or ISBN13 == &amp;quot;&amp;quot; then&lt;br /&gt;
		ISBN13 = GetNumberFromItem(items, claims, &amp;quot;P957&amp;quot;, &amp;quot;|ISBN=&amp;quot;, &amp;quot;yes&amp;quot;) --ISBN 10&lt;br /&gt;
	end&lt;br /&gt;
	return ISBN13&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--[[&lt;br /&gt;
  جلب أي وصلة مرجع من الخواص مثل&lt;br /&gt;
	 P1065, P854&lt;br /&gt;
--]]&lt;br /&gt;
local function getLink(items, claims, pid, text)&lt;br /&gt;
	local links = wikidata({property=pid, pattern=&amp;quot;true&amp;quot;, noref=&amp;quot;true&amp;quot;, firstvalue=&amp;quot;t&amp;quot;}, claims)&lt;br /&gt;
	if not text or text == &amp;quot;&amp;quot; then&lt;br /&gt;
		text = &amp;quot;|url =&amp;quot;&lt;br /&gt;
	end&lt;br /&gt;
	if links and links ~= &amp;quot;&amp;quot; then&lt;br /&gt;
		return text .. links&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function get_Link_from_item(items, claims, pid)&lt;br /&gt;
	local links = GetItemValue(items, claims, pid, &amp;quot;&amp;quot;, &amp;quot;true&amp;quot;)&lt;br /&gt;
	if links and links ~= &amp;quot;&amp;quot; then&lt;br /&gt;
		return &amp;quot;|url =&amp;quot; .. links&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--[[&lt;br /&gt;
  جلب أي تاريخ من الخواص مثل&lt;br /&gt;
	 P813, P577&lt;br /&gt;
--]]&lt;br /&gt;
local function getdate(items, claims, pid, text)&lt;br /&gt;
	local date = {}&lt;br /&gt;
	local datetime = wikidata({property=pid, modifytime=&amp;quot;longdate&amp;quot;, enlabelcate=&amp;quot;true&amp;quot;}, claims)&lt;br /&gt;
	for i, item in pairs(items) do&lt;br /&gt;
		local datetime1 = wikidata({entityId=item, property=pid, noref=&amp;quot;true&amp;quot;, enlabelcate=&amp;quot;true&amp;quot;, modifytime=&amp;quot;longdate&amp;quot;}&lt;br /&gt;
		)&lt;br /&gt;
		if not datetime or datetime == &amp;quot;&amp;quot; then&lt;br /&gt;
			datetime = datetime1&lt;br /&gt;
		end&lt;br /&gt;
		table.insert(date, datetime)&lt;br /&gt;
	end&lt;br /&gt;
	local tot = table.concat(date, &amp;quot; &amp;quot;) --	—&lt;br /&gt;
	if tot and tot ~= &amp;quot;&amp;quot; then&lt;br /&gt;
		if text then&lt;br /&gt;
			return text .. tot --text ..&amp;#039;: &amp;#039;.. tot&lt;br /&gt;
		else&lt;br /&gt;
			return tot&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function getwhatever(items, claims, pid, title)&lt;br /&gt;
	local a = P1629(pid)&lt;br /&gt;
	if pid == &amp;quot;P143&amp;quot; then&lt;br /&gt;
		a = &amp;quot;&amp;quot;&lt;br /&gt;
	end&lt;br /&gt;
	if pid == &amp;quot;P248&amp;quot; then&lt;br /&gt;
		a = &amp;quot;&amp;quot;&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	if a and a ~= &amp;quot;&amp;quot; then&lt;br /&gt;
		a = a .. &amp;quot;: &amp;quot; --title .. a&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local s = {}&lt;br /&gt;
	local ss = wikidata({property=pid, conjunction=&amp;quot;, &amp;quot;}, claims)&lt;br /&gt;
	for i, item in pairs(items) do&lt;br /&gt;
		local sss = wikidata({entityId=item, property=pid, noref=&amp;quot;true&amp;quot;, conjunction=&amp;quot;, &amp;quot;})&lt;br /&gt;
		if not ss or ss == &amp;quot;&amp;quot; then&lt;br /&gt;
			ss = sss&lt;br /&gt;
		end&lt;br /&gt;
		table.insert(s, ss)&lt;br /&gt;
	end&lt;br /&gt;
	fi = table.concat(s, &amp;quot;, &amp;quot;)&lt;br /&gt;
	if fi and fi ~= &amp;quot;&amp;quot; then&lt;br /&gt;
		f = &amp;quot;|work =&amp;quot; .. (a or &amp;quot;&amp;quot;) .. fi&lt;br /&gt;
	end&lt;br /&gt;
	if #s &amp;gt; 0 then&lt;br /&gt;
		return f&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--[[&lt;br /&gt;
   يجلب خواص معينة عند وجود مراجع محددة مسبقاً&lt;br /&gt;
--]]&lt;br /&gt;
local function getsomequall(items, claims, qid, pid)&lt;br /&gt;
	if&lt;br /&gt;
		claims[pid] and claims[pid][1] and claims[pid][1].datavalue and&lt;br /&gt;
			claims[pid][1].datavalue.value[&amp;quot;numeric-id&amp;quot;]&lt;br /&gt;
	 then&lt;br /&gt;
		house = claims[pid][1].datavalue.value[&amp;quot;numeric-id&amp;quot;]&lt;br /&gt;
		local l10n = quall[house]&lt;br /&gt;
		if l10n then&lt;br /&gt;
			local q = {}&lt;br /&gt;
			for _, v in pairs(l10n) do&lt;br /&gt;
				mw.log(&amp;quot;finding &amp;quot; .. v[1] .. &amp;quot;house&amp;quot; .. house)&lt;br /&gt;
				b = GetValueFromEntityId(claims, qid, v[1], (v[2] or &amp;quot;&amp;quot;), &amp;quot;true&amp;quot;)&lt;br /&gt;
				if b and b ~= &amp;quot;&amp;quot; then&lt;br /&gt;
					return b&lt;br /&gt;
				end&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function Getlanguage(items, claims)&lt;br /&gt;
	lang_prop = {&amp;quot;P364&amp;quot;, &amp;quot;P407&amp;quot;}&lt;br /&gt;
	local qid = &amp;quot;&amp;quot;&lt;br /&gt;
	for _, prop in pairs(lang_prop) do&lt;br /&gt;
        if claims[prop] then&lt;br /&gt;
            qid = wikidata({property=prop, firstvalue=&amp;quot;t&amp;quot;, formatting=&amp;quot;raw&amp;quot;, noref=&amp;quot;true&amp;quot;}, claims)&lt;br /&gt;
            if qid and qid ~= &amp;quot;&amp;quot; then&lt;br /&gt;
                break&lt;br /&gt;
            end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	if qid == &amp;quot;&amp;quot; then&lt;br /&gt;
		for i, item in pairs(items) do&lt;br /&gt;
			qid = wikidata({entityId=item, property=&amp;quot;P364&amp;quot;, firstvalue=&amp;quot;t&amp;quot;, formatting=&amp;quot;raw&amp;quot;, noref=&amp;quot;true&amp;quot;})&lt;br /&gt;
			if qid and qid ~= &amp;quot;&amp;quot; then&lt;br /&gt;
				break&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	local lang = &amp;quot;&amp;quot;&lt;br /&gt;
	if qid and qid ~= &amp;quot;&amp;quot; then&lt;br /&gt;
        mw.log(qid)&lt;br /&gt;
		lang = wikidata({entityId=qid, property=&amp;quot;P218&amp;quot;, noref=&amp;quot;true&amp;quot;, firstvalue=&amp;quot;t&amp;quot;})&lt;br /&gt;
		if lang and lang ~= &amp;quot;&amp;quot; then&lt;br /&gt;
			lang = &amp;quot;|language =&amp;quot; .. lang&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	return lang&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function gettherest(items, claims, qid)&lt;br /&gt;
	local s = {}&lt;br /&gt;
	for i, j in pairs(claims) do&lt;br /&gt;
		for k, l in pairs(cite_functions.Known_properties) do&lt;br /&gt;
			if i == l then&lt;br /&gt;
				return &amp;quot;&amp;quot;&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
		local entity1 = mw.wikibase.getEntityObject(i)&lt;br /&gt;
		if (entity1.datatype == &amp;quot;string&amp;quot; or entity1.datatype == &amp;quot;external-id&amp;quot;) then&lt;br /&gt;
			local vaa = GetValueFromEntityId(claims, qid, i, &amp;quot;&amp;quot;, &amp;quot;true&amp;quot;)&lt;br /&gt;
			if vaa and vaa ~= &amp;quot;&amp;quot; then&lt;br /&gt;
				return &amp;quot;|url=&amp;quot; .. vaa&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function gettitle(items, claims)&lt;br /&gt;
	local title = GetItemValue(items, claims, &amp;quot;P1476&amp;quot;, &amp;quot;&amp;quot;, &amp;quot;&amp;quot;)&lt;br /&gt;
	local subtitle = GetItemValue(items, claims, &amp;quot;P1680&amp;quot;, &amp;quot;&amp;quot;, &amp;quot;&amp;quot;)&lt;br /&gt;
	if not title or title == &amp;quot;&amp;quot; then&lt;br /&gt;
		title = subtitle&lt;br /&gt;
	elseif subtitle and subtitle ~= &amp;quot;&amp;quot; then&lt;br /&gt;
		&lt;br /&gt;
		title = title .. &amp;quot;: &amp;quot; .. subtitle&lt;br /&gt;
	end&lt;br /&gt;
	if title then&lt;br /&gt;
		title = mw.ustring.gsub(title, &amp;quot;|&amp;quot;, &amp;quot;/&amp;quot;)&lt;br /&gt;
		title = &amp;quot;|title = &amp;quot; .. title&lt;br /&gt;
	end&lt;br /&gt;
	return title&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function numbers(items, claims)&lt;br /&gt;
	local rows = {}&lt;br /&gt;
	rows.section = GetNumberFromItem(items, claims, &amp;quot;P958&amp;quot;, &amp;quot;|section = &amp;quot;, &amp;quot;&amp;quot;)&lt;br /&gt;
	rows.volume = GetNumberFromItem(items, claims, &amp;quot;P478&amp;quot;, &amp;quot;|volume =&amp;quot;, &amp;quot;yes&amp;quot;)&lt;br /&gt;
	rows.page = GetNumberFromItem(items, claims, &amp;quot;P304&amp;quot;, &amp;quot;|page	= &amp;quot;, &amp;quot;yes&amp;quot;)&lt;br /&gt;
	rows.issue = GetNumberFromItem(items, claims, &amp;quot;P433&amp;quot;, &amp;quot;|issue	 =&amp;quot;, &amp;quot;yes&amp;quot;)&lt;br /&gt;
	rows.chapter = GetNumberFromItem(items, claims, &amp;quot;P792&amp;quot;, &amp;quot;|chapter =&amp;quot;, &amp;quot;yes&amp;quot;)&lt;br /&gt;
	rows.edition = GetNumberFromItem(items, claims, &amp;quot;P393&amp;quot;, &amp;quot;|edition =&amp;quot;, &amp;quot;yes&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
	for i, item in pairs(items) do&lt;br /&gt;
		if item == &amp;quot;Q36578&amp;quot; then&lt;br /&gt;
			rows.edition = nil&lt;br /&gt;
			break&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local field = {}&lt;br /&gt;
	for _, line in pairs(rows) do&lt;br /&gt;
		if line and line ~= &amp;quot;&amp;quot; then&lt;br /&gt;
			table.insert(field, line)&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	return table.concat(field, &amp;quot;\n&amp;quot;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function doipmid(items, claims)&lt;br /&gt;
	local doi = GetNumberFromItem(items, claims, &amp;quot;P356&amp;quot;, &amp;quot;|doi =&amp;quot;, &amp;quot;true&amp;quot;) -- Digital Object Identifier&lt;br /&gt;
	local pmid = GetNumberFromItem(items, claims, &amp;quot;P698&amp;quot;, &amp;quot;|pmid =&amp;quot;, &amp;quot;true&amp;quot;) -- Identifier for journal articles/abstracts in PubMed&lt;br /&gt;
	local pmc = GetNumberFromItem(items, claims, &amp;quot;P932&amp;quot;, &amp;quot;|pmc =&amp;quot;, &amp;quot;true&amp;quot;) -- identifier issued by PubMed Central&lt;br /&gt;
	field = {}&lt;br /&gt;
	if doi and doi ~= &amp;quot;&amp;quot; then&lt;br /&gt;
		table.insert(field, doi)&lt;br /&gt;
	end&lt;br /&gt;
	if pmid and pmid ~= &amp;quot;&amp;quot; then&lt;br /&gt;
		table.insert(field, pmid)&lt;br /&gt;
	end&lt;br /&gt;
	if pmc and pmc ~= &amp;quot;&amp;quot; then&lt;br /&gt;
		table.insert(field, pmc)&lt;br /&gt;
	end&lt;br /&gt;
	if #field &amp;gt; 0 then&lt;br /&gt;
		local magazine = GetItemValue(items, claims, &amp;quot;P1433&amp;quot;, &amp;quot;|magazine =&amp;quot;, &amp;quot; &amp;quot;)&lt;br /&gt;
		if magazine and magazine ~= &amp;quot;&amp;quot; then&lt;br /&gt;
			table.insert(field, magazine)&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	return table.concat(field, &amp;quot;\n&amp;quot;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function Getquall(items, claims, qid)&lt;br /&gt;
	local quall = getsomequall(items, claims, qid, &amp;quot;P143&amp;quot;)&lt;br /&gt;
	local quall1 = getsomequall(items, claims, qid, &amp;quot;P248&amp;quot;)&lt;br /&gt;
	if not quall or quall == &amp;quot;&amp;quot; then&lt;br /&gt;
		quall = quall1&lt;br /&gt;
	end&lt;br /&gt;
	if quall and quall ~= &amp;quot;&amp;quot; then&lt;br /&gt;
		return &amp;quot;|url=&amp;quot; .. quall&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function getMultiLink(items, claims, qid)&lt;br /&gt;
	local link = getLink(items, claims, &amp;quot;P854&amp;quot;, &amp;quot;|url =&amp;quot;)&lt;br /&gt;
	if not link or link == &amp;quot;&amp;quot; then&lt;br /&gt;
		link = gettherest(items, claims, qid)&lt;br /&gt;
	end&lt;br /&gt;
	if not link or link == &amp;quot;&amp;quot; then&lt;br /&gt;
		link = Getquall(items, claims, qid)&lt;br /&gt;
	end&lt;br /&gt;
	if not link or link == &amp;quot;&amp;quot; then&lt;br /&gt;
		link = get_Link_from_item(items, claims, &amp;quot;P854&amp;quot;)&lt;br /&gt;
	end&lt;br /&gt;
	if not link or link == &amp;quot;&amp;quot; then&lt;br /&gt;
		link = get_Link_from_item(items, claims, &amp;quot;P953&amp;quot;)&lt;br /&gt;
	end&lt;br /&gt;
	local accessdate = GetItemValue(items, claims, &amp;quot;P813&amp;quot;, &amp;quot;|access-date = &amp;quot;, &amp;quot;true&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
	if link and link ~= &amp;quot;&amp;quot; then&lt;br /&gt;
		if accessdate and accessdate ~= &amp;quot;&amp;quot; then&lt;br /&gt;
			link = link .. &amp;quot;\n&amp;quot; .. accessdate&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	return link&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function getarchiveLink(items, claims, qid)&lt;br /&gt;
	local archive = getLink(items, claims, &amp;quot;P1065&amp;quot;, &amp;quot;|archiveurl =&amp;quot;) --&lt;br /&gt;
	local archivedate = GetItemValue(items, claims, &amp;quot;P2960&amp;quot;, &amp;quot;|archive-date = &amp;quot;, &amp;quot;true&amp;quot;)&lt;br /&gt;
	field = {}&lt;br /&gt;
	if archive and archive ~= &amp;quot;&amp;quot; then&lt;br /&gt;
		table.insert(field, archive)&lt;br /&gt;
		if archivedate and archivedate ~= &amp;quot;&amp;quot; then&lt;br /&gt;
			table.insert(field, archivedate)&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	return table.concat(field, &amp;quot; &amp;quot;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function getreftable(items, claims, options)&lt;br /&gt;
	local qid = options.entityId or options.qid&lt;br /&gt;
    mw.log(&amp;quot;getreftable qid: &amp;quot; .. qid)&lt;br /&gt;
	local rows = {}&lt;br /&gt;
	rows.author = p.authorlist(Getauthor(items, claims), &amp;quot;author&amp;quot;)&lt;br /&gt;
	rows.editor = p.authorlist(GetItemValue(items, claims, &amp;quot;P98&amp;quot;, &amp;quot;&amp;quot;, &amp;quot;&amp;quot;), &amp;quot;editor&amp;quot;)&lt;br /&gt;
	rows.translator = p.authorlist(GetItemValue(items, claims, &amp;quot;P655&amp;quot;, &amp;quot;&amp;quot;, &amp;quot;&amp;quot;), &amp;quot;translator&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
	rows.title = gettitle(items, claims)&lt;br /&gt;
&lt;br /&gt;
	rows.publisher = GetItemValue(items, claims, &amp;quot;P123&amp;quot;, &amp;quot;|publisher = &amp;quot;)&lt;br /&gt;
	 --publisher&lt;br /&gt;
	rows.publication_place = GetItemValue(items, claims, &amp;quot;P291&amp;quot;, &amp;quot;|publication-place = &amp;quot;)&lt;br /&gt;
	rows.publishdate = GetItemValue(items, claims, &amp;quot;P577&amp;quot;, &amp;quot;|publication-date =&amp;quot;, &amp;quot;true&amp;quot;) -- تاريخ النشر:&lt;br /&gt;
&lt;br /&gt;
	rows.creator = &amp;quot;&amp;quot;&lt;br /&gt;
	 --GetItemValue(items, claims, &amp;#039;P170&amp;#039;, &amp;#039;مخترع&amp;#039;)&lt;br /&gt;
	rows.language = Getlanguage(items, claims)&lt;br /&gt;
&lt;br /&gt;
	rows.doipmid = doipmid(items, claims)&lt;br /&gt;
	rows.number  = numbers(items, claims)&lt;br /&gt;
	rows.import  = getwhatever(items, claims, &amp;quot;P143&amp;quot;) or getwhatever(items, claims, &amp;quot;P248&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
	--rows.import    = getwhatever(items, claims, &amp;quot;P143&amp;quot;, &amp;#039;|work =&amp;#039; )&lt;br /&gt;
	--rows.import1   = getwhatever(items, claims, &amp;quot;P248&amp;quot;, &amp;#039;|work=&amp;#039; )&lt;br /&gt;
	rows.MultiLink   = getMultiLink(items, claims, qid)&lt;br /&gt;
	rows.archiveLink = getarchiveLink(items, claims, qid)&lt;br /&gt;
&lt;br /&gt;
	--rows.license = GetItemValue(items, claims, &amp;#039;P275&amp;#039;, &amp;#039;رخصة&amp;#039;)&lt;br /&gt;
	rows.isbn    = getISBN(items, claims) --0&lt;br /&gt;
&lt;br /&gt;
	rows.oclc    = GetNumberFromItem(items, claims, &amp;quot;P243&amp;quot;, &amp;quot;|OCLC=&amp;quot;, &amp;quot;yes&amp;quot;)&lt;br /&gt;
	rows.asin    = GetNumberFromItem(items, claims, &amp;quot;P5749&amp;quot;, &amp;quot;|asin=&amp;quot;, &amp;quot;yes&amp;quot;)&lt;br /&gt;
	rows.arxiv   = GetNumberFromItem(items, claims, &amp;quot;P818&amp;quot;, &amp;quot;|arxiv=&amp;quot;, &amp;quot;yes&amp;quot;)&lt;br /&gt;
	rows.biorxiv = GetNumberFromItem(items, claims, &amp;quot;P3951&amp;quot;, &amp;quot;|biorxiv=&amp;quot;, &amp;quot;yes&amp;quot;)&lt;br /&gt;
	rows.issn    = GetNumberFromItem(items, claims, &amp;quot;P236&amp;quot;, &amp;quot;|issn=&amp;quot;, &amp;quot;yes&amp;quot;)&lt;br /&gt;
	rows.jstor   = GetNumberFromItem(items, claims, &amp;quot;P888&amp;quot;, &amp;quot;|jstor=&amp;quot;, &amp;quot;yes&amp;quot;)&lt;br /&gt;
	rows.lccn    = GetNumberFromItem(items, claims, &amp;quot;P1144&amp;quot;, &amp;quot;|lccn=&amp;quot;, &amp;quot;yes&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
	rows.mr    = GetNumberFromItem(items, claims, &amp;quot;P889&amp;quot;, &amp;quot;|mr=&amp;quot;, &amp;quot;yes&amp;quot;)&lt;br /&gt;
	rows.ol    = GetNumberFromItem(items, claims, &amp;quot;P648&amp;quot;, &amp;quot;|ol=&amp;quot;, &amp;quot;yes&amp;quot;)&lt;br /&gt;
	rows.osti  = GetNumberFromItem(items, claims, &amp;quot;P3894&amp;quot;, &amp;quot;|osti=&amp;quot;, &amp;quot;yes&amp;quot;)&lt;br /&gt;
	rows.rfc   = GetNumberFromItem(items, claims, &amp;quot;P892&amp;quot;, &amp;quot;|rfc=&amp;quot;, &amp;quot;yes&amp;quot;)&lt;br /&gt;
	rows.ssrn  = GetNumberFromItem(items, claims, &amp;quot;P893&amp;quot;, &amp;quot;|ssrn=&amp;quot;, &amp;quot;yes&amp;quot;)&lt;br /&gt;
	rows.s2cid = GetNumberFromItem(items, claims, &amp;quot;P8299&amp;quot;, &amp;quot;|s2cid=&amp;quot;, &amp;quot;yes&amp;quot;)&lt;br /&gt;
	rows.zbl   = GetNumberFromItem(items, claims, &amp;quot;P894&amp;quot;, &amp;quot;|zbl=&amp;quot;, &amp;quot;yes&amp;quot;)&lt;br /&gt;
	rows.quote = GetItemValue(items, claims, &amp;quot;P1683&amp;quot;, &amp;quot;|quote =&amp;quot;, &amp;quot; &amp;quot;)&lt;br /&gt;
&lt;br /&gt;
	for i, item in pairs(items) do&lt;br /&gt;
		if item == &amp;quot;Q36578&amp;quot; then&lt;br /&gt;
			rows.author = nil&lt;br /&gt;
			break&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local field = {}&lt;br /&gt;
&lt;br /&gt;
	for _, line in pairs(rows) do&lt;br /&gt;
		if line and line ~= &amp;quot;&amp;quot; then&lt;br /&gt;
			table.insert(field, line)&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local openn = &amp;quot;{{cite web\n&amp;quot;&lt;br /&gt;
	local closee = &amp;quot;\n}}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
	if (rows.doipmid and rows.doipmid ~= &amp;quot;&amp;quot;) then&lt;br /&gt;
		openn = &amp;quot;{{Cite magazine\n&amp;quot;&lt;br /&gt;
	elseif (rows.isbn and rows.isbn ~= &amp;quot;&amp;quot;) then&lt;br /&gt;
		openn = &amp;quot;{{cite book\n&amp;quot;&lt;br /&gt;
	elseif (rows.asin and rows.asin ~= &amp;quot;&amp;quot;) then&lt;br /&gt;
		openn = &amp;quot;{{cite journal\n&amp;quot;&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local doo = table.concat(field, &amp;quot;\n&amp;quot;)&lt;br /&gt;
	if doo and doo ~= &amp;quot;&amp;quot; then&lt;br /&gt;
		doo = openn .. doo .. closee&lt;br /&gt;
		final = doo --mw.getCurrentFrame():extensionTag( &amp;#039;ref&amp;#039;, doo)&lt;br /&gt;
	--	final = mw.getCurrentFrame():extensionTag( &amp;#039;ref&amp;#039;, doo, {name = hash..&amp;#039;fg&amp;#039;} )&lt;br /&gt;
	end&lt;br /&gt;
	return final&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function findblacklist(items, claims)&lt;br /&gt;
	-- function to ignore Sister projects&lt;br /&gt;
	local val = &amp;quot;false&amp;quot;&lt;br /&gt;
	local s = {}&lt;br /&gt;
	for i, item in pairs(items) do&lt;br /&gt;
		function qoo(item, pid)&lt;br /&gt;
			return wikidata({entityId = item, property=pid, noref=&amp;quot;true&amp;quot;, firstvalue=&amp;quot;1&amp;quot;, formatting=&amp;quot;raw&amp;quot;})&lt;br /&gt;
		end&lt;br /&gt;
		local wiki = qoo(item, &amp;quot;P1800&amp;quot;) or qoo(item, &amp;quot;P1566&amp;quot;) or qoo(item, &amp;quot;P21&amp;quot;) -- all wikimedia site, GeoNames, gender&lt;br /&gt;
		local wik2 = qoo(item, &amp;quot;P31&amp;quot;)&lt;br /&gt;
		local blackk = {&lt;br /&gt;
			&amp;quot;Q20651139&amp;quot;, &lt;br /&gt;
			&amp;quot;Q465&amp;quot;, &lt;br /&gt;
			&amp;quot;Q15241312&amp;quot;, &lt;br /&gt;
			&amp;quot;Q52&amp;quot; -- Wikipedia&lt;br /&gt;
		}&lt;br /&gt;
		for k, b in pairs(blackk) do&lt;br /&gt;
			if item == b then&lt;br /&gt;
				val = &amp;quot;true&amp;quot;&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
		if wiki and wiki ~= &amp;quot;&amp;quot; then&lt;br /&gt;
			val = &amp;quot;true&amp;quot;&lt;br /&gt;
		elseif&lt;br /&gt;
			wik2 == &amp;quot;Q5&amp;quot; or -- Human is not a direct reference&lt;br /&gt;
				wik2 == &amp;quot;Q184188&amp;quot; or -- Also Canton&lt;br /&gt;
				wik2 == &amp;quot;Q1250464&amp;quot;&lt;br /&gt;
		 then&lt;br /&gt;
			val = &amp;quot;true&amp;quot; -- Also places&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	return val&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.citeitem(claims, hash, options, notag)&lt;br /&gt;
	if not claims then&lt;br /&gt;
        mw.log(&amp;quot;no claims&amp;quot;)&lt;br /&gt;
		return nil&lt;br /&gt;
	end&lt;br /&gt;
    local items = {}&lt;br /&gt;
&lt;br /&gt;
    if claims.P248 then&lt;br /&gt;
        for j, prop in pairs(claims.P248) do&lt;br /&gt;
            if prop.snaktype == &amp;quot;value&amp;quot; then&lt;br /&gt;
                table.insert(items, &amp;quot;Q&amp;quot; .. prop.datavalue.value[&amp;quot;numeric-id&amp;quot;])&lt;br /&gt;
            end&lt;br /&gt;
        end&lt;br /&gt;
    elseif claims.P143 then&lt;br /&gt;
        for j, prop in pairs(claims.P143) do&lt;br /&gt;
            if prop.snaktype == &amp;quot;value&amp;quot; then&lt;br /&gt;
                table.insert(items, &amp;quot;Q&amp;quot; .. prop.datavalue.value[&amp;quot;numeric-id&amp;quot;])&lt;br /&gt;
            end&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
	local blacklist1 = findblacklist(items, claims)&lt;br /&gt;
	if blacklist1 == &amp;quot;true&amp;quot; then&lt;br /&gt;
        mw.log(&amp;quot;blacklist1&amp;quot;)&lt;br /&gt;
		return nil&lt;br /&gt;
	end&lt;br /&gt;
	local refrence = getreftable(items, claims, options)&lt;br /&gt;
	if refrence and refrence ~= &amp;quot;&amp;quot; then&lt;br /&gt;
		if notag and notag ~= &amp;quot;&amp;quot; then&lt;br /&gt;
			refrence = refrence&lt;br /&gt;
		else&lt;br /&gt;
			refrence = mw.getCurrentFrame():extensionTag(&amp;quot;ref&amp;quot;, refrence)&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	return refrence&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.reflist(frame)&lt;br /&gt;
    local args = frame.args&lt;br /&gt;
	local list = mw.text.split(args.item, &amp;quot; &amp;quot;)&lt;br /&gt;
	local s = {}&lt;br /&gt;
	for i, qid in pairs(list) do&lt;br /&gt;
		qid = mw.text.trim(qid)&lt;br /&gt;
        mw.log(&amp;quot;qid:&amp;quot; .. qid)&lt;br /&gt;
        args.qid = qid&lt;br /&gt;
		local item = mw.wikibase.getEntityObject(qid)&lt;br /&gt;
		local str = p.citeitem(item.claims, &amp;quot;&amp;quot;, args, &amp;quot;t&amp;quot;)&lt;br /&gt;
		if str then&lt;br /&gt;
			table.insert(s, &amp;quot;*&amp;quot; .. str)&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	fii = table.concat(s, &amp;quot;\n&amp;quot;)&lt;br /&gt;
	return frame:preprocess(fii)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.cite(frame)&lt;br /&gt;
    local args = frame.args&lt;br /&gt;
    local qid = args.item or args.qid&lt;br /&gt;
    args.qid = qid&lt;br /&gt;
	local item = mw.wikibase.getEntityObject(qid)&lt;br /&gt;
	if not item then&lt;br /&gt;
		return &amp;quot;no item &amp;quot;&lt;br /&gt;
	end&lt;br /&gt;
	local fi = p.citeitem(item.claims, &amp;quot;&amp;quot;, args, &amp;quot;t&amp;quot;)&lt;br /&gt;
	if args.nowiki then&lt;br /&gt;
		return mw.getCurrentFrame():extensionTag(&amp;quot;pre&amp;quot;, mw.ustring.gsub(fi, &amp;quot;\n&amp;quot;, &amp;quot;&amp;quot;))&lt;br /&gt;
	else&lt;br /&gt;
		return frame:preprocess(fi)&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.cite_property(frame)&lt;br /&gt;
	local qid = frame.args.item&lt;br /&gt;
	local item = mw.wikibase.getEntityObject(qid)&lt;br /&gt;
&lt;br /&gt;
	if not item then&lt;br /&gt;
		return &amp;quot;no item &amp;quot;&lt;br /&gt;
	end&lt;br /&gt;
	local prop = mw.text.split(frame.args.property, &amp;quot;,&amp;quot;)&lt;br /&gt;
	local s = {}&lt;br /&gt;
	for i, pid in pairs(prop) do&lt;br /&gt;
		mw.log(&amp;quot;prop:&amp;quot; .. pid)&lt;br /&gt;
		local ref = GetValueFromEntityId(item.claims, qid, pid, &amp;quot;&amp;quot;, &amp;quot;true&amp;quot;)&lt;br /&gt;
		if ref and ref ~= &amp;quot;&amp;quot; then&lt;br /&gt;
			ref = &amp;quot;|url=&amp;quot; .. ref&lt;br /&gt;
			ref = &amp;quot;{{مرجع ويب\n&amp;quot; .. ref .. &amp;quot;\n}}&amp;quot;&lt;br /&gt;
			if frame.args.tag and frame.args.tag ~= &amp;quot;&amp;quot; then&lt;br /&gt;
				ref = mw.getCurrentFrame():extensionTag(&amp;quot;ref&amp;quot;, ref)&lt;br /&gt;
			end&lt;br /&gt;
			table.insert(s, ref)&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	local temp = table.concat(s, &amp;quot;\n&amp;quot;)&lt;br /&gt;
	if not temp or temp == &amp;quot;&amp;quot; then&lt;br /&gt;
		return &amp;quot;&amp;quot;&lt;br /&gt;
	end&lt;br /&gt;
	if frame.args.nowiki then&lt;br /&gt;
		return mw.getCurrentFrame():extensionTag(&amp;quot;pre&amp;quot;, mw.ustring.gsub(temp, &amp;quot;\n&amp;quot;, &amp;quot;&amp;quot;))&lt;br /&gt;
	else	&lt;br /&gt;
		return frame:preprocess(temp)&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>عبد العزيز</name></author>
	</entry>
</feed>