跳转到内容

模組:Wikisource further reading

被永久保护的模块
维基百科,自由的百科全书

这是本页的一个历史版本,由維基小霸王留言 | 贡献2020年8月1日 (六) 04:54 (加入显示版本P747功能)编辑。这可能和当前版本存在着巨大的差异。

local p = {};


out=""


function p.getWikisourceInfo()
	local id=mw.wikibase.getEntityIdForCurrentPage()
	local out='<span class="mw-editsection-like plainlinks" style="float: right;"><span class="mw-editsection-bracket">[</span>[[wikidata:'..id..'|<span class="nomobile">在维基数据</span>编<span class="nomobile">辑</span>]]<span class="mw-editsection-bracket">]</span></span>'
	local wikisourcePage=mw.wikibase.getEntity( id )["sitelinks"]["zhwikisource"]

--If there is a interwiki link for Wikisource, show it.
	if( wikisourcePage ~= nil ) then
		title=wikisourcePage["title"]
		if( string.match(title, "Author:") ) then
			out=out.."\n: [[File:Wikisource-logo.svg|16x16px|class=noviewer|alt=|link=]] 在[[维基文库]]'''[[s:"..title.."|阅读该作者作品]]'''"
		else
			out=out.."\n: [[File:Wikisource-logo.svg|16x16px|class=noviewer|alt=|link=]] 在[[维基文库]]'''[[s:"..title.."|阅读本作品原文]]'''"
		end
	end
	local claims=mw.wikibase.getEntity( id )["claims"]


--If there are versions (P747) with a Wikisource link, show them.
	if( claims ~= nil and claims["P747"] ~= nil )
	then
		P747=claims["P747"]
		for i, data in ipairs(P747) do
			if( data["qualifiers"]~= nil and data["qualifiers"]["P805"]~= nil)
			then
				local wikisourceBook=data["qualifiers"]["P805"]
				local wikisourceId=wikisourceBook[1]["datavalue"]["value"]["id"]
				local ws=mw.wikibase.getEntity( wikisourceId )["sitelinks"]
				if( ws~=nil and ws["zhwikisource"]~=nil ) then
					local zhws=ws["zhwikisource"]
					local wikisourcePageTitle=zhws["title"]
					local wikisourcePageName=mw.wikibase.getLabel( wikisourceId ) or wikisourcePageTitle
					if( type(data["qualifiers"]["P958"]) == "table") 
					then
						wikisourceSection="#"..data["qualifiers"]["P958"][1]["datavalue"]["value"]
					else 
						wikisourceSection=""
					end
					out=out.."\n: [[File:Wikisource-logo.svg|16x16px|class=noviewer|alt=维基文库中的相关文本:|link=]] 《[[s:"..wikisourcePageTitle..wikisourceSection.."|"..wikisourcePageTitle.."]]》"
				end
			else

				local wikisourceId =data["mainsnak"]["datavalue"]["value"]["id"]
				local ws=mw.wikibase.getEntity( wikisourceId )["sitelinks"]
				if( ws~=nil and ws["zhwikisource"]~=nil ) then
					local wikisourcePageTitle=ws["zhwikisource"]["title"]
					local wikisourcePageName=mw.wikibase.getLabel( wikisourceId ) or wikisourcePageTitle
					out=out.."\n: [[File:Wikisource-logo.svg|16x16px|class=noviewer|alt=维基文库中的相关文本:|link=]] 《[[s:"..wikisourcePageTitle.."|"..wikisourcePageTitle.."]]》"

					local zhWikiLink=mw.wikibase.getEntity( wikisourceId )["sitelinks"]["zhwiki"]
					if( zhWikiLink~=nil ) 
					then
						out=out.."([["..zhWikiLink["title"].."|介绍]])"
					end

			end
			end 
		end 
	end


--If there are described by source (P1343) with a Wikisource link, show them.
	if( claims ~= nil and claims["P1343"] ~= nil )
	then
		P1343=claims["P1343"]
		for i, data in ipairs(P1343) do
			if( data["qualifiers"]~= nil and data["qualifiers"]["P805"]~= nil)
			then
				local wikisourceBook=data["qualifiers"]["P805"]
				local wikisourceId=wikisourceBook[1]["datavalue"]["value"]["id"]
				local ws=mw.wikibase.getEntity( wikisourceId )["sitelinks"]
				if( ws~=nil and ws["zhwikisource"]~=nil ) then
					local zhws=ws["zhwikisource"]
					local wikisourcePageTitle=zhws["title"]
					local wikisourcePageName=mw.wikibase.getLabel( wikisourceId ) or wikisourcePageTitle
					if( type(data["qualifiers"]["P958"]) == "table") 
					then
						wikisourceSection="#"..data["qualifiers"]["P958"][1]["datavalue"]["value"]
					else 
						wikisourceSection=""
					end
					out=out.."\n: [[File:Wikisource-logo.svg|16x16px|class=noviewer|alt=维基文库中的相关文本:|link=]] 《[[s:"..wikisourcePageTitle..wikisourceSection.."|"..wikisourcePageName.."]]》"
					local bookId=data["mainsnak"]["datavalue"]["value"]["id"]
					local bookName=mw.wikibase.getLabel( bookId )

					local zhWikiLink=mw.wikibase.getEntity( bookId )["sitelinks"]["zhwiki"]
					if( zhWikiLink~=nil ) 
					then
						out=out..",出自《[["..zhWikiLink["title"].."|"..bookName.."]]》"
					else 
						out=out..",出自《"..bookName.."》"
					end
				end
			else

				local wikisourceId =data["mainsnak"]["datavalue"]["value"]["id"]
				local ws=mw.wikibase.getEntity( wikisourceId )["sitelinks"]
				if( ws~=nil and ws["zhwikisource"]~=nil ) then
					local wikisourcePageTitle=ws["zhwikisource"]["title"]
					local wikisourcePageName=mw.wikibase.getLabel( wikisourceId ) or wikisourcePageTitle
					out=out.."\n: [[File:Wikisource-logo.svg|16x16px|class=noviewer|alt=维基文库中的相关文本:|link=]] 《[[s:"..wikisourcePageTitle.."|"..wikisourcePageName.."]]》"
			end


			end 
		end 
	end
	return out
end

return p;