Jump to content

Module:Navbar

From Wikifunctions

Documentation for this module may be created atModule:Navbar/doc

localp={}

localgetArgs

functionp._navbar(args)
localtitleArg=1

ifargs.collapsiblethen
titleArg=2
ifnotargs.plainthen
args.mini=1
end
ifargs.fontcolorthen
args.fontstyle='color:'..args.fontcolor..';'
end
args.style='float:left; text-align:left; width:6em;'
end

localtitleText=args[titleArg]or(':'..mw.getCurrentFrame():getParent():getTitle())
localtitle=mw.title.new(mw.text.trim(titleText),'Template');

ifnottitlethen
error('Invalid title '..titleText)
end

localtalkpage=title.talkPageTitleandtitle.talkPageTitle.fullTextor'';

localdiv=mw.html.create():tag('div')
div
:addClass('plainlinks')
:addClass('hlist')
:addClass('navbar')
:cssText(args.style)

ifargs.minithendiv:addClass('mini')end

ifnot(args.miniorargs.plain)then
div
:tag('span')
:css('word-spacing',0)
:cssText(args.fontstyle)
:wikitext(args.textor'This box:')
:wikitext(' ')
end

ifargs.bracketsthen
div
:tag('span')
:css('margin-right','-0.125em')
:cssText(args.fontstyle)
:wikitext('[')
:newline();
end

localul=div:tag('ul');

ul
:tag('li')
:addClass('nv-view')
:wikitext('[['..title.fullText..'|')
:tag('span')
:attr('title','View this template')
:cssText(args.fontstyle)
:wikitext(args.miniand'v'or'view')
:done()
:wikitext(']]')
:done()
:tag('li')
:addClass('nv-talk')
:wikitext('[['..talkpage..'|')
:tag('span')
:attr('title','Discuss this template')
:cssText(args.fontstyle)
:wikitext(args.miniand't'or'talk')
:done()
:wikitext(']]');

ifnotargs.noeditthen
ul
:tag('li')
:addClass('nv-edit')
:wikitext('['..title:fullUrl('action=edit')..' ')
:tag('span')
:attr('title','Edit this template')
:cssText(args.fontstyle)
:wikitext(args.miniand'e'or'edit')
:done()
:wikitext(']');
end

ifargs.bracketsthen
div
:tag('span')
:css('margin-left','-0.125em')
:cssText(args.fontstyle)
:wikitext(']')
:newline();
end

ifargs.collapsiblethen
div
:done()
:tag('span')
:css('font-size','110%')
:cssText(args.fontstyle)
:wikitext(args[1])
end

returntostring(div:done())
end

functionp.navbar(frame)
ifnotgetArgsthen
getArgs=require('Module:Arguments').getArgs
end
returnp._navbar(getArgs(frame))
end

returnp