鹅和什么一起炖最好吃| 上眼皮肿是什么原因| dxm是什么药| 朔字五行属什么| 黄盖代表什么生肖| 结膜囊在眼睛什么位置| 子时属什么生肖| gms是什么意思| 爱情的故事分分合合是什么歌| 没有舌苔是什么原因| 鳝鱼吃什么食物| 口腔溃疡需要补充什么维生素| 血压低吃什么补得最快| 为什么老是放屁| 2月23日什么星座| 螃蟹一般吃什么| 狮子座和什么座最配| pvd是什么意思| 不可名状的名是什么意思| 跨境电子商务是什么| 梦见坟墓是什么意思| 酸碱度是什么意思| 属羊五行属什么| 医学五行属什么| 点映什么意思| 保护肾吃什么食物好| 吃什么有营养| 阳性对照是什么意思| 多头是什么意思| 人格魅力什么意思| 羊水指数和羊水深度有什么区别| 灶心土是什么| 胸贴是什么| 心脏跳的快什么原因| 什么症状吃肝胃气痛片| 骨质疏松打什么针| 凡士林是什么| 幽闭是什么意思| 考科目二紧张吃什么药| 最贵的金属是什么| smt是什么| 密度是什么| 朗姆酒兑什么好喝| 减脂是什么意思| 一如既往什么意思| 什么的遐想| 脸发麻是什么病的前兆| 变蛋吃多了有什么危害| 嘴唇挂什么科| omega什么牌子手表| 口苦是什么毛病| 气血亏虚吃什么中成药| 什么是肉刺图片大全| 三观不正是什么意思| 草字头的字有什么| 手指发白是什么原因| 爱打扮的女人说明什么| 小郡肝是什么部位| 尿酸高有什么危害| 为什么要小心AB型血的人| 婆婆过生日送什么礼物好| 什么罗之恋| 家和万事兴是什么意思| 法国铁塔叫什么| 性功能障碍吃什么药| 谷雨是什么季节| 梦见自己给自己剪头发是什么意思| 新生儿血糖低是什么原因| 颅压高吃什么药| 什么是抑郁症| 黄疸偏高有什么危害| 怀孕一个月出血是什么情况| 旭五行属性是什么| 喝什么补羊水| 人造革是什么材质| 尿液红细胞高是什么原因| pmid是什么意思| 旭日阳刚为什么不火了| 阴道口瘙痒是什么原因| 什么动物的牙齿最多| 拜阿司匹林和阿司匹林有什么区别| 弓山文念什么| ecg是什么意思| 推特为什么注册不了| 尿蛋白2十吃什么药| 芒硝有什么作用| otc是什么意思| 不约而至是什么意思| 才下眉头却上心头是什么意思| 用什么药可以缩阴紧致| 都有什么快递| 女人吃什么排湿气最快| 农历5月是什么月| 挫伤用什么药| 肺结核的痰是什么颜色| gender什么意思| 喝荷叶茶有什么好处和坏处| 发飙什么意思| 芝五行属什么| 脚气用什么药| 五年生存率是什么意思| 五月掉床有什么说法| 桃子跟什么不能一起吃| 法令纹上有痣代表什么| 五步蛇为什么叫五步蛇| 射精是什么意思| 知性女性是什么意思| 端午节晚上吃什么| 怀孕吃什么可以快速流产| 奥莱是什么牌子| 左胸口疼是什么原因| 望穿秋水的意思是什么| eos是什么| 芷字五行属什么| 再创佳绩是什么意思| 西洋参什么时候吃效果最好| 皮肤经常痒是什么原因| 7月1号是什么节日| 泥鳅吃什么东西| 捋一捋是什么意思| 世界上最难的数学题是什么| 疝气有什么症状| 扁平疣长什么样| 休眠是什么意思| 尿酸高喝什么水最好| 2.18是什么星座| 割礼是什么| 鲁米那又叫什么| cpr是什么| 左侧淋巴结肿大是什么原因| 公明仪属什么生肖| 梦见刷牙是什么预兆| 不以规矩下一句是什么| 眉目传情什么意思| 二元酸是什么| 玉髓是什么| 文盲是什么意思| 什么不什么| 狗狗拉肚子吃什么药| 前列腺肥大有什么症状| 月季花是什么颜色的| 六月十三日是什么日子| 早饱是什么意思| 肾上腺素是什么东西| 微创是什么| 细菌性结膜炎用什么眼药水| 沦落什么意思| 孙策和孙权什么关系| 急性胰腺炎吃什么药| 什么是平板电脑| 气血两虚吃什么中成药| 罗贯中和施耐庵是什么关系| 悬案是什么意思| 前列腺不能吃什么食物| 胃烧心吃什么药效果好| 手心发痒是什么原因| 9月27是什么星座| 什么运动可以让孩子长高| hcg什么时候查最准确| 宫颈锥切术是什么意思| 颜狗是什么意思| 白内障什么症状| 什么地望着| 什么是五毒| 高山仰止是什么意思| 草莓什么季节种植| ohs是什么意思| 蚊子喜欢什么味道| 6月28日是什么星座| 芽原基发育成什么| 白凉粉是什么做的| 皮卡丘站起来变成了什么| 小孩拉肚子吃什么食物| 投影仪什么牌子好| 老虎的天敌是什么动物| 什么是同比| ck是什么品牌| 梦见狗打架是什么意思| 过期药品属于什么垃圾| 乳腺纤维瘤和乳腺结节有什么区别| 久负盛名的负是什么意思| 夏天床上铺什么凉快| 什么宽带网速快又便宜| 血压低吃什么药| 葡萄糖酸钙锌口服溶液什么时候喝| 鸭屎香为什么叫鸭屎香| 梦见移坟墓是什么预兆| 全身大面积湿疹暗示着什么| 双肺纤维灶是什么意思| 癞蛤蟆长什么样| 亚洲没有什么气候| 经常喝红茶有什么好处和坏处吗| 高温天气喝什么茶解暑| 苦海翻起爱恨是什么歌| 打哈哈是什么意思| 恋足癖是什么意思| 毕业穿的衣服叫什么| 梦见烧衣服什么预兆| 高育良什么级别| 阴沟肠杆菌是什么病| 琅玕是什么意思| 避孕套什么牌子好用又安全| 肠粉为什么叫肠粉| 什么时候打仗| 肋骨疼挂什么科| 1981年什么命| 苏州立夏吃什么| 宫后是牛身上什么部位| secret什么意思| 看高血压挂什么科| 竹勿念什么| 侧切是什么意思| 舌头肥厚是什么原因| 4a是什么意思| sly是什么牌子| 低压低吃什么药| 部队指导员是什么级别| 当志愿者有什么好处| pr是什么意思| 社会公德的主要内容是什么| 家宴是什么意思| 服了是什么意思| 白酒兑什么好喝| 血小板计数偏低是什么意思| 助教是干什么的| palladium是什么牌子| 坐飞机要带什么证件| 发挥失常是什么意思| 膀胱尿潴留是什么意思| 阳萎早谢吃什么药最好| 诸多是什么意思| 气体交换受损与什么有关| 颧骨长斑是什么原因| 子宫前置是什么意思| 女同性恋叫什么| 飞机为什么能飞上天| 熬夜喝什么汤比较好| 冬眠灵是什么药| 去角质是什么意思| 吃什么利于排便| 天干是什么意思| 1987年五行属什么| 傍大款是什么意思| 关羽使用的武器是什么| UDCA是什么药| 救人一命胜造七级浮屠是什么意思| 乙肝两对半245阳性是什么意思| 出虚汗吃什么中成药| 异什么同什么| 什么叫菩提心| dic是什么病的简称| 大学生村官是什么编制| 海参什么时间吃最好| 乙肝复查检查什么项目| 中国女人裹脚是从什么时候开始| 人的血压一天中什么时候最高| 大姨妈有血块是什么原因| 跳楼机是什么| nba下个赛季什么时候开始| 嘴苦是什么情况| 2月12号是什么星座| 慢性胃炎吃什么药| 尾骨疼是什么原因| 梦见吃西瓜是什么征兆| 百度Jump to content

红宫红场·彭湃烈士故居获评国家4A级旅游景区

From Wikidata
Lua
CodeDiscussionLinksLink count SubpagesDocumentationTestsResultsSandboxLive code All modules
百度 做好全省职称评审数据归集和应用工作。

Documentation for this module may be created at Module:Citation/CS1/Utilities/doc

Code

local z = {
	error_categories = {};														-- for categorizing citations that contain errors
	error_ids = {};
	message_tail = {};
	maintenance_cats = {};														-- for categorizing citations that aren't erroneous per se, but could use a little work
	properties_cats = {};														-- for categorizing citations based on certain properties, language of source for instance
};


--[[--------------------------< F O R W A R D   D E C L A R A T I O N S >--------------------------------------
]]

local cfg;																		-- table of tables imported from selected Module:Citation/CS1/Configuration


--[[--------------------------< H A S _ A C C E P T _ A S _ W R I T T E N >------------------------------------

When <str> is wholly wrapped in accept-as-written markup, return <str> without markup and true; return <str> and false else

with allow_empty = false, <str> must have at least one character inside the markup
with allow_empty = true, <str> the markup frame can be empty like (()) to distinguish an empty template parameter from the specific condition "has no applicable value" in citation-context.

After further evaluation the two cases might be merged at a later stage, but should be kept separated for now.

]]

local function has_accept_as_written (str, allow_empty)
	local count;
	if true == allow_empty then
		str, count = str:gsub ('^%(%((.*)%)%)$', '%1'); 						-- allows (()) to be an empty set
	else
		str, count = str:gsub ('^%(%((.+)%)%)$', '%1');
	end
	return str, 0 ~= count;
end


--[[--------------------------< I S _ S E T >------------------------------------------------------------------

Returns true if argument is set; false otherwise. Argument is 'set' when it exists (not nil) or when it is not an empty string.

]]

local function is_set (var)
	return not (var == nil or var == '');
end


--[[--------------------------< I N _ A R R A Y >--------------------------------------------------------------

Whether needle is in haystack

]]

local function in_array (needle, haystack)
	if needle == nil then
		return false;
	end
	for n, v in ipairs (haystack) do
		if v == needle then
			return n;
		end
	end
	return false;
end


--[[--------------------------< S U B S T I T U T E >----------------------------------------------------------

Populates numbered arguments in a message string using an argument table.

]]

local function substitute (msg, args)
	return args and mw.message.newRawMessage (msg, args):plain() or msg;
end


--[[--------------------------< E R R O R _ C O M M E N T >----------------------------------------------------

Wraps error messages with CSS markup according to the state of hidden.

]]

local function error_comment (content, hidden)
	return substitute (hidden and cfg.presentation['hidden-error'] or cfg.presentation['visible-error'], content);
end


--[=[-------------------------< M A K E _ W I K I L I N K >----------------------------------------------------

Makes a wikilink; when both link and display text is provided, returns a wikilink in the form [[L|D]]; if only
link is provided (or link and display are the same), returns a wikilink in the form [[L]]; if neither are
provided or link is omitted, returns an empty string.

]=]

local function make_wikilink (link, display)
	if not is_set (link) then return '' end

	if is_set (display) and link ~= display then			
		return table.concat ({'[[', link, '|', display, ']]'});			
	else
		return table.concat ({'[[', link, ']]'});
	end
end


--[[--------------------------< S E T _ M E S S A G E >----------------------------------------------------------

Sets an error condition and returns the appropriate error message.  The actual placement of the error message in the output is
the responsibility of the calling function.

TODO: change z.error_categories and z.maintenance_cats to have the form cat_name = true; to avoid dups without having to have an extra cat

]]
local added_maint_cats = {}														-- list of maintenance categories that have been added to z.maintenance_cats; TODO: figure out how to delete this table

local function set_message (error_id, arguments, raw, prefix, suffix)
	local error_state = cfg.error_conditions[error_id];
	
	prefix = prefix or '';
	suffix = suffix or '';
	
	if error_state == nil then
		error (cfg.messages['undefined_error'] .. ': ' .. error_id);			-- because missing error handler in Module:Citation/CS1/Configuration

	elseif is_set (error_state.category) then
		if error_state.message then												-- when error_state.message defined, this is an error message
			table.insert (z.error_categories, error_state.category);
		else
			if not added_maint_cats[error_id] then
				added_maint_cats[error_id] = true;								-- note that we've added this category
				table.insert (z.maintenance_cats, substitute (error_state.category, arguments));	-- make cat name then add to table
			end
			return;																-- because no message, nothing more to do
		end
	end

	local message = substitute (error_state.message, arguments);

	message = table.concat (
		{
		message,
		' (',
		make_wikilink (
			table.concat (
				{
				cfg.messages['help page link'],
				'#',
				error_state.anchor
				}),
			cfg.messages['help page label']),
		')'
		});

	z.error_ids[error_id] = true;
	if z.error_ids['err_citation_missing_title'] and							-- if missing-title error already noted
		in_array (error_id, {'err_bare_url_missing_title', 'err_trans_missing_title'}) then		-- and this error is one of these
			return '', false;													-- don't bother because one flavor of missing title is sufficient
	end
	
	message = table.concat ({prefix, message, suffix});

	if raw == true then
		return message, error_state.hidden;
	end		

	return error_comment (message, error_state.hidden);
end


--[[-------------------------< I S _ A L I A S _ U S E D >-----------------------------------------------------

This function is used by select_one() to determine if one of a list of alias parameters is in the argument list
provided by the template.

Input:
	args – pointer to the arguments table from calling template
	alias – one of the list of possible aliases in the aliases lists from Module:Citation/CS1/Configuration
	index – for enumerated parameters, identifies which one
	enumerated – true/false flag used to choose how enumerated aliases are examined
	value – value associated with an alias that has previously been selected; nil if not yet selected
	selected – the alias that has previously been selected; nil if not yet selected
	error_list – list of aliases that are duplicates of the alias already selected

Returns:
	value – value associated with alias we selected or that was previously selected or nil if an alias not yet selected
	selected – the alias we selected or the alias that was previously selected or nil if an alias not yet selected

]]

local function is_alias_used (args, alias, index, enumerated, value, selected, error_list)
	if enumerated then															-- is this a test for an enumerated parameters?
		alias = alias:gsub ('#', index);										-- replace '#' with the value in index
	else
		alias = alias:gsub ('#', '');											-- remove '#' if it exists
	end

	if is_set (args[alias]) then													-- alias is in the template's argument list
		if value ~= nil and selected ~= alias then								-- if we have already selected one of the aliases
			local skip;
			for _, v in ipairs (error_list) do									-- spin through the error list to see if we've added this alias
				if v == alias then
					skip = true;
					break;														-- has been added so stop looking 
				end
			end
			if not skip then													-- has not been added so
				table.insert (error_list, alias);								-- add error alias to the error list
			end
		else
			value = args[alias];												-- not yet selected an alias, so select this one
			selected = alias;
		end
	end
	return value, selected;														-- return newly selected alias, or previously selected alias
end


--[[--------------------------< A D D _ M A I N T _ C A T >------------------------------------------------------

Adds a category to z.maintenance_cats using names from the configuration file with additional text if any.
To prevent duplication, the added_maint_cats table lists the categories by key that have been added to z.maintenance_cats.

]]

local function add_maint_cat (key, arguments)
	if not added_maint_cats [key] then
		added_maint_cats [key] = true;											-- note that we've added this category
		table.insert (z.maintenance_cats, substitute (cfg.maint_cats [key], arguments));	-- make name then add to table
	end
end


--[[--------------------------< A D D _ P R O P _ C A T >--------------------------------------------------------

Adds a category to z.properties_cats using names from the configuration file with additional text if any.

foreign_lang_source and foreign_lang_source_2 keys have a language code appended to them so that multiple languages
may be categorized but multiples of the same language are not categorized.

added_prop_cats is a table declared in page scope variables above

]]

local added_prop_cats = {};														-- list of property categories that have been added to z.properties_cats

local function add_prop_cat (key, arguments)
	if not added_prop_cats [key] then
		added_prop_cats [key] = true;											-- note that we've added this category
		key = key:gsub ('(foreign_lang_source_?2?)%a%a%a?[%a%-]*', '%1');		-- strip lang code from keyname
		table.insert (z.properties_cats, substitute (cfg.prop_cats [key], arguments));	-- make name then add to table
	end
end


--[[--------------------------< S A F E _ F O R _ I T A L I C S >----------------------------------------------

Protects a string that will be wrapped in wiki italic markup '' ... ''

Note: We cannot use <i> for italics, as the expected behavior for italics specified by ''...'' in the title is that
they will be inverted (i.e. unitalicized) in the resulting references.  In addition, <i> and '' tend to interact
poorly under Mediawiki's HTML tidy.

]]

local function safe_for_italics (str)
	if not is_set (str) then return str end

	if str:sub (1, 1) == "'" then str = "<span></span>" .. str; end
	if str:sub (-1, -1) == "'" then str = str .. "<span></span>"; end
	
	-- Remove newlines as they break italics.
	return str:gsub ('\n', ' ');

end


--[[--------------------------< W R A P _ S T Y L E >----------------------------------------------------------

Applies styling to various parameters.  Supplied string is wrapped using a message_list configuration taking one
argument; protects italic styled parameters.  Additional text taken from citation_config.presentation - the reason
this function is similar to but separate from wrap_msg().

]]

local function wrap_style (key, str)
	if not is_set (str) then
		return "";
	elseif in_array (key, {'italic-title', 'trans-italic-title'}) then
		str = safe_for_italics (str);
	end

	return substitute (cfg.presentation[key], {str});
end


--[[--------------------------< M A K E _ S E P _ L I S T >------------------------------------------------------------

make a separated list of items using provided separators.
	<sep_list> - typically '<comma><space>'
	<sep_list_pair> - typically '<space>and<space>'
	<sep_list_end> - typically '<comma><space>and<space>' or '<comma><space>&<space>'

defaults to cfg.presentation['sep_list'], cfg.presentation['sep_list_pair'], and cfg.presentation['sep_list_end']
if <sep_list_end> is specified, <sep_list> and <sep_list_pair> must also be supplied

]]

local function make_sep_list (count, list_seq, sep_list, sep_list_pair, sep_list_end)
	local list = '';

	if not sep_list then														-- set the defaults
		sep_list = cfg.presentation['sep_list'];
		sep_list_pair = cfg.presentation['sep_list_pair'];
		sep_list_end = cfg.presentation['sep_list_end'];
	end
	
	if 2 >= count then
		list = table.concat (list_seq, sep_list_pair);							-- insert separator between two items; returns list_seq[1] then only one item
	elseif 2 < count then
		list = table.concat (list_seq, sep_list, 1, count - 1);					-- concatenate all but last item with plain list separator
		list = table.concat ({list, list_seq[count]}, sep_list_end);			-- concatenate last item onto end of <list> with final separator
	end
	
	return list;
end


--[[--------------------------< S E L E C T _ O N E >----------------------------------------------------------

Chooses one matching parameter from a list of parameters to consider.  The list of parameters to consider is just
names.  For parameters that may be enumerated, the position of the numerator in the parameter name is identified
by the '#' so |author-last1= and |author1-last= are represented as 'author-last#' and 'author#-last'.

Because enumerated parameter |<param>1= is an alias of |<param>= we must test for both possibilities.


Generates an error if more than one match is present.

]]

local function select_one (args, aliases_list, error_condition, index)
	local value = nil;															-- the value assigned to the selected parameter
	local selected = '';														-- the name of the parameter we have chosen
	local error_list = {};

	if index ~= nil then index = tostring(index); end

	for _, alias in ipairs (aliases_list) do									-- for each alias in the aliases list
		if alias:match ('#') then												-- if this alias can be enumerated
			if '1' == index then												-- when index is 1 test for enumerated and non-enumerated aliases
				value, selected = is_alias_used (args, alias, index, false, value, selected, error_list);	-- first test for non-enumerated alias
			end
			value, selected = is_alias_used (args, alias, index, true, value, selected, error_list);	-- test for enumerated alias
		else
			value, selected = is_alias_used (args, alias, index, false, value, selected, error_list);	-- test for non-enumerated alias
		end
	end

	if #error_list > 0 and 'none' ~= error_condition then						-- for cases where this code is used outside of extract_names()
		for i, v in ipairs (error_list) do
			error_list[i] = wrap_style ('parameter', v);
		end
		table.insert (error_list, wrap_style ('parameter', selected));
		table.insert (z.message_tail, {set_message (error_condition, {make_sep_list (#error_list, error_list)}, true)});
	end
	
	return value, selected;
end


--[=[-------------------------< R E M O V E _ W I K I _ L I N K >----------------------------------------------

Gets the display text from a wikilink like [[A|B]] or [[B]] gives B

The str:gsub() returns either A|B froma [[A|B]] or B from [[B]] or B from B (no wikilink markup).

In l(), l:gsub() removes the link and pipe (if they exist); the second :gsub() trims whitespace from the label
if str was wrapped in wikilink markup.  Presumably, this is because without wikimarkup in str, there is no match
in the initial gsub, the replacement function l() doesn't get called.

]=]

local function remove_wiki_link (str)
	return (str:gsub ("%[%[([^%[%]]*)%]%]", function(l)
		return l:gsub ("^[^|]*|(.*)$", "%1" ):gsub ("^%s*(.-)%s*$", "%1");
	end));
end


--[=[-------------------------< I S _ W I K I L I N K >--------------------------------------------------------

Determines if str is a wikilink, extracts, and returns the wikilink type, link text, and display text parts.
If str is a complex wikilink ([[L|D]]):
	returns wl_type 2 and D and L from [[L|D]];
if str is a simple wikilink ([[D]])
	returns wl_type 1 and D from [[D]] and L as empty string;
if not a wikilink:
	returns wl_type 0, str as D, and L as empty string.

trims leading and trailing whitespace and pipes from L and D ([[L|]] and [[|D]] are accepted by MediaWiki and
treated like [[D]]; while [[|D|]] is not accepted by MediaWiki, here, we accept it and return D without the pipes).

]=]

local function is_wikilink (str)
	local D, L
	local wl_type = 2;															-- assume that str is a complex wikilink [[L|D]]

	if not str:match ('^%[%[[^%]]+%]%]$') then									-- is str some sort of a wikilink (must have some sort of content)
		return 0, str, '';														-- not a wikilink; return wl_type as 0, str as D, and empty string as L
	end
	
	L, D = str:match ('^%[%[([^|]+)|([^%]]+)%]%]$');							-- get L and D from [[L|D]] 

	if not is_set (D) then														-- if no separate display
		D = str:match ('^%[%[([^%]]*)|*%]%]$');									-- get D from [[D]] or [[D|]]
		wl_type = 1; 
	end
	
	D = mw.text.trim (D, '%s|');												-- trim white space and pipe characters 
	return wl_type, D, L or '';
end


--[[--------------------------< S T R I P _ A P O S T R O P H E _ M A R K U P >--------------------------------

Strip wiki italic and bold markup from argument so that it doesn't contaminate COinS metadata.
This function strips common patterns of apostrophe markup.  We presume that editors who have taken the time to
markup a title have, as a result, provided valid markup. When they don't, some single apostrophes are left behind.

Returns the argument without wiki markup and a number; the number is more-or-less meaningless except as a flag
to indicate that markup was replaced; do not rely on it as an indicator of how many of any kind of markup was
removed; returns the argument and nil when no markup removed

]]

local function strip_apostrophe_markup (argument)
	if not is_set (argument) then
		return argument, nil;													-- no argument, nothing to do
	end

	if nil == argument:find ( "''", 1, true ) then								-- Is there at least one double apostrophe?  If not, exit.
		return argument, nil;
	end

	local flag;
	while true do
		if argument:find ("'''''", 1, true) then								-- bold italic (5)
			argument, flag = argument:gsub ("%'%'%'%'%'", "");						-- remove all instances of it
		elseif argument:find ("''''", 1, true) then							-- italic start and end without content (4)
			argument, flag=argument:gsub ("%'%'%'%'", "");
		elseif argument:find ("'''", 1, true) then							-- bold (3)
			argument, flag=argument:gsub ("%'%'%'", "");
		elseif argument:find ("''", 1, true) then								-- italic (2)
			argument, flag = argument:gsub ("%'%'", "");
		else
			break;
		end
	end

	return argument, flag;														-- done
end


--[[--------------------------< S E T _ S E L E C T E D _ M O D U L E S >--------------------------------------

Sets local cfg table to same (live or sandbox) as that used by the other modules.

]]

local function set_selected_modules (cfg_table_ptr)
	cfg = cfg_table_ptr;
	
end


--[[--------------------------< E X P O R T S >----------------------------------------------------------------
]]

return {
	add_maint_cat = add_maint_cat,												-- exported functions
	add_prop_cat = add_prop_cat,
	error_comment = error_comment,
	has_accept_as_written = has_accept_as_written,
	in_array = in_array,
	is_set = is_set,
	is_wikilink = is_wikilink,
	make_sep_list = make_sep_list,
	make_wikilink = make_wikilink,
	remove_wiki_link = remove_wiki_link,
	safe_for_italics = safe_for_italics,
	select_one = select_one,
	set_message = set_message,
	set_selected_modules = set_selected_modules,
	strip_apostrophe_markup = strip_apostrophe_markup,
	substitute = substitute,
	wrap_style = wrap_style,

	z = z,																		-- exported table
	}
省略号的作用是什么 什么止疼药见效最快 713是什么星座 人体出汗多是什么原因 吃什么瘦肚子
打嗝吃什么药效果好 欧豪资源为什么这么好 茶叶含有什么成分 2018是什么生肖 hrd是什么
高血压挂号要挂什么科 黑热病是什么病 什么人不能吃火龙果 沵是什么意思 护发素什么牌子好
男女授受不亲是什么意思 荨麻疹不能吃什么食物 院士是什么学位 勤对什么 焦虑挂什么科
伏天吃什么hcv8jop4ns8r.cn 验尿白细胞高是什么原因hcv9jop2ns9r.cn 意守丹田是什么意思hcv9jop6ns3r.cn 十月十三是什么星座hcv8jop3ns7r.cn 愿君多采撷是什么意思sanhestory.com
张力是什么意思hcv9jop0ns2r.cn 反映是什么意思hcv8jop7ns9r.cn 什么叫脂溢性皮炎hcv9jop5ns9r.cn 胃凉是什么原因hcv8jop5ns0r.cn 栋字五行属什么hcv8jop4ns9r.cn
指甲发紫是什么原因hcv8jop2ns7r.cn 什么是抑郁症hcv7jop6ns9r.cn 胎儿脉络丛囊肿是什么原因引起的hcv7jop5ns0r.cn 什么可以驱蛇hcv7jop9ns9r.cn 劈腿是什么意思hcv9jop4ns2r.cn
中国的国树是什么树hcv7jop5ns2r.cn 心有余而力不足什么意思hcv7jop6ns8r.cn 爆炸盐是什么hcv7jop9ns4r.cn 前哨是什么意思hcv8jop1ns3r.cn 尿的颜色有点红褐色是什么原因hcv9jop5ns2r.cn
百度