什么症状吃藿香清胃胶囊| 暗里着迷什么意思| 玉米什么时候传入中国| 流清水鼻涕是什么感冒| 好运连连是什么意思| 388是什么意思| 19点是什么时辰| 郫县豆瓣酱能做什么菜| 07年属什么生肖| 喝鲜牛奶有什么好处和坏处| 手机为什么会发热| 吃什么会食物中毒| 玄孙是什么意思| 眩晕是什么意思| 揶揄什么意思| 乖巧是什么意思| 甲状腺不均质改变是什么意思| 浅绿色配什么颜色好看| 内分泌代谢科是看什么病的| 血脉是什么意思| 胸部疼痛是什么原因| 化学专业学什么| 农历9月21日是什么星座| 阳虚吃什么药| 肾结石可以吃什么食物| 脸很黄是什么原因| 甲沟炎涂抹什么药膏最有效| 小孩办身份证需要什么材料| 87年的兔是什么命| hpv检查是什么| 晚上吃什么不胖| 首发是什么意思| 核磁共振和ct有什么区别| 乘风破浪什么意思| 长痔疮是什么引起的| 痔疮为什么不建议手术| 低密度脂蛋白偏高吃什么药| 血脂血糖高吃什么食物好| 月经是什么| 精索静脉曲张是什么意思| 阿拉蕾什么意思| 化疗后吃什么恢复快| 治疗肺部气肿有什么方法| 碘伏是什么| 荨麻疹为什么晚上起| 脚侧面骨头突出叫什么| 菊花可以和什么一起泡水喝| 小便有点黄是什么原因| ov是什么意思| 猪的五行属什么| 什么是造影| 青盐是什么盐| 蟹爪兰什么时候开花| 70年产权是从什么时候开始算| 李世民字什么| 黑苦荞茶适合什么人喝| 梦见小白兔是什么意思| 做梦梦到鬼是什么意思| 1999属什么| 白虎痣是什么意思| 胆固醇偏高吃什么食物可以降胆固醇| 你有毒是什么意思| 什么是内分泌| 甲钴胺片治什么病| 老人说胡话是什么征兆| 什么颜色属火| 左胸疼什么原因| europe是什么意思| 做月子吃什么菜| 邮电局是干什么的| 放的偏旁是什么| 肺肾两虚吃什么中成药| 为什么吃一点东西肚子就胀| 与世无争是什么意思| 妊娠什么意思| 天蝎属于什么象星座| 漠视是什么意思| 加湿器用什么水比较好| 下雨了是什么意思| 什么是渎职| 九月二十八是什么星座| 总手是什么意思| 什么是自锁| 后囟门什么时候闭合| 什么样的人容易得甲减| 日柱将星是什么意思| 关税是什么意思| 经常想吐恶心是什么原因| 喉咙痛可以吃什么水果| 为什么睡觉会张嘴| 气运是什么意思| 尿素氮肌酐比值偏高是什么原因| 铁树开花是什么生肖| 子婴是秦始皇什么人| 晚上喝什么茶好| 氟哌酸又叫什么| 发烧头晕吃什么药| 肚脐下三寸是什么位置| 心博是什么意思| 985大学什么意思| 七月三十是什么星座| 儿童看小鸡挂什么科| 家里为什么突然有床虱| 眼眶发青是什么原因| 吃什么对脑血管好| 口苦吃什么好| 大片是什么意思| 所什么无什么| 做梦烧纸钱什么意思| 玉帝叫什么名字| 左旋肉碱什么时候吃效果好| 烟台有什么特产| 中国最高学历是什么| 双相是什么意思| 隙是什么意思| 月经来了痛经吃什么药| 晚上血压高是什么原因| 什么酒不能喝打一生肖| 二哥是什么意思| 3月24日是什么星座| 惊悉是什么意思| 水痘疫苗叫什么| 高血压吃什么好降压快| 狗鼻子为什么是湿的| 芙字五行属什么| 智齿是什么| 甲醛对人体有什么危害| 什么蘑菇有毒| 血管瘤是什么病严重吗| 石英表不走了是什么原因| 男人耳朵大代表什么| 殁送是什么意思| 1989属什么| 肠胃不好吃什么药好| 膝盖疼痛吃什么药| 番薯是什么| 赭色是什么颜色| 尿毒症是什么症状| 皂角米有什么功效| 焦虑症是什么症状| 肚子上方中间疼是什么部位| 狐狸和乌鸦告诉我们什么道理| 怎么看微信好友什么时候加的| 玉米淀粉能做什么美食| 颈动脉b超是检查什么| 草是什么意思| spf是什么意思| 王毅是什么级别| 清水是什么意思| professional是什么意思| 淋病挂什么科| 怀孕什么水果不能吃| 泡脚对身体有什么好处| 大拇指旁边是什么指| 陈赫火锅店叫什么名字| 肚子一直咕咕叫是什么原因| 梦见捡到钱是什么意思| 勒索是什么意思| 肚脐眼左边疼是什么原因| 什么的季节| 酥油茶是什么做的| 炎性改变是什么意思| 什么的小朋友| samsung是什么牌子| 什么明月| 肠道紊乱的症状是什么| 韶关有什么特产| 叶酸什么时候吃最好| 副县长什么级别| 身上湿气重吃什么药| 11月16是什么星座| 手脚冰冷是什么原因| cpc是什么| 儿童肠系膜淋巴结炎吃什么药| 盆腔静脉石是什么意思| 切脉切的是什么脉| 睡觉磨牙什么原因| 水瓶是什么星座| 脸部肌肉跳动是什么原因| 血糖低有什么症状| 为什么白带是黄绿色的| 探望是什么意思| 蚝油是用什么做的| 印度属于什么亚| 小三什么意思| 巨蟹座前面是什么星座| 斑是什么原因造成的| 重度肠上皮化生是什么意思| 乙肝核心抗体阳性什么意思| 大豆是什么豆| 高考什么时候恢复| 朗朗原名叫什么| 青金石五行属什么| 双腿酸软无力吃什么药| 肌酐高吃什么食物好| 无忧什么意思| 肝囊肿挂什么科| 为什么肚子会隐隐作痛| 斯文败类是什么意思| 孕妇羊水少吃什么补的快| 什么运动使人脸部年轻| 口若悬河什么意思| 佟丽娅为什么离婚| 屠苏是什么意思| 诱导是什么意思| 老汉推车是什么姿势| 肺结节不能吃什么| 无稽之谈是什么意思| 血小板高有什么危害| 二月四号是什么星座| 宠物蛇吃什么食物| 头皮痒是什么原因| 从良是什么意思| 猫怕什么声音| 薏米有什么功效| 白芷有什么作用| 10.8号是什么星座| 血压低会导致什么后果| 大林木命适合做什么行业| 口什么舌什么| soso什么意思| 公费是什么意思| 维生素b有什么用| 血压的低压高是什么原因| 什么牌子的手机好| 什么叫桥本甲状腺炎| 高血压饮食上注意什么| 西洋参吃了有什么好处| 长焦是什么意思| 多囊卵巢有什么症状表现| 内衣为什么会发霉| 放疗后不能吃什么| 七月开什么花| 膝盖窝疼是什么原因| 扁桃体结石有什么危害| 1999年属什么| 哈密瓜苦是什么原因| 花甲是什么意思| 为什么突然长痣| 心有戚戚焉什么意思| 肝肾阴虚吃什么药| 心电图异常q波是什么意思| 多头是什么意思| 轮状胎盘是什么意思| 交感神经是什么| 甲状腺球蛋白抗体低说明什么| 溃疡是什么病| 癌胚抗原高是什么意思| 腿上有白色条纹是什么| 十一月份出生的是什么星座| 喉咙发炎吃什么药好得快| 什么是风寒感冒| 头发大把大把的掉是什么原因| 33朵玫瑰花代表什么意思| 延时吃什么药| 暗里着迷什么意思| 考上公务员意味着什么| 吃黄体酮有什么副作用| 清点是什么意思| 理想血压是什么意思| 椰子鞋是什么牌子| 秋天都有什么| 手上蜕皮是什么原因| 乳酪和奶酪有什么区别| 百度Эст?лекк? к?серг?

Википедия — ирекле энциклопедия м??л?м?те
百度 据新加坡《联合早报》网站3月8日报道,扫二维码读政府工作报告早已不是新鲜事。

Этот модуль используется группой основных навигационных шаблонов — {{Навигационные шаблоны}}. В частности шаблоном {{Навигационная таблица}}. Пожалуйста, просмотрите страницу шаблона, чтобы увидеть инструкцию по его использованию.

Отслеживающие/служебные категории

[сы?ана?ты ??г?рте?]

--
-- Реализует {{навигационная таблица}}, {{подгруппы навигационной таблицы}} и {{навигационная таблица с блоками}}.
-- Основной объём кода заимствован из английского 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)
	local currentFrame = mw.getCurrentFrame()
	if args.navbar ~= 'off' and args.navbar ~= 'plain' 
		and (args.name or not currentFrame:getParent():getTitle():gsub('/песочница$', '') == '?алып:Навигационная таблица') then
		
		-- Check color contrast of the gear icon
		if not styleratio then
			styleratio = require('Module:Color contrast')._styleratio
		end
		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 '')
		local gear = currentFrame:expandTemplate{
			title = 'Tnavbar-view',
			args = {
				args.name,
				fontcolor = (styleratio{gearStyleBlack} < styleratio{gearStyleWhite}) and 'white',
			}
		}
		
		--- 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
筋膜炎吃什么药好 喉咙干是什么原因 脸上起红疙瘩是什么原因 盆腔炎是什么引起的 严重失眠吃什么中成药
吃得苦中苦方为人上人是什么意思 kiko是什么意思 的五行属什么 乖戾是什么意思 纤维蛋白原是什么
什么原因引起低压高 口干舌燥吃什么药最好 梦见前夫是什么意思 边缘视力是什么意思 抽血生化是查什么
15天来一次月经是什么原因 萌萌哒是什么意思 康复治疗学主要学什么 小孩喜欢吃什么菜 核磁共振是什么
什么药可以当饭吃gysmod.com 排卵期有什么明显症状hcv8jop3ns1r.cn 花朵像什么hcv7jop6ns4r.cn 5年存活率是什么意思hcv8jop6ns1r.cn 银杏叶提取物治什么病hcv9jop3ns4r.cn
双子男和什么星座最配hcv9jop3ns1r.cn 窘迫是什么意思hcv7jop4ns5r.cn 倒反天罡是什么意思hcv9jop3ns1r.cn 拉青色大便是什么原因hcv8jop8ns8r.cn 射手座有什么特点chuanglingweilai.com
偷袭是什么意思hcv8jop3ns9r.cn 儿童办理护照需要什么材料hcv8jop1ns8r.cn lookbook是什么意思hcv7jop4ns5r.cn 传导阻滞是什么意思hcv9jop5ns2r.cn 凉烟都有什么牌子hcv9jop5ns3r.cn
burberry是什么牌子hcv8jop7ns1r.cn 什么是碱性磷酸酶高怎么回事hcv8jop7ns9r.cn 21三体高风险是什么意思hcv8jop3ns9r.cn 生僻字什么意思hcv9jop6ns4r.cn 活珠子是什么hcv8jop5ns9r.cn
百度