Module:Tnavbar

-- -- -- Implements and variants -- -- @todo move the hardcoded css to MediaWiki:Common.css given how many pages it's found on -- local p = {} local yesno = require( 'Module:Yesno' ) function p._navbar( args ) local tag tag = mw.html.create( 'div' ) :css( {           ['background-color'] = 'transparent',            padding = '0'        } ) tag :addClass( 'plainlinks' ) :addClass( 'noprint' ) :css( {           ['white-space'] = 'nowrap',            ['font-weight'] = 'normal',            ['font-size'] = 'xx-small'        } ) viewSpan = mw.html.create( 'span' ) :attr( 'title', 'View this template' ) :cssText( fontstyle ) :wikitext( 'v' ) talkSpan = mw.html.create( 'span' ) :attr( 'title', 'Discussion about this template' ) :cssText( fontstyle ) :wikitext( 'd' ) editSpan = mw.html.create( 'span' ) :attr( 'title', 'You can edit this template. Please use the preview button before saving.' ) :cssText( fontstyle ) :wikitext( 'e' ) local title = mw.text.trim( args[1] ) local ns, titleTbl, page, talk if mw.ustring.sub( title, 1, 1 ) == ':' then -- mainspace title = mw.ustring.sub( title, 2 ) page = title talk = 'Talk:' .. title elseif mw.ustring.match( title, ':' ) then -- split title to see if it has a valid namespace titleTbl = mw.text.split( title, ':' ) ns = mw.site.namespaces[titleTbl[1]] if ns ~= nil then page = ns.name .. ':' .. table.concat( titleTbl, '', 2 ) if ns.isTalk then talk = page else talk = ns.talk.name .. ':' .. table.concat( titleTbl, '', 2 ) end end end -- this happens if there's no semi-colons in title -- or if there is semi-colons but it didn't have valid ns name if not page then page = 'Template:' .. title talk = 'Template talk:' .. title end tag :wikitext(  .. tostring( viewSpan ) ..  ) :wikitext( ' ' ) :tag( 'span' ) :css( 'font-size', '80%' ) :wikitext( '&bull;' ) :done :wikitext( ' ' ) :wikitext( '[' .. tostring( mw.uri.fullUrl( talk ) ) .. ' ' .. tostring( talkSpan ) .. ']' ) :wikitext( ' ' ) :tag( 'span' ) :css( 'font-size', '80%' ) :wikitext( '&bull;' ) :done :wikitext( ' ' ) :wikitext( '[' .. tostring( mw.uri.fullUrl( page, 'action=edit' ) ) .. ' ' .. tostring( editSpan ) .. ']' ) return tostring( tag ) end function p._collapsible( args ) local nav_args = { [1] = args[2] }   local div = mw.html.create( 'div' ) :css( {           float = 'left',            ['text-align'] = 'left',            width = '6em'        } ) :wikitext(p._navbar(nav_args)) local span = mw.html.create('span'):wikitext(args[1]) return tostring( div ) .. tostring( span ) end return p