Перейти к содержанию

Модуль:Navbar

Википедия сайттаҥ

Для документации этого модуля может быть создана страница Модуль: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; 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 '';
	
	if args.nodiv then
		tag = 'span'
	else
		tag = 'div'
	end
	
	local div = mw.html.create():tag(tag)
	div
		:addClass('plainlinks')
		:addClass('noprint')
		:addClass('navbar')
		:cssText(args.style or 'text-align:left; white-space:nowrap;')

	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 'Шаблон:')
				:wikitext(' ')
	end

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

	local ul = div:tag('span');

	ul
		:tag('span')
			: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('span')
			:addClass('nv-talk')
			:wikitext(' • ')
			: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('span')
				:addClass('nv-edit')
				:wikitext(' • ')
				: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.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
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy