위키백과>Ykhwong (새 문서: local p = {} function p._entityid(frame,id,alt) if type(id) == 'string' then id = mw.ustring.upper(mw.ustring.sub(id,1,1))..mw.ustring.sub(id,2) if mw.ustring.match(id,'^Q%d+$')...) |
m (판 2개를 가져왔습니다: 위키백과에서 가져옴) |
||
(다른 사용자 한 명의 중간 판 하나는 보이지 않습니다) | |||
1번째 줄: | 1번째 줄: | ||
local p = {} | local p = {} | ||
function p._entityid( | function p._entityid(_,id,alt) | ||
-- backwards compatibility for deprecated _entityid function | |||
return p._id(id,alt) | |||
end | |||
function p._id(id,alt) | |||
if type(id) == 'string' then | if type(id) == 'string' then | ||
id = mw.ustring.upper(mw.ustring.sub(id,1,1))..mw.ustring.sub(id,2) | id = mw.ustring.upper(mw.ustring.sub(id,1,1))..mw.ustring.sub(id,2) | ||
18번째 줄: | 23번째 줄: | ||
if id then | if id then | ||
-- id is a title that matches a Wikidata entity | -- id is a title that matches a Wikidata entity | ||
local instanceOf = mw.wikibase.getBestStatements(id, 'P31')[1] | local instanceOf = mw.wikibase.getBestStatements(id, 'P31')[1] --instance of | ||
if instanceOf and instanceOf.mainsnak.datavalue.value.id ~= 'Q4167410' then | if instanceOf and instanceOf.mainsnak.datavalue.value.id ~= 'Q4167410' then | ||
-- not disambiguation | -- not disambiguation | ||
return mw.wikibase.getEntity(id).id | |||
elseif instanceOf == nil then | |||
-- id is a title, but is missing an instance-of value | |||
return mw.wikibase.getEntity(id).id | return mw.wikibase.getEntity(id).id | ||
end | end | ||
30번째 줄: | 38번째 줄: | ||
function p.entityid(frame) | function p.entityid(frame) | ||
return p. | return p._id(frame.args[1], frame.args[2]) | ||
end | end | ||
return p | return p |
2020년 5월 5일 (화) 08:34 기준 최신판
이 모듈에 대한 설명문서는 모듈:ResolveEntityId/설명문서에서 만들 수 있습니다
local p = {}
function p._entityid(_,id,alt)
-- backwards compatibility for deprecated _entityid function
return p._id(id,alt)
end
function p._id(id,alt)
if type(id) == 'string' then
id = mw.ustring.upper(mw.ustring.sub(id,1,1))..mw.ustring.sub(id,2)
if mw.ustring.match(id,'^Q%d+$') then
-- id is in the proper format for a Wikidata entity
if mw.wikibase.isValidEntityId(id) then
-- id is valid
id = mw.wikibase.getEntity(id)
if id then
-- entity exists
return id.id
end
end
else
id = mw.wikibase.getEntityIdForTitle(id)
if id then
-- id is a title that matches a Wikidata entity
local instanceOf = mw.wikibase.getBestStatements(id, 'P31')[1] --instance of
if instanceOf and instanceOf.mainsnak.datavalue.value.id ~= 'Q4167410' then
-- not disambiguation
return mw.wikibase.getEntity(id).id
elseif instanceOf == nil then
-- id is a title, but is missing an instance-of value
return mw.wikibase.getEntity(id).id
end
end
end
end
return alt or nil
end
function p.entityid(frame)
return p._id(frame.args[1], frame.args[2])
end
return p