Toggle menu
Toggle preferences menu
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.
Revision as of 15:17, 21 April 2026 by Khalid (talk | contribs) (Created page with "local p = {} local getArgs = require( 'Module:Arguments' ).getArgs -- Implements Template:SubTabs -- You must enable namespaces on Main for obtaining the base page name to work correctly -- https://www.mediawiki.org/wiki/Manual:$wgNamespacesWithSubpages#Enabling-for-a-namespace function p.sub(frame) local args = getArgs(frame, { wrappers = { 'Template:SubTabs' } }) local main = args[1] or mw.title.getCurrentTitle().baseText -- Use {{BASEPAGENAME}} i...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

local p = {} local getArgs = require( 'Module:Arguments' ).getArgs

-- Implements Template:SubTabs -- You must enable namespaces on Main for obtaining the base page name to work correctly -- https://www.mediawiki.org/wiki/Manual:$wgNamespacesWithSubpages#Enabling-for-a-namespace

function p.sub(frame)

 local args = getArgs(frame, {
   wrappers = {
     'Template:SubTabs'
   }
 })
 local main = args[1] or mw.title.getCurrentTitle().baseText -- Use Tabber if no page is given.
 local disp = string.match(main, "^(.+)%s+%(") or args['disp'] -- does not display discriminators in parenthesis
 local subpage = function( page ) return main .. '/' .. page end
 local sub = function( number ) if args['sub' .. number] then return subpage( args['sub' .. number] ) end end
 
 local tabs = { 
   ['this'] = args['this'],
   
   ['link1'] = main,
   ['name1'] = disp,
   
   ['link2'] = sub( '1' ),
   ['name2'] = args['sub1'],
   
   ['link3'] = sub( '2' ),
   ['name3'] = args['sub2'],
   
   ['link4'] = sub( '3' ),
   ['name4'] = args['sub3'],
   
   ['link5'] = sub( '4' ),
   ['name5'] = args['sub4'],
   ['link6'] = sub( '5' ),
   ['name6'] = args['sub5'],
   ['link7'] = sub( '6' ),
   ['name7'] = args['sub6'],
   
   ['link8'] = sub( '7' ),
   ['name8'] = args['sub7'],
   
   ['link9'] = sub( '8' ),
   ['name9'] = args['sub8'],
   
   ['link10'] = sub( '9' ),
   ['name10'] = args['sub9'],
   
   ['link11'] = sub( '10' ),
   ['name11'] = args['sub10'],
   
   ['link12'] = sub( '11' ),
   ['name12'] = args['sub11'],
   
   ['link13'] = sub( '12' ),
   ['name13'] = args['sub12'],
   
   ['link14'] = sub( '13' ),
   ['name14'] = args['sub13'],
   
   ['link15'] = sub( '14' ),
   ['name15'] = args['sub14'],
 }
 
 return p._main( tabs )

end


-- Implements Template:Tabber. function p.main(frame)

 local args = getArgs(frame, {
   wrappers = {
     'Template:Tabber'
   }
 })
 return p._main( args )

end

function p._main( args )

 local current_page = args['this'] or mw.title.getCurrentTitle().prefixedText
 local rows = {}
 for n=1,15 do
   if args['link' .. n] then
     -- Use the link as the name if none is given.
     local name = args['name' .. n] or args['link' .. n]
     if args['link' .. n] == current_page then
       -- The active tab.

table.insert( rows, string.format( '

%s

', name ) )

     else
       -- The inactive tabs.
       local link = string.format( '%s', args['link' .. n], name )

table.insert( rows, string.format( '

%s

', link ) )

     end
   end
 end
 
 -- The separator is used for the space between two tabs.

local separator = '\n

 

\n'

 -- The tail fills the space between the last tab and the end of the line.

local tail = '

 

' return string.format( '

\n%s\n%s\n

', table.concat( rows, separator ), tail )

end

return p