Module:Banner shell

local p = {} p.main = function(frame) local yesno = require('Module:Yesno') local classmask = require('Module:Class mask') local args = frame:getParent.args local class = classmask._main{args.class or ''} local pagetype = require('Module:Pagetype')._main{class=class} local out = '' local ofinterest = function(collapsed) local wikiprojects = 'WikiProjects' local text = ' is of interest to ' if yesno(collapsed) then text = text .. 'multiple ' .. wikiprojects .. '.'		else text = text .. 'the following ' .. wikiprojects .. ':'		end return text end if yesno(args.blp) or yesno(args.living) then out = out .. frame:expandTemplate{title = 'BLP'} elseif yesno(args.blpo) then out = out .. frame:expandTemplate{title = 'BLP others'} end if yesno(args.activepol) then out = out .. frame:expandTemplate{title = 'Active politician'} end local bhargs = { templatestyles = 'WikiProject banner shell/styles.css', collapsed = args.collapsed, size = '32', class = 'wpbs', image = 'WikiProject Council with transparent background.svg', alt = 'WikiProject Council', image_link = 'Wikipedia:WikiProject Council' }	local globalclass = false if class == '' then -- check if class parameters is defined by any project banner local articleclass = classmask.readarticleclass{ignore_blank=true, only_subtemplates=true} if articleclass == '' then -- no class parameters are defined by any project banner, so globally unassessed globalclass = true end else -- global class defined, so display it		globalclass = true end if globalclass then local showclass = require('Module:Class')._class local header = showclass{class, image='yes'} header = header .. 'This ' if args.category == 'no' then header = header .. 'article ' else header = header .. pagetype .. ' ' 		end if class == '' then header = header .. 'has not yet been rated' else header = header .. 'is rated ' .. class .. '-class ' end header = header .. " on Wikipedia's content assessment scale. " if args[1] and args[1]~='' then header = header .. 'It' .. ofinterest(args.collapsed) else if not args.category or args.category=='' then if mw.title.getCurrentTitle.isTalkPage then header = header .. ''				end end end header = header .. ' '		bhargs.header = header end if args.header then bhargs.text = args.header else bhargs.text = 'This ' .. pagetype .. ofinterest(args.collapsed) end bhargs[1] = args[1] or '' out = out .. frame:expandTemplate{title='Banner holder', args=bhargs} if not args[1] or args[1] == '' then out = out .. '' --talkother end if args.listas and args.listas ~= '' then frame:preprocess('') end return out end return p