模組:Wikisource further reading
外观
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="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 )
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 bookPageTitle=mw.wikibase.getEntity( "Q3244234")["sitelinks"]["zhwiki"] or bookName
out=out..",出自《[["..bookPageTitle.."|"..bookName.."]]》"
end
else
local wikisourceId =data["mainsnak"]["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
out=out.."\n: [[File:Wikisource-logo.svg|16x16px|class=noviewer|alt=维基文库中的相关文本:|link=]] 《[[s:"..wikisourcePageTitle.."|"..wikisourcePageName.."]]》"
end
end
end
end
return out
end
return p;