Module:Navbar: Difference between revisions
From Zoophilia Wiki
Jump to navigationJump to search
meta>George Orwell III rem unneeded tabs/spacing for more unified importing/exporting |
meta>MSGJ changes requested by User:Matt Fitzpatrick to improve accessibility |
||
Line 59: | Line 59: | ||
:addClass('nv-view') | :addClass('nv-view') | ||
:wikitext('[[' .. title.fullText .. '|') | :wikitext('[[' .. title.fullText .. '|') | ||
:tag('span') | :tag(args.mini and 'abbr' or 'span') | ||
:attr('title', 'View this template') | :attr('title', 'View this template') | ||
:cssText(args.fontstyle) | :cssText(args.fontstyle) | ||
Line 69: | Line 69: | ||
:addClass('nv-talk') | :addClass('nv-talk') | ||
:wikitext('[[' .. talkpage .. '|') | :wikitext('[[' .. talkpage .. '|') | ||
:tag('span') | :tag(args.mini and 'abbr' or 'span') | ||
:attr('title', 'Discuss this template') | :attr('title', 'Discuss this template') | ||
:cssText(args.fontstyle) | :cssText(args.fontstyle) | ||
Line 81: | Line 81: | ||
:addClass('nv-edit') | :addClass('nv-edit') | ||
:wikitext('[' .. title:fullUrl('action=edit') .. ' ') | :wikitext('[' .. title:fullUrl('action=edit') .. ' ') | ||
:tag('span') | :tag(args.mini and 'abbr' or 'span') | ||
:attr('title', 'Edit this template') | :attr('title', 'Edit this template') | ||
:cssText(args.fontstyle) | :cssText(args.fontstyle) |
Revision as of 12:19, 20 October 2015
This Lua module is used on approximately 14,900,000 pages, or roughly 221660% of all pages. To avoid major disruption and server load, any changes should be tested in the module's /sandbox or /testcases subpages, or in your own module sandbox. The tested changes can be added to this page in a single edit. Consider discussing changes on the talk page before implementing them. |
This module is used in system messages. Changes to it can cause immediate changes to the Wikipedia user interface. To avoid large-scale disruption, any changes should first be tested in this module's /sandbox or /testcases subpage, or in your own user space. The tested changes can then be added in one single edit to this module. Please discuss any changes on the talk page before implementing them. |
This module is subject to page protection. It is a highly visible module in use by a very large number of pages, or is substituted very frequently. Because vandalism or mistakes would affect many pages, and even trivial editing might cause substantial load on the servers, it is protected from editing. |
This is a Lua implementation of {{Navbar}}. It is used in Module:Navbox.
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('[[' .. 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
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