跳转到内容

模組:Wikisource further reading

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

这是本页的一个历史版本,由維基小霸王留言 | 贡献2020年7月22日 (三) 10:28编辑。这可能和当前版本存在着巨大的差异。

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( 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 P1343=mw.wikibase.getEntity( id )["claims"]["P1343"]
	if( P1343 ~= nil )
	then
		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"]["zhwikisource"]
				if( ws~=nil ) then
					local wikisourcePageTitle=ws["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;