一什么摇篮| crt是什么意思| 羊冲什么生肖| 水痘是什么病毒| 西亚是什么人种| 腊月二十三是什么星座| 失眠是什么原因| 打三个喷嚏代表什么| 维生素d3是什么| 黑脸娃娃有什么功效| 肺炎衣原体和支原体有什么区别| 记忆力衰退吃什么药| 礼金是什么意思| joway是什么牌子| 骶管小囊肿是什么意思| 老花眼视力模糊有什么办法解决吗| 胡子长得快是什么原因| dream car是什么意思| 耿耿于怀什么意思| 浮肿是什么原因引起的| 利尿什么意思| 省政协主席什么级别| npc是什么意思啊| 什么是肛漏| 什么是舌吻| 口苦吃什么中药| 验孕棒一深一浅是什么意思| 什么钙片补钙效果最好| 心不在焉是什么意思| 通班是什么意思| special是什么意思| 男性感染支原体有什么症状| 做梦梦到掉牙齿是什么意思| 狗眼看人低是什么意思| 黑裤子配什么颜色的鞋| diy是什么意思| 后羿射日告诉我们什么道理| 肛瘘是什么意思| 经常口腔溃疡吃什么维生素| 阑尾炎手术后可以吃什么| 还记得年少时的梦吗是什么歌| 经常头晕头疼是什么原因| 男羊配什么属相最好| 什么手表品牌最好| 软化血管吃什么药最好| 为什么空调不制冷| 碳酸钙d3颗粒什么时候吃最好| 为什么会打鼾| 3月31号什么星座| 牙齿吃甜的就会疼什么原因| 莲子是什么| 手指上长毛是什么原因| 手淫是什么| 心率快是什么原因引起的| 时柱比肩是什么意思| 腋毛癣用什么药膏最好| 眼睛干涩疼痛用什么滴眼液好| 忍辱负重是什么意思| 支气管炎吃什么药有效| 严字五行属什么| 气结是什么意思| 腰酸背痛吃什么药| 潜力是什么意思| 后背疼去医院挂什么科| 忘不了鱼在中国叫什么| 三七粉什么人不适合吃| 公明仪属什么生肖| 红细胞分布宽度偏低是什么意思| 一般手脚慢进什么工厂| 献血有什么好处和坏处| 舌苔厚白中间有裂纹吃什么药| 上寒下热体质吃什么中成药| 无所适从什么意思| 秦始皇叫什么| 平均血红蛋白含量偏低是什么意思| 大便偏黑是什么原因| rh因子阳性是什么意思| 甲醇是什么东西| 强龙不压地头蛇是什么生肖| 肋骨骨折吃什么食物好得快| 左胳膊发麻是什么原因| 9年是什么婚| 2月2日是什么星座| 燕京大学现在叫什么| 程度是什么意思| 藤椒是什么| 金是什么颜色| 扁桃体长什么样子| 什么是外围| 手心脚心出汗是什么原因| 项羽为什么叫西楚霸王| 五条杠什么牌子| 10月30是什么星座| 明年是什么生肖年| 英国全称叫什么| 实则是什么意思| 吃豌豆有什么好处| 补刀什么意思| 大便发绿色是什么原因| 雷人是什么意思| 降头是什么意思| 黄瓜敷脸有什么作用与功效| 魂穿是什么意思| 空调输入功率是什么意思| 骨折吃什么恢复快| 今年流行什么发型女| 身份证最后一位x是什么意思| 喉咙痛喝什么饮料| 为什么叫西瓜| 空腹吃柿子有什么危害| 什么是忧郁症| 海鸥手表属于什么档次| 暴饮暴食会得什么病| 首重是什么意思| 18岁是什么年华| bl是什么意思| 手一直抖是什么原因| 避孕套长什么样| 三月份生日是什么星座| 色痨是什么病| 十二月四号是什么星座| 红薯不能和什么一起吃| 推辞是什么意思| 高血压应该吃什么| 榴莲壳有什么用处| 检查食管做什么检查| 牛三合生肖是什么| 葫芦挂在家里什么位置好| 相濡以沫是什么生肖| 乳腺癌吃什么水果好| 首选是什么意思| 囊肿里面是什么东西| 直接胆红素偏高是什么意思| 头皮屑大块是什么原因| 足字旁的字与什么有关| 猛虎下山是什么意思| 柠檬什么时候开花结果| 胎儿右肾盂分离是什么意思| 什么时候是安全期| 落叶像什么| 梦到乌龟是什么意思| 为什么梦不到死去的亲人| 酒精对皮肤有什么伤害| 为什么醋能让疣体脱落| 毛囊炎是什么| 千年等一回是什么生肖| 瘦西湖为什么叫瘦西湖| 5月20号是什么星座| 净空是什么意思| 自闭症是什么人投胎| lga肾病是什么意思| 身体水肿是什么原因引起的| 银渐层是什么品种| copd什么意思| dvt是什么意思| 夏天像什么| 矢量图是什么格式| 广西有什么特产| 漫字五行属什么| 黄金桂是什么茶| 黑茶金花是什么菌| 便秘吃什么水果| 武则天原名叫什么| 六月二十九日是什么星座| ab型和a型生的孩子是什么血型| 慷慨解囊是什么意思| 颞下颌关节炎吃什么药| ed是什么| 月经期头疼是什么原因| 双子后面是什么星座| 尪痹是什么意思| 业力重是什么意思| 一直吐口水是什么原因| nfc果汁是什么意思| ims是什么意思| 神经电生理检查是什么| 山豆念什么| 血糖高早餐吃什么好| 四时是什么时辰| 做肠镜检查需要提前做什么准备| 白醋和陈醋有什么区别| 玖姿女装属于什么档次| 癫痫是什么| 手麻脚麻吃什么药| N医学上是什么意思| 中药饮片是什么| 左眼皮跳是什么原因| 海鸥手表属于什么档次| bld是什么意思| 咽喉炎吃什么药能治好| 脸发烫是什么原因| 男生属鸡和什么属相配| 喉咙干痒是什么原因| 放单是什么意思| 左束支传导阻滞是什么意思| 张扬是什么意思| 去取环前需做什么准备| 五指毛桃根有什么功效| twitter是什么| 5年生存率是什么意思| 萎缩性胃炎吃什么药好| 足齐念什么| 口腔溃疡喝什么饮料| 胎停是什么原因造成的| 痛风吃什么| 欲哭无泪什么意思| 一什么小船| 胎儿停止发育是什么原因造成的| 下肢静脉曲张挂什么科| 筝是什么意思| 44岁月经量少是什么原因| 祈福是什么意思| 劳力士手表什么档次| 胸口闷堵是什么原因| wonderflower是什么牌子| 提心吊胆是什么生肖| 赛字五行属什么| 血脂高吃什么药| 腿老是抽筋是什么原因| 三伏天吃什么对身体好| 前方高能是什么意思| 尿检白细胞弱阳性是什么意思| 胃手术后吃什么好| 慢性肠炎吃什么药调理| 脑供血不足是什么原因引起的| cap医学上是什么意思| 屁股出汗多是什么原因| 02年的属什么| 眼睛有重影是什么原因| 用减一笔是什么字| 7月12日是什么星座| 尿培养是检查什么病| 任达华属什么生肖| 什么是阴历什么是阳历| 吝啬鬼是什么生肖| 体面什么意思| 区域经理的岗位职责是什么| 什么是性早熟| c60是什么| 保护眼睛用什么眼药水| 便秘吃什么药最好| 小妹是什么意思| 假唱是什么意思| 什么叫辅酶q10| 黑洞是什么东西| ahc是韩国什么档次| 桃子是什么季节的水果| 克罗心是什么牌子| 什么是脂蛋白a| 活菩萨是什么意思| 什么力气| 慢性盆腔炎吃什么药| 大便特别臭是什么原因| 无锡有什么好玩的| mickey是什么牌子| 宝宝肠胃炎吃什么药| 银耳什么时候吃最好| 窗口是什么意思| 蝉联是什么意思| 夏天脸上皮肤痒是什么原因| 红红的苹果像什么| 猪头三是什么意思| 黄体不足吃什么药| 祖庭是什么意思| 百度Перейти к содержанию

国务院公布机构设置以及部委管理的国家局设置

Википедиядихъай
百度 四是积极打造文化+地产的资源开发模式。

Для документации этого модуля может быть создана страница Модуль:Navbox/doc

--
-- Реализует {{навигационная таблица}}, {{подгруппы навигационной таблицы}} и {{навигационная таблица с блоками}}.
-- Основной объём кода заимствован из английского Module:Navbox.
--

local p = {}

local getArgs -- lazily initialized
local yesno -- lazily initialized
local styleratio

local ODD_EVEN_MARKER = '\127_ODDEVEN_\127'
local RESTART_MARKER = '\127_ODDEVEN0_\127'
local REGEX_MARKER = '\127_ODDEVEN(%d?)_\127'

-- общие параметры для всех шаблонов
local commonAliases = {
	name = {'name', 'имя'},
	navigation = {'navigation', 'навигация'},
	navbar = {'navbar', 'ссылка_на_просмотр'},
	state = {'state'},
	orphan = {'orphan'},
	tracking = {'tracking'},
	border = {'border', 1},
	title = {'title', 'заголовок'},
	titlegroup = {'titlegroup'},
	above = {'above', 'вверху'},
	image = {'image', 'изображение'},
	imageleft = {'imageleft', 'изображение2', 'изображение_слева'},
	below = {'below', 'внизу'},
		
	bodyclass = {'bodyclass', 'класс_тела'},
	titleclass = {'titleclass', 'класс_заголовка'},
	titlegroupclass = {'titlegroupclass'},
	aboveclass = {'aboveclass', 'класс_вверху'},
	belowclass = {'belowclass', 'класс_внизу'},
	groupclass = {'groupclass', 'класс_групп'},
	listclass = {'listclass', 'класс_списков'},
	imageclass = {'imageclass', 'класс_изображения'},
	
	basestyle = {'basestyle', 'стиль', 'стиль_базовый'},
	bodystyle = {'style', 'bodystyle', 'стиль_тела'},
	titlestyle = {'titlestyle', 'стиль_основного_заголовка', 'стиль_заголовка'},
	titlegroupstyle = {'titlegroupstyle'},
	innerstyle = {'innerstyle'},
	abovestyle = {'abovestyle', 'стиль_вверху'},
	belowstyle = {'belowstyle', 'стиль_внизу'},
	imagestyle = {'imagestyle', 'стиль_изображения'},
	imageleftstyle = {'imageleftstyle', 'imagestyle2', 'стиль_изображения_слева'},
}

-- параметры {{навигационная таблица}} и {{подгруппы навигационной таблицы}}
local standardAliases = {
	groupstyle = {'groupstyle', 'стиль_заголовков', 'стиль_групп'},
	liststyle = {'liststyle', 'стиль_списков'},
	evenodd = {'evenodd', 'чётные_нечётные', 'четные_нечетные'},
	groupwidth = {'groupwidth', 'ширина_групп'},
	listpadding = {'listpadding', 'отступ_списков'},
}

-- параметры {{навигационная таблица}} и {{подгруппы навигационной таблицы}} с нумерацией
local standardElementAliases = {
	group = {'group%s', 'заголовок%s', 'группа%s'},
	list = {'list%s', 'список%s'},
	groupstyle = {'group%sstyle', 'стиль_заголовка%s', 'стиль_группы%s'},
	listclass = {'list%sclass', 'класс%sсписка', 'класс_списка%s'},
	liststyle = {'list%sstyle', 'стиль_списка%s'},
	listpadding = {'list%spadding'}
}

-- параметры {{навигационная таблица с блоками}}
-- с нижнего подчеркивания начинаются параметры, конфликтующие с standardAliases 
local groupsParentAliases = {
	selected = {'selected', 'открытый_блок', 'развернуть'},
	secttitlestyle = {'secttitlestyle', 'стиль_заголовков'},
	_groupstyle = {'groupstyle', 'стиль_блоков'},
	_liststyle = {'liststyle', 'стиль_списков', 'contentstyle'},
	_listpadding = {'listpadding', 'отступ_списка', 'отступ_списков'}
}

-- параметры {{навигационная таблица с блоками}} с нумерацией
local groupsChildAliases = {
	groupname = {'abbr%s', 'имя_блока%s', 'аббр%s'},
	state = {'state%s'},
	title = {'group%s', 'блок%s', 'заголовок%s', 'группа%s', 'sect%s', 'section%s', 'секция%s'},
	list1 = {'list%s', 'список%s', 'content%s'},
	image = {'image%s', 'изображение%s'},
	imageleft = {'imageleft%s', 'изображение_слева%s'},

	secttitlestyle = {'sect%stitlestyle', 'стиль%sзаголовка', 'стиль_секции%s'},
	groupstyle = {'group%sstyle', 'стиль%sблока', 'стиль_группы%s', 'стиль_блока%s'},
	listclass = {'list%sclass', 'класс%sсписка', 'класс_списка%s'},
	liststyle = {'list%sstyle', 'стиль%sсписка', 'стиль_списка%s', 'content%sstyle'},
	color = {'цвет%s'}
}

local function checkAliases(args, aliases, index)
	for _, alias in ipairs(aliases) do
		local arg
		if index then
			arg = args[string.format(alias, index)]
		else
			arg = args[alias]
		end
		
		if arg then
			return arg
		end
	end
	
	return nil
end

local function checkElAliases(args, name, index)
	return checkAliases(args, standardElementAliases[name], index)
end

local function concatStyles(t)
	local res
	for k, v in pairs(t) do
		if v then
			res = res and res .. ';' .. v or v
		end
	end
	return res
end

local function striped(wikitext, args)
	-- Return wikitext with markers replaced for odd/even striping.
	-- Child (subgroup) navboxes are flagged with a category that is removed
	-- by parent navboxes. The result is that the category shows all pages
	-- where a child navbox is not contained in a parent navbox.
	local orphanCat = '[[Категория:Навигационные шаблоны без родителя]]'
	if args.border == 'subgroup' and args.orphan ~= 'yes' then
		-- No change; striping occurs in outermost navbox.
		return wikitext .. orphanCat
	end
	local first, second = 'odd', 'even'
	if args.evenodd then
		if args.evenodd == 'swap' then
			first, second = second, first
		else
			first = args.evenodd
			second = first
		end
	end
	local changer
	if first == second then
		changer = first
	else
		local index = 0
		changer = function (code)
			if code == '0' then
				-- Current occurrence is for a group before a nested table.
				-- Set it to first as a valid although pointless class.
				-- The next occurrence will be the first row after a title
				-- in a subgroup and will also be first.
				index = 0
				return first
			end
			index = index + 1
			return index % 2 == 1 and first or second
		end
	end
	local regex = orphanCat:gsub('([%[%]])', '%%%1')
	return (wikitext:gsub(regex, ''):gsub(REGEX_MARKER, changer))  -- () omits gsub count
end

local function addNewline(s)
	if s:match('^[*:;#]') or s:match('^{|') then
		return '\n' .. s ..'\n'
	else
		return s
	end
end

local function renderNavBar(titleCell, args)

	if args.navbar ~= 'off' and args.navbar ~= 'plain' 
		and (args.name or not mw.getCurrentFrame():getParent():getTitle():gsub('/песочница$', '') == 'Шаблон:Навигационная таблица') then
		
		-- Check color contrast of the gear icon
		if not styleratio then
			styleratio = require('Module:Color contrast')._styleratio
		end
		local gearColor = ''
		local contrastStyle = args.titlestyle or args.basestyle
		local gearStyleBlack = (contrastStyle and mw.text.unstripNoWiki(contrastStyle) .. '; color:#666;' or '')
		local gearStyleWhite = (contrastStyle and mw.text.unstripNoWiki(contrastStyle) .. '; color:#fff;' or '')
		if styleratio{gearStyleBlack} < styleratio{gearStyleWhite} then
			gearColor = ' white'
		end
		local gear = string.format(
			'[[Файл:Wikipedia interwiki section gear icon%s.svg|14px|Просмотр этого шаблона|link=Шаблон:%s|alt=?]]',
			gearColor, args.name
		)
		
		--- Gear creation
		titleCell
			:tag('span')
				:addClass('navbox-gear')
				:css('float', 'left')
				:css('text-align', 'left')
				:css('width', '5em')
				:css('margin-right', '0.5em')
				:wikitext(gear)
	end

end

--
--   Title row
--
local function renderTitleRow(tbl, args)
	if not args.title then return end

	local titleRow = tbl:tag('tr')

	if args.titlegroup then
		titleRow
			:tag('th')
				:attr('scope', 'row')
				:addClass('navbox-group')
				:addClass(args.titlegroupclass)
				:cssText(args.basestyle)
				:cssText(args.groupstyle)
				:cssText(args.titlegroupstyle)
				:wikitext(args.titlegroup)
	end

	local titleCell = titleRow:tag('th'):attr('scope', 'colgroup')

	if args.titlegroup then
		titleCell
			:css('border-left', '2px solid #fdfdfd')
			:css('width', '100%')
	end

	local titleColspan = 2
	if args.imageleft then titleColspan = titleColspan + 1 end
	if args.image then titleColspan = titleColspan + 1 end
	if args.titlegroup then titleColspan = titleColspan - 1 end

	titleCell
		:cssText(args.basestyle)
		:cssText(args.titlestyle)
		:addClass('navbox-title')
		:attr('colspan', titleColspan)

	renderNavBar(titleCell, args)

	titleCell
		:tag('div')
			:attr('id', mw.uri.anchorEncode(args.title))
			:addClass(args.titleclass)
			:css('font-size', '114%')
			:css('margin', '0 5em')
			:wikitext(addNewline(args.title))
end

--
--   Above/Below rows
--

local function getAboveBelowColspan(args)
	local ret = 2
	if args.imageleft then ret = ret + 1 end
	if args.image then ret = ret + 1 end
	return ret
end

local function renderAboveRow(tbl, args)
	if not args.above then return end

	tbl:tag('tr')
		:tag('td')
			:addClass('navbox-abovebelow')
			:addClass(args.aboveclass)
			:cssText(args.basestyle)
			:cssText(args.abovestyle)
			:attr('colspan', getAboveBelowColspan(args))
			:tag('div')
				:wikitext(addNewline(args.above))
end

local function renderBelowRow(tbl, args)
	if not args.below then return end

	tbl:tag('tr')
		:tag('td')
			:addClass('navbox-abovebelow')
			:addClass(args.belowclass)
			:cssText(args.basestyle)
			:cssText(args.belowstyle)
			:attr('colspan', getAboveBelowColspan(args))
			:tag('div')
				:wikitext(addNewline(args.below))
end

--
--   List rows
--

local function haveSubgroups(args)
	for i = 1, 23 do
		if checkElAliases(args, 'group', i) and checkElAliases(args, 'list', i) then
			return true
		end
	end
	return false
end

local function renderListRow(tbl, args, index, rowspan, rowArgs)
	local row = tbl:tag('tr')

	if index == 1 and args.imageleft then
		row
			:tag('td')
				:addClass('navbox-image')
				:addClass(args.imageclass)
				:css('width', '1px')
				:css('padding', '0px 7px 0px 0px')
				:cssText(args.imageleftstyle)
				:attr('rowspan', rowspan)
				:tag('div')
					:wikitext(addNewline(args.imageleft))
	end

	if rowArgs.group then
		local groupCell = row:tag('th')

		groupCell
			:attr('scope', 'row')
			:addClass('navbox-group')
			:addClass(args.groupclass)
			:cssText(args.basestyle)
			:css('width', args.groupwidth or '1px') -- If groupwidth not specified, minimize width

		groupCell
			:cssText(args.groupstyle)
			:cssText(rowArgs.groupstyle)
			:wikitext(rowArgs.group)
	end

	local listCell = row:tag('td')

	if rowArgs.group then
		listCell
			:css('text-align', 'left')
			:css('border-left-width', '2px')
			:css('border-left-style', 'solid')
	else
		if haveSubgroups(args) then
			listCell
				:attr('colspan', 2)
		end
	end

	if not args.groupwidth then
		listCell:css('width', '100%')
	end

	local listText = rowArgs.list
	local oddEven = ODD_EVEN_MARKER
	if listText:sub(1, 12) == '</div><table' then
		-- Assume list text is for a subgroup navbox so no automatic striping for this row.
		oddEven = listText:find('<th[^>]*"navbox%-title"') and RESTART_MARKER or 'odd'
	end
	listCell
		:css('padding', '0px')
		:cssText(args.liststyle)
		:cssText(rowArgs.liststyle)
		:addClass('navbox-list')
		:addClass('navbox-' .. oddEven)
		:addClass(args.listclass)
		:addClass(rowArgs.listclass)
		:tag('div')
			:css('padding', rowArgs.listpadding or args.listpadding or '0em 0.25em')
			:wikitext(addNewline(listText))

	if index == 1 and args.image then
		row
			:tag('td')
				:addClass('navbox-image')
				:addClass(args.imageclass)
				:css('width', '1px')
				:css('padding', '0px 0px 0px 7px')
				:cssText(args.imagestyle)
				:attr('rowspan', rowspan)
				:tag('div')
					:wikitext(addNewline(args.image))
	end
end

--
--   Tracking categories
--
local function needsChangetoSubgroups(args)
	for i = 1, 23 do
		if (checkElAliases(args, 'group', i)) and not (checkElAliases(args, 'list', i)) then
			return true
		end
	end
	return false
end

local function needsHorizontalLists(args)
	if args.border == 'subgroup' or args.tracking == 'no' then
		return false
	end
	local listClasses = {
		['plainlist'] = true, ['hlist'] = true, ['hlist hnum'] = true,
		['hlist hwrap'] = true, ['hlist vcard'] = true, ['vcard hlist'] = true,
		['hlist vevent'] = true, ['hlist hlist-items-nowrap'] = true, ['hlist-items-nowrap'] = true,
	}
	return not (listClasses[args.listclass] or listClasses[args.bodyclass])
end

-- local function hasBackgroundColors()
--	return mw.ustring.match(titlestyle or '','background') or mw.ustring.match(groupstyle or '','background') or mw.ustring.match(basestyle or '','background')
-- end

local function isIllegible(args)
	if not styleratio then
		styleratio = require('Module:Color contrast')._styleratio
	end

	for key, style in pairs(args) do
		if tostring(key):match("style$") or tostring(key):match("^стиль") then
			if styleratio{mw.text.unstripNoWiki(style)} < 4.5 then
				return true 
			end
		end
	end
	return false
end

local function getTrackingCategories(args)
	local cats = {}
	if needsChangetoSubgroups(args) then table.insert(cats, 'Навигационные шаблоны с ошибочным использованием заголовков') end
	if needsHorizontalLists(args) then table.insert(cats, 'Навигационные шаблоны без горизонтальных списков') end
	if isIllegible(args) then table.insert(cats, 'Потенциально нечитаемые навигационные шаблоны') end
	return cats
end

local function renderTrackingCategories(builder, args)
	local title = mw.title.getCurrentTitle()
	if title.namespace ~= 10 then return end -- not in template space
	local subpage = title.subpageText
	if subpage == 'doc' or subpage == 'песочница' or subpage == 'тесты' then return end

	for i, cat in ipairs(getTrackingCategories(args)) do
		builder:wikitext('[[Категория:' .. cat .. ']]')
	end
end

--
--   Main navbox tables
--
local function renderMainTable(args, listnums)
	local tbl = mw.html.create('table')
		:addClass('nowraplinks')
		:addClass(args.bodyclass)

	if args.title and (args.state ~= 'plain' and args.state ~= 'off') then
		tbl
			:addClass('collapsible')
			:addClass(args.state or 'autocollapse')
	end

	tbl:css('border-spacing', 0)
	if args.border == 'subgroup' or args.border == 'none' then
		tbl
			:addClass('navbox-subgroup')
			:cssText(args.bodystyle)
	else -- regular navbox - bodystyle and style will be applied to the wrapper table
		tbl
			:addClass('navbox-inner')
			:css('background', 'transparent')
			:css('color', 'inherit')
	end
	tbl:cssText(args.innerstyle)

	renderTitleRow(tbl, args)
	renderAboveRow(tbl, args)
	for i, listnum in ipairs(listnums) do
		local rowArgs = {
			group = checkElAliases(args, 'group', listnum),
			list = checkElAliases(args, 'list', listnum),
			groupstyle = checkElAliases(args, 'groupstyle', listnum),
			listclass = checkElAliases(args, 'listclass', listnum),
			liststyle = checkElAliases(args, 'liststyle', listnum),
			listpadding = checkElAliases(args, 'listpadding', listnum)
		}
		renderListRow(tbl, args, i, #listnums, rowArgs)
	end
	renderBelowRow(tbl, args)

	return tbl
end

-- Read the arguments in the order they'll be output in, to make references number in the right order.
local function readInTheRightOrder(args, groupAliases, listAliases)
	local _
	_ = checkAliases(args, commonAliases.title)
	_ = checkAliases(args, commonAliases.above)
	for i = 1, 23 do
		_ = checkAliases(args, groupAliases, i)
		_ = checkAliases(args, listAliases, i)
	end
	_ = checkAliases(args, commonAliases.below)
end

function p._navbox(args)
	if not yesno then
		yesno = require('Module:Yesno')
	end

	local listnums = {}
	for k, v in pairs(args) do
		local listnum = ('' .. k):match('^list(%d+)$') or ('' .. k):match('^список(%d+)$')
		if listnum then table.insert(listnums, tonumber(listnum)) end
	end
	
	table.sort(listnums)

	args.border = mw.text.trim(args.border or args[1] or '')
	if args.border == 'child' then
		args.border = 'subgroup'
	end
	
	for argname, aliasesList in pairs(commonAliases) do
		args[argname] = checkAliases(args, aliasesList)	
	end
	for argname, aliasesList in pairs(standardAliases) do
		args[argname] = checkAliases(args, aliasesList)	
	end

	args.navigation = yesno(args.navigation, '')
	
	-- render the main body of the navbox
	local tbl = renderMainTable(args, listnums)

	-- render the appropriate wrapper around the navbox, depending on the border param
	local res = mw.html.create()
	if args.border == 'none' then
		local nav = res:tag('div')
			:attr('role', 'navigation')
			:node(tbl)
		if args.title then
			nav:attr('aria-labelledby', mw.uri.anchorEncode(args.title))
		else
			nav:attr('aria-label', 'Навигационный шаблон')
		end
		if args.name and args.name ~= '-' then
			nav:attr('data-name', args.name)
		end
		if args.navigation == true then
			nav:attr('data-navboxnavigation', '1')
		elseif args.navigation == false then
			nav:attr('data-navboxnavigation', '0')
		end
	elseif args.border == 'subgroup' then
		-- We assume that this navbox is being rendered in a list cell of a parent navbox, and is
		-- therefore inside a div with padding:0em 0.25em. We start with a </div> to avoid the
		-- padding being applied, and at the end add a <div> to balance out the parent's </div>
		res
			:wikitext('</div>') -- XXX: hack due to lack of unclosed support in mw.html.
			:node(tbl)
			:wikitext('<div>') -- XXX: hack due to lack of unclosed support in mw.html.
	else
		local nav = res:tag('div')
			:attr('role', 'navigation')
			:addClass('navbox')
			:cssText(args.bodystyle)
			:node(tbl)
		if args.title then
			nav:attr('aria-labelledby', mw.uri.anchorEncode(args.title))
		else
			nav:attr('aria-label', 'Навигационный шаблон')
		end
		if args.name and args.name ~= '-' then
			nav:attr('data-name', args.name)
		end
		if args.navigation == true then
			nav:attr('data-navboxnavigation', '1')
		elseif args.navigation == false then
			nav:attr('data-navboxnavigation', '0')
		end
		
	end

	renderTrackingCategories(res, args)

	return striped(tostring(res), args)
end

function p.navbox(frame)
	if not getArgs then
		getArgs = require('Module:Arguments').getArgs
	end
	if not yesno then
		yesno = require('Module:Yesno')
	end
	args = getArgs(frame, {wrappers = {'Шаблон:Навигациядин таблица', 'Шаблон:Навигациядин таблицрин агъагруппар'}})
	if frame.args.border then
		-- This allows Template:Navbox_subgroup to use {{#invoke:Navbox|navbox|border=...}}.
		args.border = frame.args.border
	end
	
	readInTheRightOrder(args, standardElementAliases.group, standardElementAliases.list)

	return p._navbox(args)
end

function p.navboxWithCollapsibleGroups(frame)
	if not getArgs then
		getArgs = require('Module:Arguments').getArgs
	end
	local args = getArgs(frame, {wrappers = {'Шаблон:Навигационная таблица с блоками'}})
	
	readInTheRightOrder(args, groupsChildAliases.title, groupsChildAliases.list1)
	
	local parent = {}
	for argname, aliasesList in pairs(commonAliases) do
		parent[argname] = checkAliases(args, aliasesList)	
	end
	for argname, aliasesList in pairs(groupsParentAliases) do
		parent[argname] = checkAliases(args, aliasesList)	
	end
				
	for i = 1, 20 do
		local child = {}
		for argname, aliasesList in pairs(groupsChildAliases) do
			child[argname] = checkAliases(args, aliasesList, i)	
		end
		
		child.color = child.color and string.format('background:%s;', child.color) or ''
		child.border = 'child'
		child.navbar = 'plain'
	
		if parent.selected and parent.selected == child.groupname then
			child.state = 'uncollapsed'
		end
		
		child.state = child.state or 'collapsed'
		
		child.basestyle = concatStyles{parent.basestyle, parent.secttitlestyle, child.secttitlestyle}
    	child.titlestyle = concatStyles{parent._groupstyle, child.groupstyle, child.color}
    	child.liststyle  = concatStyles{parent._liststyle, child.liststyle}
    	child.lispadding = parent._listpadding
		
		if child.title then
			parent['list' .. i] = p._navbox(child)
		else
			parent['list' .. i] = child.list1
		end
	end
	
	return p._navbox(parent)
	
end

return p
口腔溃疡吃什么食物 断裂是什么意思 rad是什么单位 平板支撑练什么 减肥最好的办法是什么
痛风要吃什么药好得快 看心脏病挂什么科 6月1日是什么星座 大白刁是什么鱼 梦见母亲去世预示什么
绒穿和羊穿有什么区别 广西狗肉节是什么时候 丹凤朝阳什么意思 天癸是什么意思 肝衰竭是什么原因引起的
为什么白头发越来越多 脚背有痣代表什么 发烧有什么好处 装牙套有什么坏处 属牛男和什么属相最配
过境签是什么意思hcv8jop5ns6r.cn 急腹症是什么意思hcv9jop3ns9r.cn 自律什么意思wmyky.com 心脏痛挂什么科hcv8jop7ns7r.cn 左边头痛什么原因96micro.com
圣母娘娘是什么神hcv9jop0ns2r.cn 泡果酒用什么酒好hcv8jop6ns0r.cn td代表什么意思hcv9jop2ns2r.cn 为什么一直不怀孕是什么原因fenrenren.com 卵巢多囊是什么原因造成的gangsutong.com
什么体质的人戴银变黑hcv9jop2ns1r.cn 宫颈hpv感染是什么病hcv7jop6ns2r.cn 频繁流鼻血是什么原因hcv8jop8ns3r.cn 手脚脱皮吃什么维生素hcv7jop5ns5r.cn 1978年出生是什么命hcv7jop5ns3r.cn
命中劫是什么意思hcv9jop3ns4r.cn 结婚12年是什么婚hcv8jop1ns1r.cn 高烧拉肚子是什么原因hcv8jop2ns3r.cn 古井贡酒属于什么档次hcv8jop8ns0r.cn 脾主什么wmyky.com
百度