Module:Wd: Difference between revisions

Content deleted Content added
Replaced flag 'unit' with flag 'raw', added flag 'mdy', fixed aliases for function 'label'
Added title function
Line 33:
stt.propertyWithQualifier = false
stt.pageTitle = false
stt.linked = false
Line 136 ⟶ 137:
function State:convertUnit(unit, link)
link = link or false
local itemID, label, targettitle
if unit == "" or unit == "1" then
Line 149 ⟶ 150:
else
label = mw.wikibase.label(itemID)
targettitle = nil
if link or label == nil then
targettitle = mw.wikibase.sitelink(itemID)
end
if link then
if targettitle then
return " " .. "[[" .. targettitle .. "|" .. (label or targettitle) .. "]]"
end
Line 165 ⟶ 166:
end
return " " .. (label or targettitle or itemID)
end
end
Line 514 ⟶ 515:
elseif snak.datavalue.type == 'wikibase-entityid' then
local value = ""
local targettitle = nil
local itemID = "Q" .. snak.datavalue.value['numeric-id']
Line 534 ⟶ 535:
if link or value == nil then
targettitle = mw.wikibase.sitelink(itemID)
end
if link then
if targettitle then
value = "[[" .. targettitle .. "|" .. (value or targettitle) .. "]]"
elseif not value then
value = "[[d:" .. itemID .. "|" .. itemID .. "]]"
end
elseif not value then
value = (targettitle or itemID)
end
Line 849 ⟶ 850:
end
 
function p._property(args, _)
local _ = _ or State.new()
local entity, propertyID, claims, rankPos, value, done
Line 1,017 ⟶ 1,018:
end
 
function p._propertyWithQualifier(args, _)
local _ = _ or State.new()
_.propertyWithQualifier = true
return p._qualifier(args, _)
Line 1,027 ⟶ 1,028:
end
 
function p._label(args, _)
local _ = _ or State.new()
local ID
local valuelabel = ""
local targettitle = nil
local nextArg = mw.text.trim(args[1] or "")
Line 1,060 ⟶ 1,061:
if _.linked then
if ID:sub(1,1) == "P" then
valuelabel = "[[d:Property:" .. ID .. "|" .. ID .. "]]"
else
valuelabel = "[[d:" .. ID .. "|" .. ID .. "]]"
end
else
valuelabel = ID
end
end
else
if ID:sub(1,1) == "P" then
valuelabel = mw.wikibase.label(ID) or ""
if _.linked and valuelabel ~= "" then
valuelabel = "[[d:Property:" .. ID .. "|" .. valuelabel .. "]]"
end
else
if not _.shortNamepageTitle then
value =if _:getShortName(ID).shortName then
label = _:getShortName(ID)
end
-- at this point, 'valuelabel' will be nila orstring aand non-emptynot stringnil
if _.linkedlabel and== target"" then
value label = mw.wikibase.label(ID)
end
else
-- set 'label' to nil so 'title' will always prevail
label = nil
end
-- at this point, 'valuelabel' will be anil stringor anda notnon-empty nilstring
if value_.linked or label == ""nil then
valuetitle = mw.wikibase.labelsitelink(ID)
end
if _.linked orand value == niltitle then
-- at this point, 'value' will be nil or a non-empty string
valuelabel = "[[" .. targettitle .. "|" .. (valuelabel or targettitle) .. "]]"
if _.linked or value == nil then
target = mw.wikibase.sitelink(ID)
end
if _.linked and target then
value = "[[" .. target .. "|" .. (value or target) .. "]]"
else
valuelabel = valuelabel or targettitle or ""
end
end
Line 1,101 ⟶ 1,107:
else
if _.rawValue then
valuelabel = mw.wikibase.getEntityIdForCurrentPage() or ""
if _.linked and valuelabel ~= "" then
valuelabel = "[[d:" .. valuelabel .. "|" .. valuelabel .. "]]"
end
else
if not _.pageTitle then
value = mw.wikibase.label()
targetlabel = mw.wikibase.sitelinklabel(ID)
else
-- set 'label' to nil so 'title' will always prevail
label = nil
end
if _.linked or valuelabel == nil then
targettitle = mw.title.getCurrentTitle().prefixedText
end
if _.linked then
valuelabel = "[[" .. targettitle .. "|" .. (valuelabel or targettitle) .. "]]" -- not much use since it links to the current page, but does add wiki mark-up
else
valuelabel = valuelabel or targettitle
end
end
end
return valuelabel
end
 
function p.title(frame)
return p._title(frame.args)
end
 
function p._title(args, _)
_ = _ or State.new()
_.pageTitle = true
return p._label(args, _)
end