<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="zh-Hans-CN">
	<id>https://www.wikiw.cn/index.php?action=history&amp;feed=atom&amp;title=%E6%A8%A1%E5%9D%97%3AWikidataLink</id>
	<title>模块:WikidataLink - 版本历史</title>
	<link rel="self" type="application/atom+xml" href="https://www.wikiw.cn/index.php?action=history&amp;feed=atom&amp;title=%E6%A8%A1%E5%9D%97%3AWikidataLink"/>
	<link rel="alternate" type="text/html" href="https://www.wikiw.cn/index.php?title=%E6%A8%A1%E5%9D%97:WikidataLink&amp;action=history"/>
	<updated>2026-04-08T19:27:58Z</updated>
	<subtitle>本wiki上该页面的版本历史</subtitle>
	<generator>MediaWiki 1.44.0</generator>
	<entry>
		<id>https://www.wikiw.cn/index.php?title=%E6%A8%A1%E5%9D%97:WikidataLink&amp;diff=2314&amp;oldid=prev</id>
		<title>2025年6月30日 (一) 01:46 imported&gt;A2569875</title>
		<link rel="alternate" type="text/html" href="https://www.wikiw.cn/index.php?title=%E6%A8%A1%E5%9D%97:WikidataLink&amp;diff=2314&amp;oldid=prev"/>
		<updated>2025-06-30T01:46:23Z</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 lib_arg={};&lt;br /&gt;
local ilh = {}&lt;br /&gt;
local TrackingCategory = {}&lt;br /&gt;
local yesno = {}&lt;br /&gt;
local lib_va = {}&lt;br /&gt;
local wiki_db = {}&lt;br /&gt;
local wikidata_entity_namespaces = {[&amp;#039;e&amp;#039;]=&amp;#039;EntitySchema&amp;#039;, [&amp;#039;l&amp;#039;]=&amp;#039;Lexeme&amp;#039;, [&amp;#039;p&amp;#039;]=&amp;#039;Property&amp;#039;, [&amp;#039;q&amp;#039;]=&amp;#039;&amp;#039;}&lt;br /&gt;
local wikidata_namespaces_support = {[&amp;#039;p&amp;#039;]=true, [&amp;#039;q&amp;#039;]=true}&lt;br /&gt;
local project_table = {&lt;br /&gt;
	commons = &amp;quot;.wikimedia&amp;quot;,&lt;br /&gt;
	meta = &amp;quot;.wikimedia&amp;quot;,&lt;br /&gt;
	species = &amp;quot;.wikimedia&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function p.title2entity(frame)&lt;br /&gt;
	local args, working_frame&lt;br /&gt;
    if frame == mw.getCurrentFrame() then&lt;br /&gt;
        -- We&amp;#039;re being called via #invoke. The args are passed through to the module&lt;br /&gt;
        -- from the template page, so use the args that were passed into the template.&lt;br /&gt;
        if lib_arg.getArgs == nil then lib_arg = require(&amp;#039;Module:Arguments&amp;#039;) end&lt;br /&gt;
        args = lib_arg.getArgs(frame, {parentFirst=true})&lt;br /&gt;
        working_frame = frame&lt;br /&gt;
    else&lt;br /&gt;
        -- We&amp;#039;re being called from another module or from the debug console, so assume&lt;br /&gt;
        -- the args are passed in directly.&lt;br /&gt;
        args = frame&lt;br /&gt;
        working_frame = mw.getCurrentFrame()&lt;br /&gt;
        if type(args) ~= type({}) then args = {frame} end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
	if type(yesno) ~= type(type) then yesno = require(&amp;#039;Module:Yesno&amp;#039;) end&lt;br /&gt;
    local with_nodata = yesno(args[&amp;#039;with_nodata&amp;#039;] or args[&amp;#039;with nodata&amp;#039;])&lt;br /&gt;
    local input_title = mw.text.trim(tostring(args[&amp;#039;1&amp;#039;] or args[1] or &amp;#039;&amp;#039;))&lt;br /&gt;
    &lt;br /&gt;
    --如果內容為空，取消計算，回傳本模板所在頁面的維基數據項目&lt;br /&gt;
    if mw.text.trim(input_title) == &amp;#039;&amp;#039; then &lt;br /&gt;
    	return mw.wikibase.getEntityIdForCurrentPage() or &amp;#039;&amp;#039;&lt;br /&gt;
    end&lt;br /&gt;
    local entity_id = mw.wikibase.getEntityIdForTitle(input_title)&lt;br /&gt;
    if entity_id then return tostring(entity_id) end&lt;br /&gt;
    local title_obj = mw.title.new(input_title)&lt;br /&gt;
    --如果條目存在&lt;br /&gt;
    if (title_obj or {}).exists == true then&lt;br /&gt;
    	--檢查原始頁面是否有維基數據項目&lt;br /&gt;
    	local title_id = mw.wikibase.getEntityIdForTitle(title_obj.prefixedText)&lt;br /&gt;
    	--如果有，則回傳&lt;br /&gt;
    	if title_id then return title_id end&lt;br /&gt;
    	--如果目標頁是重新導向頁&lt;br /&gt;
    	title_obj = title_obj.redirectTarget&lt;br /&gt;
    	--回傳目標頁的維基數據項目&lt;br /&gt;
    	if title_obj and type(title_obj)==type({&amp;quot;table&amp;quot;}) then &lt;br /&gt;
    		entity_id = mw.wikibase.getEntityIdForTitle(title_obj.prefixedText) &lt;br /&gt;
    	end&lt;br /&gt;
    	return entity_id&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
    --如果本身已經是維基數據項目&lt;br /&gt;
    local start,tail = mw.ustring.find(input_title,&amp;#039;[qQ]%d+&amp;#039;)&lt;br /&gt;
    if start then &lt;br /&gt;
    	local in_id = &amp;#039;Q&amp;#039; .. mw.ustring.sub(input_title,start+1,tail)&lt;br /&gt;
    	if mw.wikibase.getLabel(in_id) ~= nil then return in_id &lt;br /&gt;
    	else return &amp;#039;&amp;#039; end&lt;br /&gt;
    end&lt;br /&gt;
    local try_parse = mw.ustring.gsub(input_title,&amp;#039;[.,]&amp;#039;,&amp;#039;&amp;#039;)&lt;br /&gt;
    &lt;br /&gt;
	if with_nodata then&lt;br /&gt;
		--提供無值時，又不自我指向的數值&lt;br /&gt;
		if mw.ustring.lower(input_title) == &amp;quot;noentity&amp;quot; then return &amp;#039;Q28343326&amp;#039; end--無值&lt;br /&gt;
	end&lt;br /&gt;
    &lt;br /&gt;
    if type(lib_va.redirect_target) ~= type(type) then lib_va = require(&amp;#039;Module:Va&amp;#039;) end&lt;br /&gt;
	--如果目標頁是繁簡差異的自動重新導向頁&lt;br /&gt;
	title_obj = mw.title.new(lib_va.redirect_target(input_title))&lt;br /&gt;
	--如果檢查繁簡差異後發現頁面存在&lt;br /&gt;
	if (title_obj or {}).exists == true then&lt;br /&gt;
		--嘗試取得存在之頁面的維基數據項目&lt;br /&gt;
		local title_id = mw.wikibase.getEntityIdForTitle(title_obj.prefixedText)&lt;br /&gt;
		--如果項目存在，則返回數值&lt;br /&gt;
		if title_id then return title_id end&lt;br /&gt;
	end&lt;br /&gt;
    ----------------------------------&lt;br /&gt;
    --嘗試讀取數字是否為維基數據項目&lt;br /&gt;
    ----------------------------------&lt;br /&gt;
	    --1.解析數字前處理 (處理成數字)&lt;br /&gt;
	    if ({mw.ustring.find(try_parse,&amp;#039;[!%+%-%*/%(%)%%%^%.]+&amp;#039;)})[1] ~= nil and ({mw.ustring.find(try_parse,&amp;#039;[&amp;lt;=&amp;gt;]+&amp;#039;)})[1] == nil then&lt;br /&gt;
	    	try_parse = ({pcall(function(name,var)return mw.getCurrentFrame():callParserFunction(name, var)end, &amp;#039;#expr&amp;#039;, { try_parse })})[2]&lt;br /&gt;
	    end&lt;br /&gt;
	    --2.移除非數字符號&lt;br /&gt;
	    try_parse = mw.ustring.gsub(try_parse,&amp;#039;[%s:,;%.]+&amp;#039;,&amp;#039;&amp;#039;)&lt;br /&gt;
	    --3.判斷是否整串都是數字 (如果只是局部數字則取消)&lt;br /&gt;
	    start,tail = mw.ustring.find(try_parse,&amp;#039;^%s*%d+%s*$&amp;#039;) --用以確認避免誤判&lt;br /&gt;
	    --4.確認後，定位數字再輸入字串的何處&lt;br /&gt;
	    if start then start,tail = mw.ustring.find(try_parse,&amp;#039;%d+&amp;#039;) end&lt;br /&gt;
	    --5.確定找到有效數字，才開始檢查有無維基數據項目&lt;br /&gt;
	    if start then &lt;br /&gt;
	    	local parseNum = tonumber(mw.ustring.sub(try_parse,start,tail) or &amp;#039;0&amp;#039;) or 0&lt;br /&gt;
	    	--6.該ID的維基數據項目存在，才回傳&lt;br /&gt;
			if ({pcall(mw.wikibase.getLabel,&amp;#039;Q&amp;#039;..parseNum)})[2] ~= nil then return &amp;#039;Q&amp;#039;..parseNum&lt;br /&gt;
	    	else return &amp;#039;&amp;#039; end&lt;br /&gt;
	    end&lt;br /&gt;
    --是非空字串，但都不是的情況&lt;br /&gt;
    if mw.text.trim(try_parse) ~= &amp;#039;&amp;#039; then return &amp;#039;&amp;#039; end&lt;br /&gt;
    --如果以上條件都不滿足，回傳本模板所在頁面的維基數據項目&lt;br /&gt;
    return mw.wikibase.getEntityIdForCurrentPage() or &amp;#039;&amp;#039;&lt;br /&gt;
end&lt;br /&gt;
function _wikidata_ilh(arg)&lt;br /&gt;
	if type(ilh._ilh) ~= type(type) then ilh = require(&amp;#039;Module:Ilh&amp;#039;) end&lt;br /&gt;
	if type(yesno) ~= type(type) then yesno = require(&amp;#039;Module:Yesno&amp;#039;) end&lt;br /&gt;
	local context={}&lt;br /&gt;
	context[&amp;quot;isMainPage&amp;quot;]=ilh.isMainPage()&lt;br /&gt;
	context[&amp;quot;localPage&amp;quot;]=arg[1]&lt;br /&gt;
	context[&amp;quot;foreignPage&amp;quot;]=arg[2] or arg[1] --如果{{{2}}}不传入的话&lt;br /&gt;
	local _d=arg[&amp;quot;d&amp;quot;]&lt;br /&gt;
	local _1=arg[1] or arg[&amp;quot;1&amp;quot;]&lt;br /&gt;
	local _3=arg[3] or arg[&amp;quot;3&amp;quot;]&lt;br /&gt;
	local dpN1=_3 or _d&lt;br /&gt;
	context[&amp;quot;displayName&amp;quot;]=(dpN1 and {dpN1} or {_1})[1]&lt;br /&gt;
	context[&amp;quot;langCode&amp;quot;]=arg[&amp;quot;lang-code&amp;quot;]&lt;br /&gt;
	context[&amp;quot;lang&amp;quot;]=arg[&amp;quot;lang&amp;quot;]&lt;br /&gt;
	context[&amp;quot;nocat&amp;quot;]=yesno( arg[&amp;quot;nocat&amp;quot;] , false )&lt;br /&gt;
&lt;br /&gt;
	local frame=mw.getCurrentFrame()&lt;br /&gt;
	-- 使用{{#ifexist}}而不是Lua的exists来兼容MediaWiki的自动简繁重定向&lt;br /&gt;
	-- 见[[Special:PermaLink/85517269#不蓝不绿的绿链问题]]&lt;br /&gt;
	local existsFunc = function (pageName)&lt;br /&gt;
		return frame:callParserFunction(&amp;#039;#ifexist&amp;#039;,{pageName,&amp;#039;true&amp;#039;,&amp;#039;false&amp;#039;})&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	context[&amp;quot;isExist&amp;quot;]= (arg[&amp;quot;$exist$&amp;quot;] and arg[&amp;quot;$exist$&amp;quot;]==1) or (existsFunc(context[&amp;quot;localPage&amp;quot;])==&amp;#039;true&amp;#039;)&lt;br /&gt;
	&lt;br /&gt;
	local curPage_obj=mw.title.getCurrentTitle()&lt;br /&gt;
	context[&amp;quot;isNoCatWithNamespace&amp;quot;]=curPage_obj:inNamespaces(2,828) --User,Module&lt;br /&gt;
	--context[&amp;quot;curPageNamespace&amp;quot;]=curPage_obj.namespace&lt;br /&gt;
&lt;br /&gt;
	return (context[&amp;quot;isMainPage&amp;quot;] and ilh.onlyLink(context)) or ilh.functionLink(context)&lt;br /&gt;
end&lt;br /&gt;
local function getEntitySitelink(entity)&lt;br /&gt;
	local sitelinks = (entity or {}).sitelinks&lt;br /&gt;
	if sitelinks then&lt;br /&gt;
		local i = 0&lt;br /&gt;
		for _,__ in pairs(sitelinks) do i = i + 1 end&lt;br /&gt;
		if i &amp;lt;= 0 then return nil, nil end&lt;br /&gt;
		if not wiki_db.data then wiki_db = mw.loadData(&amp;#039;Module:NUMBEROF/data&amp;#039;) end&lt;br /&gt;
		local db_map, db_data = wiki_db.map, wiki_db.data&lt;br /&gt;
		if not db_map or not db_data then return nil, nil end&lt;br /&gt;
		local max_lang, max_sitelinkObj, max_article = nil, nil, -1&lt;br /&gt;
		for lang, sitelinkObj in pairs(sitelinks) do&lt;br /&gt;
			local lang_name = lang:match(&amp;quot;^(.+)wiki$&amp;quot;)&lt;br /&gt;
			if lang_name and lang_name ~= &amp;quot;commons&amp;quot; then&lt;br /&gt;
				local wikiCountObj = db_data[lang_name..(project_table[lang_name] or &amp;#039;.wikipedia&amp;#039;)]&lt;br /&gt;
				if wikiCountObj then&lt;br /&gt;
					local wikiCount = tonumber(wikiCountObj[db_map.articles])&lt;br /&gt;
					if type(wikiCount) == type(0) then&lt;br /&gt;
						if wikiCount &amp;gt; max_article then&lt;br /&gt;
							max_article = wikiCount&lt;br /&gt;
							max_lang = lang_name&lt;br /&gt;
							max_sitelinkObj = sitelinkObj&lt;br /&gt;
						end&lt;br /&gt;
					end&lt;br /&gt;
				end&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
		if max_sitelinkObj then&lt;br /&gt;
			return max_lang, max_sitelinkObj.title&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	return nil, nil&lt;br /&gt;
end&lt;br /&gt;
local function getEntityLabel(entity)&lt;br /&gt;
	local label = entity:getLabel()&lt;br /&gt;
	if not label then&lt;br /&gt;
		labels = entity.labels&lt;br /&gt;
		if not labels then return nil end&lt;br /&gt;
		local i = 0&lt;br /&gt;
		for _,__ in pairs(labels) do i = i + 1 end&lt;br /&gt;
		if i &amp;lt;= 0 then return nil end&lt;br /&gt;
		if not wiki_db.data then wiki_db = mw.loadData(&amp;#039;Module:NUMBEROF/data&amp;#039;) end&lt;br /&gt;
		local db_map, db_data = wiki_db.map, wiki_db.data&lt;br /&gt;
		if not db_map or not db_data then return nil end&lt;br /&gt;
		local max_lang, max_labelObj, max_article = nil, nil, -1&lt;br /&gt;
		for lang, labelObj in pairs(labels) do&lt;br /&gt;
			local wikiCountObj = db_data[lang..(project_table[lang_name] or &amp;#039;.wikipedia&amp;#039;)]&lt;br /&gt;
			if wikiCountObj then&lt;br /&gt;
				local wikiCount = tonumber(wikiCountObj[db_map.articles])&lt;br /&gt;
				if type(wikiCount) == type(0) then&lt;br /&gt;
					if wikiCount &amp;gt; max_article then&lt;br /&gt;
						max_article = wikiCount&lt;br /&gt;
						max_lang = lang&lt;br /&gt;
						max_labelObj = labelObj&lt;br /&gt;
					end&lt;br /&gt;
				end&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
		return (max_labelObj or {}).value&lt;br /&gt;
	end&lt;br /&gt;
	return label&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p._getWikidataLink(wikidata_id, find_lang, display_text, articlename, templateflag) &lt;br /&gt;
	local display_code = display_text or &amp;#039;&amp;#039;&lt;br /&gt;
	local display_linkcode = (mw.text.trim(display_code) ~= &amp;#039;&amp;#039;)and (&amp;#039;|&amp;#039;..display_code) or display_code&lt;br /&gt;
&lt;br /&gt;
	local namescape_end = mw.ustring.find(wikidata_id ,&amp;quot;:&amp;quot;)&lt;br /&gt;
	local g_namespace = namescape_end and mw.ustring.sub(wikidata_id, 1, namescape_end-1) or &amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
	local namespace_head = mw.ustring.sub(wikidata_id,1,1):lower()&lt;br /&gt;
	local entity_namespace = wikidata_entity_namespaces[namespace_head] or &amp;#039;&amp;#039;&lt;br /&gt;
	local wikidata_pagename = entity_namespace .. ((mw.text.trim(entity_namespace)~=&amp;#039;&amp;#039;)and &amp;#039;:&amp;#039; or &amp;#039;&amp;#039;) .. wikidata_id&lt;br /&gt;
	if mw.text.trim(g_namespace)~=&amp;#039;&amp;#039; then &lt;br /&gt;
		wikidata_pagename = wikidata_id &lt;br /&gt;
		entity_namespace = g_namespace&lt;br /&gt;
		namespace_head = g_namespace&lt;br /&gt;
	end&lt;br /&gt;
	if wikidata_namespaces_support[mw.ustring.lower(namespace_head)] then&lt;br /&gt;
		if mw.wikibase.entityExists( wikidata_id ) then&lt;br /&gt;
			local entity = mw.wikibase.getEntity( wikidata_id )&lt;br /&gt;
			if mw.text.trim(entity:getSitelink() or &amp;#039;&amp;#039;) ~= &amp;#039;&amp;#039; then &lt;br /&gt;
				if templateflag == &amp;quot;link-wd&amp;quot; then&lt;br /&gt;
					--all pass to Module:ilh&lt;br /&gt;
				else&lt;br /&gt;
					return &amp;#039;[[&amp;#039; .. entity:getSitelink() .. display_linkcode .. &amp;#039;]]&amp;#039; &lt;br /&gt;
				end&lt;br /&gt;
			end&lt;br /&gt;
			local interwiki = &amp;#039;d&amp;#039;&lt;br /&gt;
			local interwikiPage = wikidata_pagename&lt;br /&gt;
			local force_wikidata = false&lt;br /&gt;
			for ____,value in ipairs(find_lang) do&lt;br /&gt;
				if mw.text.trim(entity:getSitelink( value ) or &amp;#039;&amp;#039;) ~= &amp;#039;&amp;#039; then&lt;br /&gt;
					interwiki, interwikiPage = value, entity:getSitelink( value )&lt;br /&gt;
					break&lt;br /&gt;
				elseif mw.text.trim(entity:getSitelink( value .. &amp;#039;wiki&amp;#039; ) or &amp;#039;&amp;#039;) ~= &amp;#039;&amp;#039; then&lt;br /&gt;
					interwiki, interwikiPage = value, entity:getSitelink( value .. &amp;#039;wiki&amp;#039; )&lt;br /&gt;
					break&lt;br /&gt;
				elseif value == &amp;#039;wikidata&amp;#039; then &lt;br /&gt;
					interwiki = &amp;#039;d&amp;#039;&lt;br /&gt;
					force_wikidata = true&lt;br /&gt;
				end&lt;br /&gt;
			end&lt;br /&gt;
			if interwiki == &amp;#039;d&amp;#039; then&lt;br /&gt;
				local l_interwikiPage = interwikiPage&lt;br /&gt;
				interwiki, interwikiPage = getEntitySitelink(entity)&lt;br /&gt;
				interwiki, interwikiPage = (interwiki or &amp;#039;d&amp;#039;), (interwikiPage or l_interwikiPage)&lt;br /&gt;
				if force_wikidata then interwiki = &amp;#039;d&amp;#039; end&lt;br /&gt;
				if interwiki == &amp;#039;d&amp;#039; then interwikiPage = wikidata_pagename end&lt;br /&gt;
			end&lt;br /&gt;
			if interwiki ~= &amp;#039;d&amp;#039; then&lt;br /&gt;
				local lang = mw.language.fetchLanguageName( interwiki, mw.getContentLanguage():getCode() )&lt;br /&gt;
				if (lang or &amp;#039;&amp;#039;) ~= &amp;#039;&amp;#039; then&lt;br /&gt;
					return _wikidata_ilh({&lt;br /&gt;
						[1] = articlename or getEntityLabel(entity) or interwikiPage,&lt;br /&gt;
						[2] = interwikiPage,&lt;br /&gt;
						[3] = (mw.text.trim(display_code) ~= &amp;#039;&amp;#039;)and display_code or nil,&lt;br /&gt;
						[&amp;#039;lang&amp;#039;] = lang,&lt;br /&gt;
						[&amp;#039;lang-code&amp;#039;] = interwiki&lt;br /&gt;
					})&lt;br /&gt;
				end&lt;br /&gt;
			end&lt;br /&gt;
			local eLabel = entity:getLabel()&lt;br /&gt;
			if mw.text.trim(eLabel or &amp;#039;&amp;#039;) == &amp;#039;&amp;#039; then eLabel = interwikiPage end&lt;br /&gt;
			local result = _wikidata_ilh({&lt;br /&gt;
						[1] = articlename or eLabel,&lt;br /&gt;
						[2] = interwikiPage,&lt;br /&gt;
						[3] = (mw.text.trim(display_code) ~= &amp;#039;&amp;#039;)and display_code or nil,&lt;br /&gt;
						[&amp;#039;lang&amp;#039;] = &amp;#039;維基數據&amp;#039;,&lt;br /&gt;
						[&amp;#039;lang-code&amp;#039;] = interwiki&lt;br /&gt;
					})&lt;br /&gt;
			return mw.ustring.gsub(result,&amp;#039;(&amp;gt;維基數據)(&amp;lt;)&amp;#039;,&amp;#039;%1%2&amp;#039;)&lt;br /&gt;
		else return wikidata_id end&lt;br /&gt;
	end&lt;br /&gt;
	local page_name = (type(find_lang) == type(&amp;quot;string&amp;quot;)) and find_lang or wikidata_id&lt;br /&gt;
	local result = _wikidata_ilh({&lt;br /&gt;
				[1] = articlename or page_name,&lt;br /&gt;
				[2] = wikidata_pagename,&lt;br /&gt;
				[3] = (mw.text.trim(display_code) ~= &amp;#039;&amp;#039;)and display_code or nil,&lt;br /&gt;
				[&amp;#039;lang&amp;#039;] = &amp;#039;維基數據&amp;#039;,&lt;br /&gt;
				[&amp;#039;lang-code&amp;#039;] = &amp;#039;d&amp;#039;&lt;br /&gt;
			})&lt;br /&gt;
	return mw.ustring.gsub(result,&amp;#039;(&amp;gt;維基數據)(&amp;lt;)&amp;#039;,&amp;#039;%1%2&amp;#039;)&lt;br /&gt;
end&lt;br /&gt;
function p.linkwikidata(frame)&lt;br /&gt;
	local args, working_frame&lt;br /&gt;
    if frame == mw.getCurrentFrame() then&lt;br /&gt;
        -- We&amp;#039;re being called via #invoke. The args are passed through to the module&lt;br /&gt;
        -- from the template page, so use the args that were passed into the template.&lt;br /&gt;
        if lib_arg.getArgs == nil then lib_arg = require(&amp;#039;Module:Arguments&amp;#039;) end&lt;br /&gt;
        args = lib_arg.getArgs(frame, {parentFirst=true})&lt;br /&gt;
        working_frame = frame&lt;br /&gt;
    else&lt;br /&gt;
        -- We&amp;#039;re being called from another module or from the debug console, so assume&lt;br /&gt;
        -- the args are passed in directly.&lt;br /&gt;
        args = frame&lt;br /&gt;
        working_frame = mw.getCurrentFrame()&lt;br /&gt;
        if type(args) ~= type({}) then args = {frame} end&lt;br /&gt;
    end&lt;br /&gt;
    local input_article = args[1] or args[&amp;#039;1&amp;#039;] or args.id or &amp;#039;&amp;#039;&lt;br /&gt;
    local find_lang_str = args[2] or args[&amp;#039;2&amp;#039;] or args.lang or args.langs or &amp;#039;en,de,fr,ja&amp;#039;&lt;br /&gt;
    local find_lang = mw.text.split(find_lang_str, &amp;#039;,&amp;#039;) or {}&lt;br /&gt;
    if #find_lang &amp;lt;= 1 then find_lang[1] = find_lang_str end&lt;br /&gt;
	local result = mw.ustring.gsub(input_article,&amp;#039;([Qq][%d]+)&amp;#039;,function(wikidata_id) &lt;br /&gt;
		return p._getWikidataLink(wikidata_id, find_lang)&lt;br /&gt;
	end)&lt;br /&gt;
	return result&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.linkwikidata_single(frame)&lt;br /&gt;
	local args, working_frame&lt;br /&gt;
    if frame == mw.getCurrentFrame() then&lt;br /&gt;
        -- We&amp;#039;re being called via #invoke. The args are passed through to the module&lt;br /&gt;
        -- from the template page, so use the args that were passed into the template.&lt;br /&gt;
        if lib_arg.getArgs == nil then lib_arg = require(&amp;#039;Module:Arguments&amp;#039;) end&lt;br /&gt;
        args = lib_arg.getArgs(frame, {parentFirst=true})&lt;br /&gt;
        working_frame = frame&lt;br /&gt;
    else&lt;br /&gt;
        -- We&amp;#039;re being called from another module or from the debug console, so assume&lt;br /&gt;
        -- the args are passed in directly.&lt;br /&gt;
        args = frame&lt;br /&gt;
        working_frame = mw.getCurrentFrame()&lt;br /&gt;
        if type(args) ~= type({}) then args = {frame} end&lt;br /&gt;
    end&lt;br /&gt;
    local input_article = args[1] or args[&amp;#039;1&amp;#039;] or args.id or &amp;#039;&amp;#039;&lt;br /&gt;
    local find_lang_str = args[3] or args[&amp;#039;3&amp;#039;] or args.lang or args.langs or &amp;#039;en,de,fr,ja&amp;#039;&lt;br /&gt;
    local input_display = args[2] or args[&amp;#039;2&amp;#039;]&lt;br /&gt;
    &lt;br /&gt;
    local articlename =	args.page or args.pagename or args.page_name or args[&amp;#039;page name&amp;#039;] or &lt;br /&gt;
    					args.articlename or args.article_name or args[&amp;#039;article name&amp;#039;] or &amp;#039;&amp;#039;&lt;br /&gt;
    if mw.text.trim(articlename) == &amp;#039;&amp;#039; then articlename = nil end&lt;br /&gt;
    &lt;br /&gt;
    local find_lang = mw.text.split(find_lang_str, &amp;#039;,&amp;#039;) or {}&lt;br /&gt;
    if #find_lang &amp;lt;= 1 then find_lang[1] = find_lang_str end&lt;br /&gt;
    &lt;br /&gt;
    local namescape_end = mw.ustring.find(input_article ,&amp;quot;:&amp;quot;)&lt;br /&gt;
	local g_namespace = namescape_end and mw.ustring.sub(input_article, 1, namescape_end-1) or &amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
	local namespace_head = mw.ustring.sub(input_article,1,1):lower()&lt;br /&gt;
	if mw.text.trim(g_namespace)~=&amp;#039;&amp;#039; then &lt;br /&gt;
		namespace_head = g_namespace&lt;br /&gt;
	end&lt;br /&gt;
    local title_check = ((mw.text.trim(args.title or &amp;#039;&amp;#039;)~=&amp;#039;&amp;#039;)and args.title or find_lang_str)&lt;br /&gt;
&lt;br /&gt;
    local result=p._getWikidataLink(input_article, &lt;br /&gt;
    	(((not wikidata_namespaces_support[mw.ustring.lower(namespace_head)]) or mw.text.trim(g_namespace)~=&amp;#039;&amp;#039;)&lt;br /&gt;
    		and not(({mw.ustring.find(title_check,&amp;#039;,&amp;#039;)})[1]))&lt;br /&gt;
    	and title_check or find_lang, input_display, articlename, &amp;quot;link-wd&amp;quot;)&lt;br /&gt;
	return result&lt;br /&gt;
end&lt;br /&gt;
return p;&lt;/div&gt;</summary>
		<author><name>imported&gt;A2569875</name></author>
	</entry>
</feed>