Модуль:Navbar
Күренеш
Бу модуль күп битләрдә кулланыла, шуңа күрә аны үзгәртүләр күп җирдә күренәчәк. Зинһар, барлык үзгәртүләрегезне баштан /комлыкта тикшереп карагыз. Үзгәртүләрне керткәнче, алар турында махсус биттә яки форумда бәхәс кузгату мөмкинлеге турында онытмагыз.
Бу модульгә документлаштыру җитми.
Сез модульнең тасвирламасын төзеп проектка ярдәм итә аласыз. Моның өчен модульнең нәрсә эшләгәне, куллану мөмкинлекләре, төркемләү механизмы турында сөйләгез. Кулланучыларга бу мәгълүмат нык булышыр.
- Төркемнәр турында (аларны
<includeonly>...</includeonly>эченә төрергә кирәк) һәм интервики турында онытмагыз. - Бизәү турында кайбер киңәшләр «Калыплар/Документлаштыру» проекты битендә бар.
local p = {}
local hlist = 'Template:Flatlist/styles.css'
local templatestyles = 'Module:Navbar/styles.css'
local getArgs
function p._ruwikiNavbar( args )
local titleText = args[ 1 ] 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 whiteColorDefs = {
['#fff'] = true,
['#ffffff'] = true,
['white'] = true,
}
local fontColor = args.fontcolor and args.fontcolor:lower()
local isWhite = fontColor and whiteColorDefs[ fontColor ] == true
local fontStyle = args.fontstyle and mw.text.unstripNoWiki( args.fontstyle:lower() )
if not isWhite and fontStyle then
local styleratio = require( 'Module:Color contrast' )._styleratio
isWhite = styleratio( {
fontStyle .. '; color:#666;',
'',
'#666'
} ) < 3.66
end
local isTemplate = title.namespace == 10
local altText = string.format(
'Перейти %s «%s»',
isTemplate and 'к шаблону' or 'на страницу',
mw.text.split( isTemplate and title.text or title.fullText, '#' )[ 1 ]
)
return string.format(
'[[Файл:Wikipedia interwiki section gear icon%s.svg|14px|class=noprint%s|link=%s|%s]]',
isWhite and ' white' or '',
isWhite and '' or ' skin-invert-image',
tostring( title ),
altText
)
end
function p.ruwikiNavbar(frame)
if not getArgs then
getArgs = require('Module:Arguments').getArgs
end
return p._ruwikiNavbar(getArgs(frame))
end
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; white-space:nowrap;'
end
if args[titleArg] == 'off' then
return
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 tag
if args.nodiv then
tag = 'span'
else
tag = 'div'
end
local div = mw.html.create():tag(tag)
div
:addClass('navbar hlist plainlinks noprint')
:attr('data-navboxnavigation-link', '0')
:cssText(args.style)
if args.mini then div:addClass('navbar-mini') end
if not (args.mini or args.plain) then
div
:tag('span')
:addClass('navbar-boxtext')
:cssText(args.fontstyle)
:wikitext(args.text or 'Калып:')
:wikitext(' ')
end
local ul = div:tag('ul');
if args.brackets then
ul:addClass('navbar-brackets')
end
ul
:tag('li')
:addClass('nv-view')
:wikitext('[[' .. title.fullText .. '|')
:tag(args.mini and 'abbr' or 'span')
:addClass(args.mini and 'navbar-mini-abbr')
:attr('title', 'Бу калыпны карап алу')
:cssText(args.fontstyle)
:wikitext(args.mini and 'к' or 'карап алу')
:done()
:wikitext(']]')
:done()
:tag('li')
:addClass('nv-talk')
:wikitext('[[' .. talkpage .. '|')
:tag(args.mini and 'abbr' or 'span')
:attr('title', 'Бу калыпның бәхәс бите')
:cssText(args.fontstyle)
:wikitext(args.mini and 'б' or 'бәхәс')
:done()
:wikitext(']]');
if not args.noedit then
ul
:tag('li')
:addClass('nv-edit')
:wikitext('[[Special:EditPage/' .. title.fullText .. '|')
:tag(args.mini and 'abbr' or 'span')
:attr('title', 'Бу калыпны үзгәрт')
:cssText(args.fontstyle)
:wikitext(args.mini and 'ү' or 'үзгәрт')
:done()
:wikitext(']]');
end
if args.collapsible then
div:done()
:tag('span')
:addClass( args.mini and 'navbar-ct-mini' or 'navbar-ct-full' )
:cssText(args.fontstyle)
:wikitext(args[1])
end
local frame = mw.getCurrentFrame()
return frame:extensionTag{
name = 'templatestyles', args = { src = hlist }
} .. frame:extensionTag{
name = 'templatestyles', args = { src = templatestyles }
} .. 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