Module:Tt/Draft: Difference between revisions

Kuhlau (talk | contribs)
No edit summary
Kuhlau (talk | contribs)
No edit summary
(2 intermediate revisions by the same user not shown)
Line 32: Line 32:
end
end
-- Build hover tooltip
-- Build hover tooltip (desktop only)
-- Now uses a css box, not a title
local hover = out:tag('span')
local hover = out:tag('span')
hover
hover
Line 38: Line 39:
:wikitext(text)
:wikitext(text)
-- Optional hover text but plain text must be there for gadget
-- Optional hover text but plain text must be there for gadget
if not options or not options.nohover then hover:attr('title', tooltip) end
if not options or not options.nohover then
local content = tooltip:tag('span'):addClass('tt-content')
if header then
content:tag('span'):addClass('tt-header'):wikitext(header)
:done()
end
content:wikitext(tooltip)
content:done()
end
hover:allDone()
hover:allDone()
-- Build toggle tooltip
-- Build toggle tooltip (mobile only)
local toggle = out:tag('span'):addClass('custom-tt-wrapper mobile-only toggle-tooltip')
local toggle = out:tag('span'):addClass('custom-tt-wrapper mobile-only toggle-tooltip')
-- Optional toggleable text but plain text must be there for gadget
-- Optional toggleable text but plain text must be there for gadget
if not options or not options.notoggle then
if not options or not options.notoggle then
Line 59: Line 68:
:wikitext(text)
:wikitext(text)
:done()
:done()
toggle
local collapsibleContent = toggle
:tag('span')
:tag('span')
:addClass('mw-collapsible-content custom-tt')
:addClass('mw-collapsible-content custom-tt')
:css{ display = 'none' }
:css{ display = 'none' }
:wikitext(tooltip)
if header then
:done()
collapsibleContent
:tag('span')
:addClass('tt-header')
:wikitext(header)
:done()
end
collapsibleContent:wikitext(tooltip)
collapsibleContent:done()
else
else
toggle:wikitext(text)
toggle:wikitext(text)
Line 77: Line 93:
local full = tx
local full = tx
local result = tx
local result = tx
for tooltip, display in string.gmatch(full, '<span[^>]+title="([^>]-)">(.-)</span>') do
for display, tooltip in string.gmatch(full, '<span class="text%-tooltip hover%-tooltip">(.-)<span class="tt%-content">(.-)</span></span>') do
local escTooltip = tooltip:gsub("([^%w])", "%%%1")
local escTooltip = tooltip:gsub("([^%w])", "%%%1")
local escDisplay = display:gsub("([^%w])", "%%%1")
local escDisplay = display:gsub("([^%w])", "%%%1")
search_str = '<span[^>]+title="' .. escTooltip .. '">(' .. escDisplay .. ')</span><span[^>]+><span[^>]+>' .. escDisplay .. '</span><span[^>]+>' .. escTooltip .. '</span></span>'
search_str = '<span class="text%-tooltip hover%-tooltip">(' .. escDisplay .. ')<span class="tt%-content">' .. escTooltip .. '</span></span><span[^>]+><span[^>]+>' .. escDisplay .. '</span><span[^>]+>' .. escTooltip .. '</span></span>'
result = result:gsub(search_str, display)
result = result:gsub(search_str, display)
end
end