Nenda kwa yaliyomo

Module:Navbar

Kutoka Wikipedia, kamusi elezo huru

Documentation for this module may be created at Module:Navbar/doc

local p = {}
 
local getArgs
local HtmlBuilder = require('Module:HtmlBuilder')
 
local function trim(s)
	return mw.ustring.match(s, "^%s*(.-)%s*$")
end
 
local function htmlError(s)
	local span = HtmlBuilder.create('span')
 
	span
		.addClass('error')
		.css('float', 'left')
		.css('white-space', 'nowrap')
		.wikitext('Error: ' .. s)
 
	return tostring(span)
end
 
local function getTitle(pageName)
	pageName = trim(pageName);
	local page_title, talk_page_title;
 
	if mw.ustring.sub(pageName, 1, 1) == ':' then
		page_title = mw.title.new( mw.ustring.sub(pageName, 2));
	else
		page_title = mw.title.new(pageName, 'Template');
	end
 
	if page_title then
		talk_page_title = page_title.talkPageTitle;
	else
		talk_page_title = nil;
	end
 
	return page_title, talk_page_title;
end
 
function p._navbar(args)
	local good, title, talk_title;
	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
 
	good, title, talk_title = pcall(getTitle, args[titleArg] or (':' .. mw.getCurrentFrame():getParent():getTitle()));
	if not good then
		return htmlError(title);
	end
 
	if not title then
		return htmlError('Page does not exist')
	end
 
	local mainpage = title.fullText;
	local talkpage = talk_title and talk_title.fullText or ''
	local editurl = title:fullUrl('action=edit');
 
	local viewLink, talkLink, editLink = 'onyesha', 'majadiliano', 'hariri'
	if args.mini then
		viewLink, talkLink, editLink = 'v', 'd', 'e'
	end
 
	local div = HtmlBuilder.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('[[' .. mainpage .. '|')
			.tag('span')
				.attr('title', 'Onyesha kizego')
				.cssText(args.fontstyle or '')
				.wikitext(viewLink)
				.done()
			.wikitext(']]')
			.done()
		.tag('li')
			.addClass('nv-talk')
			.wikitext('[[' .. talkpage .. '|')
			.tag('span')
				.attr('title', 'Majadiliano ya kigezo')
				.cssText(args.fontstyle or '')
				.wikitext(talkLink)
				.done()
			.wikitext(']]');
 
	if not args.noedit then
		ul
			.tag('li')
				.addClass('nv-edit')
				.wikitext('[' .. editurl .. ' ')
				.tag('span')
					.attr('title', 'Hariri kigezo')
					.cssText(args.fontstyle or '')
					.wikitext(editLink)
					.done()
				.wikitext(']');
	end
 
	if args.brackets then
		div
			.tag('span')
				.css('margin-left', '-0.125em')
				.cssText( args.fontstyle or '')
				.wikitext(']')
				.newline();
	end
 
	if args.collapsible then
		div
			.done()
		.tag('span')
			.css('font-size', '110%')
			.cssText(args.fontstyle or '')
			.wikitext(args[1])
	end
 
	return tostring(div.allDone())
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