Difference between revisions of "Module:Navbar"
Bugman admin (talk | contribs) m (1 revision: Importing the wikipedia Template:Infobox export file.)  | 
				Bugman admin (talk | contribs)  m (1 revision imported: The current Wikipedia Template:Infobox.)  | 
				||
| (One intermediate revision by the same user not shown) | |||
| Line 2: | Line 2: | ||
local getArgs  | local getArgs  | ||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
function p._navbar(args)  | function p._navbar(args)  | ||
| − | |||
	local titleArg = 1  | 	local titleArg = 1  | ||
| − | + | ||
	if args.collapsible then  | 	if args.collapsible then  | ||
		titleArg = 2  | 		titleArg = 2  | ||
| Line 53: | Line 16: | ||
		args.style = 'float:left; text-align:left; width:6em;'  | 		args.style = 'float:left; text-align:left; width:6em;'  | ||
	end  | 	end  | ||
| − | + | ||
| − | + | 	local titleText = args[titleArg] or (':' .. mw.getCurrentFrame():getParent():getTitle())  | |
| − | + | 	local title = mw.title.new(mw.text.trim(titleText), 'Template');  | |
| − | |||
| − | |||
	if not title then  | 	if not title then  | ||
| − | + | 		error('Invalid title ' .. titleText)  | |
	end  | 	end  | ||
| − | 	local   | + | 	local talkpage = title.talkPageTitle and title.talkPageTitle.fullText or '';  | 
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | 	local div =   | + | 	local div = mw.html.create():tag('div')  | 
	div  | 	div  | ||
| − | + | 		:addClass('plainlinks')  | |
| − | + | 		:addClass('hlist')  | |
| − | + | 		:addClass('navbar')  | |
| − | + | 		:cssText(args.style)  | |
| − | 	if args.mini then div  | + | 	if args.mini then div:addClass('mini') end  | 
	if not (args.mini or args.plain) then  | 	if not (args.mini or args.plain) then  | ||
		div  | 		div  | ||
| − | + | 			:tag('span')  | |
| − | + | 				:css('word-spacing', 0)  | |
| − | + | 				:cssText(args.fontstyle)  | |
| − | + | 				:wikitext(args.text or 'This box:')  | |
| − | + | 				:wikitext(' ')  | |
	end  | 	end  | ||
	if args.brackets then  | 	if args.brackets then  | ||
		div  | 		div  | ||
| − | + | 			:tag('span')  | |
| − | + | 				:css('margin-right', '-0.125em')  | |
| − | + | 				:cssText(args.fontstyle)  | |
| − | + | 				:wikitext('[')  | |
| − | + | 				:newline();  | |
	end  | 	end  | ||
| − | 	local ul = div  | + | 	local ul = div:tag('ul');  | 
	ul  | 	ul  | ||
| − | + | 		:tag('li')  | |
| − | + | 			:addClass('nv-view')  | |
| − | + | 			:wikitext('[[' .. title.fullText .. '|')  | |
| − | + | 			:tag(args.mini and 'abbr' or 'span')  | |
| − | + | 				:attr('title', 'View this template')  | |
| − | + | 				:cssText(args.fontstyle)  | |
| − | + | 				:wikitext(args.mini and 'v' or 'view')  | |
| − | + | 				:done()  | |
| − | + | 			:wikitext(']]')  | |
| − | + | 			:done()  | |
| − | + | 		:tag('li')  | |
| − | + | 			:addClass('nv-talk')  | |
| − | + | 			:wikitext('[[' .. talkpage .. '|')  | |
| − | + | 			:tag(args.mini and 'abbr' or 'span')  | |
| − | + | 				:attr('title', 'Discuss this template')  | |
| − | + | 				:cssText(args.fontstyle)  | |
| − | + | 				:wikitext(args.mini and 't' or 'talk')  | |
| − | + | 				:done()  | |
| − | + | 			:wikitext(']]');  | |
	if not args.noedit then  | 	if not args.noedit then  | ||
		ul  | 		ul  | ||
| − | + | 			:tag('li')  | |
| − | + | 				:addClass('nv-edit')  | |
| − | + | 				:wikitext('[' .. title:fullUrl('action=edit') .. ' ')  | |
| − | + | 				:tag(args.mini and 'abbr' or 'span')  | |
| − | + | 					:attr('title', 'Edit this template')  | |
| − | + | 					:cssText(args.fontstyle)  | |
| − | + | 					:wikitext(args.mini and 'e' or 'edit')  | |
| − | + | 					:done()  | |
| − | + | 				:wikitext(']');  | |
	end  | 	end  | ||
	if args.brackets then  | 	if args.brackets then  | ||
		div  | 		div  | ||
| − | + | 			:tag('span')  | |
| − | + | 				:css('margin-left', '-0.125em')  | |
| − | + | 				:cssText(args.fontstyle)  | |
| − | + | 				:wikitext(']')  | |
| − | + | 				:newline();  | |
	end  | 	end  | ||
| − | + | ||
	if args.collapsible then  | 	if args.collapsible then  | ||
		div  | 		div  | ||
| − | + | 			:done()  | |
| − | + | 		:tag('span')  | |
| − | + | 			:css('font-size', '110%')  | |
| − | + | 			:cssText(args.fontstyle)  | |
| − | + | 			:wikitext(args[1])  | |
	end  | 	end  | ||
| − | 	return tostring(div  | + | 	return tostring(div:done())  | 
end  | end  | ||
Latest revision as of 17:51, 21 October 2015
local p = {}
local getArgs
function p._navbar(args) local titleArg = 1
if args.collapsible then titleArg = 2 if not args.plain then args.mini = 1 end if args.fontcolor then args.fontstyle = 'color:' .. args.fontcolor .. ';' end args.style = 'float:left; text-align:left; width:6em;' end
local titleText = args[titleArg] or (':' .. mw.getCurrentFrame():getParent():getTitle()) local title = mw.title.new(mw.text.trim(titleText), 'Template');
if not title then error('Invalid title ' .. titleText) end
local talkpage = title.talkPageTitle and title.talkPageTitle.fullText or ;
local div = mw.html.create():tag('div') div :addClass('plainlinks') :addClass('hlist') :addClass('navbar') :cssText(args.style)
if args.mini then div:addClass('mini') end
if not (args.mini or args.plain) then div :tag('span') :css('word-spacing', 0) :cssText(args.fontstyle) :wikitext(args.text or 'This box:') :wikitext(' ') end
if args.brackets then div :tag('span') :css('margin-right', '-0.125em') :cssText(args.fontstyle) :wikitext('[') :newline(); end
local ul = div:tag('ul');
ul :tag('li') :addClass('nv-view') :wikitext('') :tag(args.mini and 'abbr' or 'span') :attr('title', 'View this template') :cssText(args.fontstyle) :wikitext(args.mini and 'v' or 'view') :done() :wikitext('') :done() :tag('li') :addClass('nv-talk') :wikitext('') :tag(args.mini and 'abbr' or 'span') :attr('title', 'Discuss this template') :cssText(args.fontstyle) :wikitext(args.mini and 't' or 'talk') :done() :wikitext('');
if not args.noedit then ul :tag('li') :addClass('nv-edit') :wikitext('[' .. title:fullUrl('action=edit') .. ' ') :tag(args.mini and 'abbr' or 'span') :attr('title', 'Edit this template') :cssText(args.fontstyle) :wikitext(args.mini and 'e' or 'edit') :done() :wikitext(']'); end
if args.brackets then div :tag('span') :css('margin-left', '-0.125em') :cssText(args.fontstyle) :wikitext(']') :newline(); end
if args.collapsible then div :done() :tag('span') :css('font-size', '110%') :cssText(args.fontstyle) :wikitext(args[1]) end
return tostring(div:done()) end
function p.navbar(frame) if not getArgs then getArgs = require('Module:Arguments').getArgs end return p._navbar(getArgs(frame)) end
return p