Module:Tt/Draft: Difference between revisions
No edit summary |
No edit summary |
||
| (4 intermediate revisions by the same user not shown) | |||
| Line 14: | Line 14: | ||
end | end | ||
return p._main(args) | return p._main(args, frame) | ||
end | end | ||
function p._main(args, options) | function p._main(args, options, frame) | ||
local text = args[1] | local text = args[1] | ||
local tooltip = args[2] | local tooltip = mw.text.decode(args[2], true) | ||
local header = lib.isNotEmpty(args.header) and args.header or nil | local header = lib.isNotEmpty(args.header) and mw.text.decode(args.header, true) or nil | ||
local class = lib.isNotEmpty(args.class) and args.class .. ' custom-tt-wrapper toggle-tooltip' or 'custom-tt-wrapper toggle-tooltip' | |||
local out = mw.html.create() | local out = mw.html.create() | ||
| Line 29: | Line 30: | ||
local base = tostring(p._main(args, {notoggle = true})) -- tt on label for hover as otherwise the <a> default title takes priority | local base = tostring(p._main(args, {notoggle = true})) -- tt on label for hover as otherwise the <a> default title takes priority | ||
local linkTo = '[[' .. lib.ternary(link == '1', text, link) .. '|' .. base .. ']]' | local linkTo = '[[' .. lib.ternary(link == '1', text, link) .. '|' .. base .. ']]' | ||
return p._main({ linkTo, args[2], header = args.header }, {nohover = true}) -- external tt for collapsible for the separated clickable | return p._main({ linkTo, args[2], header = args.header, class = args.class }, {nohover = true}, frame) -- external tt for collapsible for the separated clickable | ||
end | |||
-- preprocess tooltip text | |||
if lib.isNotEmpty(tooltip) then | |||
tooltip = frame:preprocess(tooltip) | |||
end | end | ||
-- Build toggle tooltip | -- Build toggle tooltip | ||
local toggle = out:tag('span'):addClass( | local toggle = out:tag('span'):addClass(class) | ||
-- Optional toggleable text but plain text must be there for gadget | -- Optional toggleable text but plain text must be there for gadget | ||