If you find this page useful and would like to be notified of changes made to this page, start by inputting your email below.
powered by ChangeDetection
(Does not work, now hidden in MediaWiki:Print.css) |
(rem unneeded tabs/spacing for more unified importing/exporting) |
||
| (3 intermediate revisions by 2 users not shown) | |||
| Line 1: | Line 1: | ||
local p = {} | local p = {} | ||
| − | local | + | local getArgs |
| − | function trim( | + | function p._navbar(args) |
| − | + | local titleArg = 1 | |
| − | end | + | |
| + | 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('[[wikipedia:' .. title.fullText .. '|') | |
| − | + | :tag('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('[[wikipedia:' .. talkpage .. '|') | ||
| + | :tag('span') | ||
| + | :attr('title', 'Discuss this template') | ||
| + | :cssText(args.fontstyle) | ||
| + | :wikitext(args.mini and 't' or 'talk') | ||
| + | :done() | ||
| + | :wikitext(']]'); | ||
| − | + | if not args.noedit then | |
| − | end | + | ul |
| + | :tag('li') | ||
| + | :addClass('nv-edit') | ||
| + | :wikitext('[' .. title:fullUrl('action=edit') .. ' ') | ||
| + | :tag('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 | |
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | 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 | end | ||
function p.navbar(frame) | function p.navbar(frame) | ||
| − | + | if not getArgs then | |
| − | + | getArgs = require('Module:Arguments').getArgs | |
| − | + | end | |
| − | + | return p._navbar(getArgs(frame)) | |
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
end | end | ||
| − | + | ||
return p | return p | ||
Documentation for this module may be created at Module:Navbar/doc
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('[[wikipedia:' .. title.fullText .. '|')
:tag('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('[[wikipedia:' .. talkpage .. '|')
:tag('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('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