Module:Portal: Difference between revisions

Content deleted Content added
reduce surface of plainlist to support templatestyles by using Module:List, remove support for barely-used width parameter (which is bad for mobile)
add support for portal demo function
Line 168:
end
return portals, trackingCat, errMsg
end
 
local function portalBox(args)
return mw.html.create('div')
:attr('role', 'navigation')
:attr('aria-label', 'Portals')
:addClass('noprint')
:addClass(sandboxVersion('portalbox'))
:addClass(args.border and sandboxVersion('portalborder') or '')
:addClass(args.left and 'tleft' or 'tright')
:css('margin', args.margin or nil)
:newline()
end
 
Line 182 ⟶ 194:
end
 
local root = mw.html.createportalBox('div'args)
:attr('role', 'navigation')
:attr('aria-label', 'Portals')
:addClass('noprint')
:addClass(sandboxVersion('portalbox'))
:addClass(args.border and sandboxVersion('portalborder') or '')
:addClass(args.left and 'tleft' or 'tright')
:css('margin', args.margin or nil)
:newline()
 
local trackingCat = ''
Line 223 ⟶ 227:
args.addBreak and '<br />' or ' '
))
end
local list = require('Module:List').unbulleted(formatted_list)
 
return tostring(root:wikitext(list))
end
 
function p._demo(imageList, args)
for key, default in pairs({left=false,border=true}) do
if args[key] == nil then args[key] = default end
args[key] = yesno(args[key], default)
end
local root = portalBox(args)
local formatted_list = {}
-- Display the portals specified in the positional arguments.
for _, image in ipairs(imageList) do
table.insert(formatted_list, string.format(
'<span>[[File:%s|32x28px|class=noviewer]]</span><span>[[:File:%s|%s]]</span>',
image, image, image))
end
Line 318 ⟶ 343:
local portals, args = processPortalArgs(origArgs)
return p._image(portals[1],args.border)
end
 
function p.demo(frame)
local args = getArgs(frame)
local styles = frame:extensionTag{ name = 'templatestyles', args = { src = templatestyles} }
return styles..p._demo(args,args)
end