Content deleted Content added
create module to display an icon with a tooltip such as "Edit this at Wikidata" |
update from Module:EditAtWikidata/sandbox per talk: tweaks + greatly reduce memory usage + class=noprint |
||
(7 intermediate revisions by 5 users not shown) | |||
Line 1:
-- Module to display an icon with a tooltip such as "Edit this at Wikidata".
-- Icon
-- This message is only displayed if a local_parameter is not supplied
-- i.e. when called from a template, it can be coded not to display the message
-- The qid of a Wikidata entry can optionally be supplied for testing outside the article.
-- Usage:
-- {{#invoke:EditAtWikidata|showMessage|local_parameter}}
-- {{#invoke:EditAtWikidata|showMessage|qid=<ArticleID>|local_parameter}}
local p = {}
Line 13 ⟶ 12:
local i18n =
{
}
-- Return trimmed non-empty text, or nil.
if type(text) == 'string' then
return text:match('(%S.-)%s*$')
local local_parm = mw.text.trim(frame.args[1] or "")▼
if local_parm then return nil end▼
-- Can take a named parameter |qid which is the Wikidata ID for the article.▼
-- This will not normally be used except for testing outside the article.▼
return icon▼
end
end
function p._showMessage(args)
local qid = trimToNil(args.qid) or mw.wikibase.getEntityIdForCurrentPage()
if qid and mw.wikibase.entityExists(qid) then
-- Parameter pid=x uses x as an anchor in the link to the Wikidata entry.
local anchor = trimToNil(args.pid)
-- Parameter nbsp replaces the leading space with
local space = trimToNil(args.nbsp) and " " or " "
space ..
"[[File:OOjs UI icon edit-ltr-progressive.svg|frameless|text-top|10px" ..
"|alt=" .. i18n.message ..
"|link=https://www.wikidata.org/wiki/" .. qid ..
(anchor and ("#" .. anchor) or "") ..
"|class=noprint" ..
"|" .. i18n.message ..
"]]"
end
return ""
end
function p.showMessage(frame)
return p._showMessage(frame.args)
end
return p
|