什么是矫正视力| 什么颜色对眼睛有好处| 外感风寒吃什么药| 女人更年期吃什么药调理最好| 九三年属什么生肖| 辟加木念什么| 已知晓是什么意思| 疏风解表的意思是什么| 啫啫煲为什么念jue| 女性为什么会肾结石| 如如不动什么意思| 眉毛中间叫什么部位| lcu是什么意思| 什么样的伤口算开放性| 雯五行属什么| 慢性萎缩性胃炎伴糜烂吃什么药| 往事不堪回首是什么意思| 渣滓是什么意思| 核桃和什么一起打豆浆| 为什么牙齿会松动| 晟这个字念什么| 身体乳有什么用| 黄历破屋是什么意思| 尿路感染喝什么药| 上火吃什么水果降火快| 车抛锚是什么意思| 谨言是什么意思| 捣碎东西的器皿叫什么| 看肺应该挂什么科| 八月二十八是什么星座| 伤风流鼻涕吃什么药好| 世界上什么动物牙齿最多| 扑朔迷离什么意思| 明是什么生肖| 什么叫消融手术| 外公的哥哥叫什么| 虎头蛇尾是什么生肖| 厮守是什么意思| 三联律是什么意思| 口干是什么病| 利尿什么意思| 低烧是什么原因| 小孩子打呼噜是什么原因| 膝盖小腿酸软无力是什么原因| 畸形是什么意思| cima是什么证书| 带环了月经推迟不来什么原因| 什么叫211大学| 老年人补什么钙效果最好| 金牛座是什么象星座| 掂过碌蔗是什么意思| 00年是什么年| 外感风寒是什么意思| 眼压高是什么症状| 吃什么药怀孕最快| 例假少吃什么能让量多| 大排是什么肉| 脂溢性皮炎用什么药| 保妇康栓治疗什么妇科病| 2月23号是什么星座| 茉莉花茶适合什么人喝| 胆囊粗糙是什么意思| 蜘蛛的血液是什么颜色| 血液属于什么组织| 湿疹是什么病| 吴承恩是什么朝代的| 天冬是什么| 蝉是什么生肖| 性欲是什么| 什么病会引起腰疼| 井盖为什么是圆的| roa是什么意思| 公积金基数是什么意思| kcl是什么药| 蛇酒不是三十九开什么| 叉烧是什么| 为什么会精神衰弱| 金钱龟吃什么食物| 肌肉僵硬是什么原因| 办理暂住证需要什么材料| 异常心电图是什么意思| 减张缝合是什么意思| 六月初五是什么日子| 女人肺气虚吃什么补最快| bv是什么意思| 普洱茶是什么茶类| 00后属什么| 梦见做饭是什么意思| 欧巴是什么意思| 双抗是什么药| 吃什么水果能美白| 丹五行属性是什么| 早上5点多是什么时辰| 女人什么时候是安全期| 金钱草长什么样子图片| 医院属于什么单位| 前是什么偏旁| 肾炎的症状是什么| 厌恶是什么意思| 当医生要什么学历| 血管属于什么组织| 高密度脂蛋白偏高是什么原因| 红细胞分布宽度偏低是什么意思| 什么颜色的衣服最防晒| 什么是肝硬化| 不想吃饭是什么原因| 1986年属什么生肖| 洋字五行属什么| 腿肿吃什么药消肿最快最有效| 吃什么生血快| 为什么韩国叫棒子国| 一落千丈是什么生肖| 毓读什么| 荨麻疹是什么样的| 梦见炖鱼预示什么| 清炖排骨汤放什么调料| 胃肠功能紊乱吃什么药| 3人死亡属于什么事故| 桃子什么季节成熟| 甲钴胺有什么作用| ms什么意思| 女人脾胃虚弱吃什么好| 做腋臭手术挂什么科室| 宫颈柱状上皮外移是什么意思| 夜阑珊是什么意思| zara是什么牌子| 兰花用什么土栽培最好| 难于上青天是什么意思| 手肘发黑是什么原因| 怀孕了梦见蛇是什么意思| 吐司是什么| 天宫是什么意思| hc是胎儿的什么意思| 什么是商| 为什么会连续两天遗精| 鸢是什么意思| 金骏眉茶是什么茶| 东南方向是什么位置| 斛什么意思| 为什么老是出汗| 梭织面料是什么面料| 经血逆流的症状是什么| 班门弄斧什么意思| 氰化钠是什么| 什么态度| 什么馅的饺子好吃| 肛周湿疹用什么药| 龟头发红是什么原因| 吃菱角有什么好处| 小孩子长白头发是什么原因| 打桩是什么意思| 九月六号是什么星座| 三月初什么星座| 儿童支气管炎吃什么药| 小三阳是什么| 血管堵塞吃什么好疏通| 猫咪能看到什么颜色| 心里不舒服挂什么科| 倦怠期是什么意思| 澄粉是什么粉| 口腹蜜剑什么意思| 77年属蛇的是什么命| 可可和咖啡有什么区别| 什么是管状腺瘤| 制片人是干什么的| 什么叫袖珍人| 胶体是什么| 蓝色加什么颜色是紫色| 负面影响是什么意思| 芝士是什么材料做的| 奥美拉唑和雷贝拉唑有什么区别| 维生素c不能和什么一起吃| 庚申五行属什么| 消防队属于什么单位| 滑膜炎用什么药治疗最好最快| 1973属什么生肖| 11月29号什么星座| 泛性恋什么意思| 菊花什么时候开放| 狗是什么属性| 孕妇缺铁对胎儿有什么影响| 来月经胸胀痛什么原因| 母乳是什么颜色| 三次元是什么| 双喜临门指什么生肖| 肝火旺吃什么中成药| 什么情况下需要打破伤风| 孔雀蓝配什么颜色好看| 喝红糖水有什么好处和坏处| 热疖痈毒是什么意思| 红颜知己什么意思| 脚心发痒是什么原因| 血糖看什么指标| 一月底是什么星座| 验尿细菌高是什么原因| 顺遂是什么意思| 睡觉打呼噜是什么原因| 活在当下是什么意思| 亚麻籽油是什么油| 梦见小黑蛇是什么预兆| 蜈蚣怕什么| 护士是什么专业| 心电图t波改变什么意思| 打嗝吃什么中成药| 肺寒吃什么药| 互攻是什么意思| 耳鼻喉科主要看什么病| 爸爸的奶奶叫什么| 大腿粗是什么原因导致的| 两个子是什么字| 怀孕吃鹅蛋有什么好处| 防微杜渐什么意思| 玄机是什么意思| 心肌缺血吃什么中成药| 吃什么补脑增强记忆力| 鸡肉配什么菜好吃| 师兄是什么意思| 美仑美奂什么意思| 仓鼠怀孕有什么特征| 35年属什么生肖| 年薪10万算什么水平| 手指甲紫色是什么原因| 脚气是什么症状| 食神生财是什么意思| 梦见发工资了是什么意思| 吃什么可以缓解孕吐恶心| 圆舞曲是什么意思| 什么油适合炒菜| 黄芪和北芪有什么区别| 肾积水是什么原因引起的| 早期流产是什么症状| 一个三点水一个令念什么| 红豆薏仁水有什么功效| lucas是什么意思| 喝酒有什么好处| apl医学上是什么意思| 小便黄是什么病症| o2o什么意思| 26度穿什么衣服合适| 唇亡齿寒什么意思| 头一直疼是什么原因| 蟾蜍吃什么| 胃不消化吃什么药效果最好| 大马士革是什么意思| 大便干燥一粒一粒的是什么原因| 维字五行属什么| 什么是激素| 男性内分泌失调吃什么药| 女性尿特别黄是什么原因| 中药为什么要热着喝| 白细胞低要吃什么| 牛的四个胃分别叫什么| 为什么肚子会隐隐作痛| 下呼吸道感染吃什么药| 头疼发烧是什么原因| 腮腺炎吃什么药最管用| 屋漏偏逢连夜雨是什么意思| mep是什么意思| 2月25日什么星座| 马齿苋对什么病最有效| 什么时候抓知了猴| 解酒喝什么饮料| 什么情况下要打破伤风针| 头顶出汗是什么原因| 百度?????? '?? ???

维生素c的作用是什么

?????????, ??? ????? ????????? ???
百度   对此,作为“悦读亭”的日常管理方,荆棘鸟书会公益发展中心秘书长林沙向记者表示,他们会有一支志愿者队伍参与日常的管理与维护,从早8点30分到晚8点30分,志愿者会身着统一服装佩戴工作证对这些“悦读亭”进行巡回检查,以确保有问题发生后能够第一时间联系后续处理。

This module implements the {{Navbox}} template. Please see the template page for usage instructions.

Tracking/maintenance categories

[????]

require('strict')
local p = {}
local cfg = mw.loadData('Module:Navbox/configuration')
local inArray = require("Module:TableTools").inArray
local getArgs -- lazily initialized
local format = string.format

function p._navbox(args)
	local function striped(wikitext, border)
		-- 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 = cfg.category.orphan
		if border == cfg.keyword.border_subgroup and args[cfg.arg.orphan] ~= cfg.keyword.orphan_yes then
			-- No change; striping occurs in outermost navbox.
			return wikitext .. orphanCat
		end
		local first, second = cfg.class.navbox_odd_part, cfg.class.navbox_even_part
		if args[cfg.arg.evenodd] then
			if args[cfg.arg.evenodd] == cfg.keyword.evenodd_swap then
				first, second = second, first
			else
				first = args[cfg.arg.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(cfg.marker.regex, changer)) -- () omits gsub count
	end
	
	local function processItem(item, nowrapitems)
		if item:sub(1, 2) == '{|' then
			-- Applying nowrap to lines in a table does not make sense.
			-- Add newlines to compensate for trim of x in |parm=x in a template.
			return '\n' .. item ..'\n'
		end
		if nowrapitems == cfg.keyword.nowrapitems_yes then
			local lines = {}
			for line in (item .. '\n'):gmatch('([^\n]*)\n') do
				local prefix, content = line:match('^([*:;#]+)%s*(.*)')
				if prefix and not content:match(cfg.pattern.nowrap) then
					line = format(cfg.nowrap_item, prefix, content)
				end
				table.insert(lines, line)
			end
			item = table.concat(lines, '\n')
		end
		if item:match('^[*:;#]') then
			return '\n' .. item ..'\n'
		end
		return item
	end
	
	local function has_navbar()
		return args[cfg.arg.navbar] ~= cfg.keyword.navbar_off
			and args[cfg.arg.navbar] ~= cfg.keyword.navbar_plain
			and (
				args[cfg.arg.name]
				or mw.getCurrentFrame():getParent():getTitle():gsub(cfg.pattern.sandbox, '')
					~= cfg.pattern.navbox
			)
	end
	
	-- extract text color from css, which is the only permitted inline CSS for the navbar
	local function extract_color(css_str)
		-- return nil because navbar takes its argument into mw.html which handles
		-- nil gracefully, removing the associated style attribute
		return mw.ustring.match(';' .. css_str .. ';', '.*;%s*([Cc][Oo][Ll][Oo][Rr]%s*:%s*.-)%s*;') or nil
	end
	
	local function renderNavBar(titleCell)
		if has_navbar() then
			local navbar = require('Module:Navbar')._navbar
			titleCell:wikitext(navbar{
				[cfg.navbar.name] = args[cfg.arg.name],
				[cfg.navbar.mini] = 1,
				[cfg.navbar.fontstyle] = extract_color(
					(args[cfg.arg.basestyle] or '') .. ';' .. (args[cfg.arg.titlestyle] or '')
				)
			})
		end
	
	end
	
	local function renderTitleRow(tbl)
		if not args[cfg.arg.title] then return end
	
		local titleRow = tbl:tag('tr')
	
		local titleCell = titleRow:tag('th'):attr('scope', 'col')
	
		local titleColspan = 2
		if args[cfg.arg.imageleft] then titleColspan = titleColspan + 1 end
		if args[cfg.arg.image] then titleColspan = titleColspan + 1 end
	
		titleCell
			:cssText(args[cfg.arg.basestyle])
			:cssText(args[cfg.arg.titlestyle])
			:addClass(cfg.class.navbox_title)
			:attr('colspan', titleColspan)
	
		renderNavBar(titleCell)
	
		titleCell
			:tag('div')
				-- id for aria-labelledby attribute
				:attr('id', mw.uri.anchorEncode(args[cfg.arg.title]))
				:addClass(args[cfg.arg.titleclass])
				:css('font-size', '114%')
				:css('margin', '0 4em')
				:wikitext(processItem(args[cfg.arg.title]))
	end
	
	local function getAboveBelowColspan()
		local ret = 2
		if args[cfg.arg.imageleft] then ret = ret + 1 end
		if args[cfg.arg.image] then ret = ret + 1 end
		return ret
	end
	
	local function renderAboveRow(tbl)
		if not args[cfg.arg.above] then return end
	
		tbl:tag('tr')
			:tag('td')
				:addClass(cfg.class.navbox_abovebelow)
				:addClass(args[cfg.arg.aboveclass])
				:cssText(args[cfg.arg.basestyle])
				:cssText(args[cfg.arg.abovestyle])
				:attr('colspan', getAboveBelowColspan())
				:tag('div')
					-- id for aria-labelledby attribute, if no title
					:attr('id', (not args[cfg.arg.title]) and mw.uri.anchorEncode(args[cfg.arg.above]) or nil)
					:wikitext(processItem(args[cfg.arg.above], args[cfg.arg.nowrapitems]))
	end
	
	local function renderBelowRow(tbl)
		if not args[cfg.arg.below] then return end
	
		tbl:tag('tr')
			:tag('td')
				:addClass(cfg.class.navbox_abovebelow)
				:addClass(args[cfg.arg.belowclass])
				:cssText(args[cfg.arg.basestyle])
				:cssText(args[cfg.arg.belowstyle])
				:attr('colspan', getAboveBelowColspan())
				:tag('div')
					:wikitext(processItem(args[cfg.arg.below], args[cfg.arg.nowrapitems]))
	end
	
	local function renderListRow(tbl, index, listnum, listnums_size)
		local row = tbl:tag('tr')
	
		if index == 1 and args[cfg.arg.imageleft] then
			row
				:tag('td')
					:addClass(cfg.class.noviewer)
					:addClass(cfg.class.navbox_image)
					:addClass(args[cfg.arg.imageclass])
					:css('width', '1px')               -- Minimize width
					:css('padding', '0 2px 0 0')
					:cssText(args[cfg.arg.imageleftstyle])
					:attr('rowspan', listnums_size)
					:tag('div')
						:wikitext(processItem(args[cfg.arg.imageleft]))
		end
	
		local group_and_num = format(cfg.arg.group_and_num, listnum)
		local groupstyle_and_num = format(cfg.arg.groupstyle_and_num, listnum)
		if args[group_and_num] then
			local groupCell = row:tag('th')
	
			-- id for aria-labelledby attribute, if lone group with no title or above
			if listnum == 1 and not (args[cfg.arg.title] or args[cfg.arg.above] or args[cfg.arg.group2]) then
				groupCell
					:attr('id', mw.uri.anchorEncode(args[cfg.arg.group1]))
			end
	
			groupCell
				:attr('scope', 'row')
				:addClass(cfg.class.navbox_group)
				:addClass(args[cfg.arg.groupclass])
				:cssText(args[cfg.arg.basestyle])
				-- If groupwidth not specified, minimize width
				:css('width', args[cfg.arg.groupwidth] or '1%')
	
			groupCell
				:cssText(args[cfg.arg.groupstyle])
				:cssText(args[groupstyle_and_num])
				:wikitext(args[group_and_num])
		end
	
		local listCell = row:tag('td')
	
		if args[group_and_num] then
			listCell
				:addClass(cfg.class.navbox_list_with_group)
		else
			listCell:attr('colspan', 2)
		end
	
		if not args[cfg.arg.groupwidth] then
			listCell:css('width', '100%')
		end
	
		local rowstyle  -- usually nil so cssText(rowstyle) usually adds nothing
		if index % 2 == 1 then
			rowstyle = args[cfg.arg.oddstyle]
		else
			rowstyle = args[cfg.arg.evenstyle]
		end
	
		local list_and_num = format(cfg.arg.list_and_num, listnum)
		local listText = args[list_and_num]
		
		if inArray(cfg.keyword.subgroups, listText) then
			local childArgs = {
				[cfg.arg.border] = cfg.keyword.border_subgroup,
				[cfg.arg.navbar] = cfg.keyword.navbar_plain
			}
			local hasChildArgs = false
			for k, v in pairs(args) do
				k = tostring(k)
				for _, w in ipairs(cfg.keyword.subgroups) do
					w = w .. listnum .. "_"
					if (#k > #w) and (k:sub(1, #w) == w) then
						childArgs[k:sub(#w + 1)] = v
						hasChildArgs = true
					end
				end
			end
			listText = hasChildArgs and p._navbox(childArgs) or listText
		end
		
		local oddEven = cfg.marker.oddeven
		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(cfg.pattern.navbox_title) and cfg.marker.restart or cfg.class.navbox_odd_part
		end
		
		local liststyle_and_num = format(cfg.arg.liststyle_and_num, listnum)
		local listclass_and_num = format(cfg.arg.listclass_and_num, listnum)
		listCell
			:css('padding', '0')
			:cssText(args[cfg.arg.liststyle])
			:cssText(rowstyle)
			:cssText(args[liststyle_and_num])
			:addClass(cfg.class.navbox_list)
			:addClass(cfg.class.navbox_part .. oddEven)
			:addClass(args[cfg.arg.listclass])
			:addClass(args[listclass_and_num])
			:tag('div')
				:css('padding',
					(index == 1 and args[cfg.arg.list1padding]) or args[cfg.arg.listpadding] or '0 0.25em'
				)
				:wikitext(processItem(listText, args[cfg.arg.nowrapitems]))
	
		if index == 1 and args[cfg.arg.image] then
			row
				:tag('td')
					:addClass(cfg.class.noviewer)
					:addClass(cfg.class.navbox_image)
					:addClass(args[cfg.arg.imageclass])
					:css('width', '1px')               -- Minimize width
					:css('padding', '0 0 0 2px')
					:cssText(args[cfg.arg.imagestyle])
					:attr('rowspan', listnums_size)
					:tag('div')
						:wikitext(processItem(args[cfg.arg.image]))
		end
	end
	
	local function has_list_class(htmlclass)
		local patterns = {
			'^' .. htmlclass .. '$',
			'%s' .. htmlclass .. '$',
			'^' .. htmlclass .. '%s',
			'%s' .. htmlclass .. '%s'
		}
		
		for arg, _ in pairs(args) do
			if type(arg) == 'string' and mw.ustring.find(arg, cfg.pattern.class) then
				for _, pattern in ipairs(patterns) do
					if mw.ustring.find(args[arg] or '', pattern) then
						return true
					end
				end
			end
		end
		return false
	end
	
	-- there are a lot of list classes in the wild, so we add their TemplateStyles
	local function add_list_styles()
		local frame = mw.getCurrentFrame()
		local function add_list_templatestyles(htmlclass, templatestyles)
			if has_list_class(htmlclass) then
				return frame:extensionTag{
					name = 'templatestyles', args = { src = templatestyles }
				}
			else
				return ''
			end
		end
		
		local hlist_styles = add_list_templatestyles('hlist', cfg.hlist_templatestyles)
		local plainlist_styles = add_list_templatestyles('plainlist', cfg.plainlist_templatestyles)
		
		-- a second workaround for [[phab:T303378]]
		-- when that issue is fixed, we can actually use has_navbar not to emit the
		-- tag here if we want
		if has_navbar() and hlist_styles == '' then
			hlist_styles = frame:extensionTag{
				name = 'templatestyles', args = { src = cfg.hlist_templatestyles }
			}
		end
		
		-- hlist -> plainlist is best-effort to preserve old Common.css ordering.
		-- this ordering is not a guarantee because most navboxes will emit only
		-- one of these classes [hlist_note]
		return hlist_styles .. plainlist_styles
	end
	
	local function needsHorizontalLists(border)
		if border == cfg.keyword.border_subgroup or args[cfg.arg.tracking] == cfg.keyword.tracking_no then
			return false
		end
		return not has_list_class(cfg.pattern.hlist) and not has_list_class(cfg.pattern.plainlist)
	end
	
	local function hasBackgroundColors()
		for _, key in ipairs({cfg.arg.titlestyle, cfg.arg.groupstyle,
			cfg.arg.basestyle, cfg.arg.abovestyle, cfg.arg.belowstyle}) do
			if tostring(args[key]):find('background', 1, true) then
				return true
			end
		end
		return false
	end
	
	local function hasBorders()
		for _, key in ipairs({cfg.arg.groupstyle, cfg.arg.basestyle,
			cfg.arg.abovestyle, cfg.arg.belowstyle}) do
			if tostring(args[key]):find('border', 1, true) then
				return true
			end
		end
		return false
	end
	
	local function isIllegible()
		local styleratio = require('Module:Color contrast')._styleratio
		for key, style in pairs(args) do
			if tostring(key):match(cfg.pattern.style) then
				if styleratio{mw.text.unstripNoWiki(style)} < 4.5 then
					return true
				end
			end
		end
		return false
	end
	
	local function getTrackingCategories(border)
		local cats = {}
		if needsHorizontalLists(border) then table.insert(cats, cfg.category.horizontal_lists) end
		if hasBackgroundColors() then table.insert(cats, cfg.category.background_colors) end
		if isIllegible() then table.insert(cats, cfg.category.illegible) end
		if hasBorders() then table.insert(cats, cfg.category.borders) end
		return cats
	end
	
	local function renderTrackingCategories(builder, border)
		local title = mw.title.getCurrentTitle()
		if title.namespace ~= 10 then return end -- not in template space
		local subpage = title.subpageText
		if subpage == cfg.keyword.subpage_doc or subpage == cfg.keyword.subpage_sandbox
			or subpage == cfg.keyword.subpage_testcases then return end
	
		for _, cat in ipairs(getTrackingCategories(border)) do
			builder:wikitext('[[Category:' .. cat .. ']]')
		end
	end
	
	local function renderMainTable(border, listnums)
		local tbl = mw.html.create('table')
			:addClass(cfg.class.nowraplinks)
			:addClass(args[cfg.arg.bodyclass])
	
		local state = args[cfg.arg.state]
		if args[cfg.arg.title] and state ~= cfg.keyword.state_plain and state ~= cfg.keyword.state_off then
			if state == cfg.keyword.state_collapsed then
				state = cfg.class.collapsed
			end
			tbl
				:addClass(cfg.class.collapsible)
				:addClass(state or cfg.class.autocollapse)
		end
	
		tbl:css('border-spacing', 0)
		if border == cfg.keyword.border_subgroup or border == cfg.keyword.border_none then
			tbl
				:addClass(cfg.class.navbox_subgroup)
				:cssText(args[cfg.arg.bodystyle])
				:cssText(args[cfg.arg.style])
		else  -- regular navbox - bodystyle and style will be applied to the wrapper table
			tbl
				:addClass(cfg.class.navbox_inner)
				:css('background', 'transparent')
				:css('color', 'inherit')
		end
		tbl:cssText(args[cfg.arg.innerstyle])
	
		renderTitleRow(tbl)
		renderAboveRow(tbl)
		local listnums_size = #listnums
		for i, listnum in ipairs(listnums) do
			renderListRow(tbl, i, listnum, listnums_size)
		end
		renderBelowRow(tbl)
	
		return tbl
	end
	
	local function add_navbox_styles(hiding_templatestyles)
		local frame = mw.getCurrentFrame()
		-- This is a lambda so that it doesn't need the frame as a parameter
		local function add_user_styles(templatestyles)
			if templatestyles and templatestyles ~= '' then
				return frame:extensionTag{
					name = 'templatestyles', args = { src = templatestyles }
				}
			end
			return ''
		end
	
		-- get templatestyles. load base from config so that Lua only needs to do
		-- the work once of parser tag expansion
		local base_templatestyles = cfg.templatestyles
		local templatestyles = add_user_styles(args[cfg.arg.templatestyles])
		local child_templatestyles = add_user_styles(args[cfg.arg.child_templatestyles])
	
		-- The 'navbox-styles' div exists to wrap the styles to work around T200206
		-- more elegantly. Instead of combinatorial rules, this ends up being linear
		-- number of CSS rules.
		return mw.html.create('div')
			:addClass(cfg.class.navbox_styles)
			:wikitext(
				add_list_styles() .. -- see [hlist_note] applied to 'before base_templatestyles'
				base_templatestyles ..
				templatestyles ..
				child_templatestyles ..
				table.concat(hiding_templatestyles)
			)
			:done()
	end
	
	-- work around [[phab:T303378]]
	-- for each arg: find all the templatestyles strip markers, insert them into a
	-- table. then remove all templatestyles markers from the arg
	local function move_hiding_templatestyles(args)
		local gfind = string.gfind
		local gsub = string.gsub
		local templatestyles_markers = {}
		local strip_marker_pattern = '(\127[^\127]*UNIQ%-%-templatestyles%-%x+%-QINU[^\127]*\127)'
		for k, arg in pairs(args) do
			for marker in gfind(arg, strip_marker_pattern) do
				table.insert(templatestyles_markers, marker)
			end
			args[k] = gsub(arg, strip_marker_pattern, '')
		end
		return templatestyles_markers
	end
	
	local hiding_templatestyles = move_hiding_templatestyles(args)
	local listnums = {}
	
	for k, _ in pairs(args) do
		if type(k) == 'string' then
			local listnum = k:match(cfg.pattern.listnum)
			if listnum then table.insert(listnums, tonumber(listnum)) end
		end
	end
	table.sort(listnums)

	local border = mw.text.trim(args[cfg.arg.border] or args[1] or '')
	if border == cfg.keyword.border_child then
		border = cfg.keyword.border_subgroup
	end

	-- render the main body of the navbox
	local tbl = renderMainTable(border, listnums)

	local res = mw.html.create()
	-- render the appropriate wrapper for the navbox, based on the border param

	if border == cfg.keyword.border_none then
		res:node(add_navbox_styles(hiding_templatestyles))
		local nav = res:tag('div')
			:attr('role', 'navigation')
			:node(tbl)
		-- aria-labelledby title, otherwise above, otherwise lone group
		if args[cfg.arg.title] or args[cfg.arg.above] or (args[cfg.arg.group1]
			and not args[cfg.arg.group2]) then
			nav:attr(
				'aria-labelledby',
				mw.uri.anchorEncode(
					args[cfg.arg.title] or args[cfg.arg.above] or args[cfg.arg.group1]
				)
			)
		else
			nav:attr('aria-label', cfg.aria_label)
		end
	elseif border == cfg.keyword.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>')
			:node(tbl)
			:wikitext('<div>')
	else
		res:node(add_navbox_styles(hiding_templatestyles))
		local nav = res:tag('div')
			:attr('role', 'navigation')
			:addClass(cfg.class.navbox)
			:addClass(args[cfg.arg.navboxclass])
			:cssText(args[cfg.arg.bodystyle])
			:cssText(args[cfg.arg.style])
			:css('padding', '3px')
			:node(tbl)
		-- aria-labelledby title, otherwise above, otherwise lone group
		if args[cfg.arg.title] or args[cfg.arg.above]
			or (args[cfg.arg.group1] and not args[cfg.arg.group2]) then
			nav:attr(
				'aria-labelledby',
				mw.uri.anchorEncode(args[cfg.arg.title] or args[cfg.arg.above] or args[cfg.arg.group1])
			)
		else
			nav:attr('aria-label', cfg.aria_label)
		end
	end

	if (args[cfg.arg.nocat] or cfg.keyword.nocat_false):lower() == cfg.keyword.nocat_false then
		renderTrackingCategories(res, border)
	end
	return striped(tostring(res), border)
end

function p.navbox(frame)
	local function readArgs(args, prefix)
		-- Read the arguments in the order they'll be output in, to make references
		-- number in the right order.
		local _
		_ = args[prefix .. cfg.arg.title]
		_ = args[prefix .. cfg.arg.above]
		-- Limit this to 20 as covering 'most' cases (that's a SWAG) and because
		-- iterator approach won't work here
		for i = 1, 20 do
			_ = args[prefix .. format(cfg.arg.group_and_num, i)]
			if inArray(cfg.keyword.subgroups, args[prefix .. format(cfg.arg.list_and_num, i)]) then
				for _, v in ipairs(cfg.keyword.subgroups) do
					readArgs(args, prefix .. v .. i .. "_")
				end
			end
		end
		_ = args[prefix .. cfg.arg.below]
	end

	if not getArgs then
		getArgs = require('Module:Arguments').getArgs
	end
	local args = getArgs(frame, {wrappers = {cfg.pattern.navbox}})
	readArgs(args, "")
	return p._navbox(args)
end

return p
泰国的钱叫什么 经常手淫会有什么危害 上面一个处下面一个日是什么字 市监狱长是什么级别 鞭炮笋学名叫什么
日有所思夜有所梦是什么意思 小腿发凉是什么原因造成的 大驿土是什么意思 经常腰酸是什么原因女性 痛风不能吃什么东西
什么的山坡 折什么时候读she 美平是什么药 单核细胞百分比偏高是什么原因 尿路感染 吃什么
死亡是什么感觉 捻子泡酒有什么功效 阴性什么意思 土笋冻是什么虫子 1978年五行属什么
中国的国树是什么树hcv9jop5ns3r.cn 嫐什么意思chuanglingweilai.com polo衫是什么hcv9jop7ns2r.cn 尿蛋白高吃什么药hcv8jop6ns1r.cn cip号是什么hcv9jop2ns7r.cn
nary是什么牌子的手表hcv9jop6ns3r.cn 作精是什么意思kuyehao.com 晚上睡觉流口水是什么病hcv9jop1ns0r.cn 肛门痛是什么原因hcv7jop4ns8r.cn 激素六项什么时间查最好hcv8jop4ns6r.cn
郁郁寡欢什么意思hcv9jop2ns3r.cn 低回声斑块是什么意思hcv8jop5ns9r.cn 滋养细胞疾病是什么病hcv9jop4ns1r.cn 尿酸高的人不能吃什么hcv7jop6ns7r.cn 竹笋不能和什么一起吃hcv7jop9ns4r.cn
孔夫子搬家的歇后语是什么hcv9jop0ns6r.cn 子宫直肠窝积液是什么意思hebeidezhi.com 生蚝和什么不能一起吃hcv9jop6ns5r.cn 1月1日是什么节hcv9jop1ns6r.cn 泛性恋是什么hcv8jop1ns2r.cn
百度