<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="zh">
	<id>https://test.zybkcn.com/w/index.php?action=history&amp;feed=atom&amp;title=Module%3ADelcat</id>
	<title>Module:Delcat - 版本历史</title>
	<link rel="self" type="application/atom+xml" href="https://test.zybkcn.com/w/index.php?action=history&amp;feed=atom&amp;title=Module%3ADelcat"/>
	<link rel="alternate" type="text/html" href="https://test.zybkcn.com/w/index.php?title=Module:Delcat&amp;action=history"/>
	<updated>2026-07-18T04:05:40Z</updated>
	<subtitle>本wiki上该页面的版本历史</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://test.zybkcn.com/w/index.php?title=Module:Delcat&amp;diff=828&amp;oldid=prev</id>
		<title>WikiBot：​从 zhwiki 导入完整版</title>
		<link rel="alternate" type="text/html" href="https://test.zybkcn.com/w/index.php?title=Module:Delcat&amp;diff=828&amp;oldid=prev"/>
		<updated>2026-06-23T15:53:26Z</updated>

		<summary type="html">&lt;p&gt;从 zhwiki 导入完整版&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新页面&lt;/b&gt;&lt;/p&gt;&lt;div&gt;local p={&lt;br /&gt;
	replace_data = { &lt;br /&gt;
		&amp;quot;%[%[[Cc][Aa][Tt].-%]%]&amp;quot;,&lt;br /&gt;
		&amp;quot;%[%[分類.-%]%]&amp;quot;,&lt;br /&gt;
		&amp;quot;%[%[分类.-%]%]&amp;quot;,&lt;br /&gt;
		&amp;quot;%[%[[Cc]ategory.-%]%]&amp;quot;,&lt;br /&gt;
		&amp;quot;%[%[CATEGORY.-%]%]&amp;quot;,&lt;br /&gt;
		--&amp;quot;其他例外&amp;quot;, --直接新增即可&lt;br /&gt;
	},&lt;br /&gt;
	nullstr = &amp;#039;&amp;#039;&lt;br /&gt;
}&lt;br /&gt;
local strings = require( &amp;#039;Module:String&amp;#039; )&lt;br /&gt;
local TlParLib = {}&lt;br /&gt;
local lib_arg = {}&lt;br /&gt;
--主函数&lt;br /&gt;
function p.main(frame)&lt;br /&gt;
	if not getArgs then&lt;br /&gt;
		getArgs = require(&amp;#039;Module:Arguments&amp;#039;).getArgs&lt;br /&gt;
	end&lt;br /&gt;
	get_args = getArgs(frame, {parentFirst=true})&lt;br /&gt;
	&lt;br /&gt;
	--__DISAMBIG__&lt;br /&gt;
	other_replace = {}&lt;br /&gt;
	to_replace = &amp;#039;&amp;#039;&lt;br /&gt;
	rep_type = &amp;quot;category&amp;quot;&lt;br /&gt;
	for arg_name, arg_value in pairs( get_args ) do&lt;br /&gt;
		if arg_name == 1 or arg_name == &amp;#039;1&amp;#039; then&lt;br /&gt;
			--要处理的字符串&lt;br /&gt;
			to_replace = arg_value&lt;br /&gt;
		elseif arg_name == &amp;quot;type&amp;quot; then&lt;br /&gt;
			rep_type = mw.ustring.lower(arg_value)&lt;br /&gt;
		else&lt;br /&gt;
			other_replace[arg_name] = arg_value&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	if rep_type == &amp;quot;category&amp;quot; then&lt;br /&gt;
		return p.delete_category(to_replace, other_replace)&lt;br /&gt;
	elseif rep_type == &amp;quot;link&amp;quot; then&lt;br /&gt;
		return p.dellink(get_args)&lt;br /&gt;
	elseif rep_type == &amp;quot;list_category&amp;quot; or rep_type == &amp;quot;listcategory&amp;quot; or rep_type == &amp;quot;list category&amp;quot; then&lt;br /&gt;
		return p.list_category(get_args)&lt;br /&gt;
	else&lt;br /&gt;
		return to_replace&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.list_category(frame)&lt;br /&gt;
	if not getArgs then&lt;br /&gt;
		getArgs = require(&amp;#039;Module:Arguments&amp;#039;).getArgs&lt;br /&gt;
	end&lt;br /&gt;
	get_args = getArgs(frame, {parentFirst=true})&lt;br /&gt;
	category_list = p.find_category((get_args[1] or get_args[&amp;#039;1&amp;#039;]) or &amp;#039;&amp;#039;)&lt;br /&gt;
	format = mw.ustring.gsub((get_args[2] or get_args[&amp;#039;2&amp;#039;]) or &amp;quot;*{{{1}}}\\n&amp;quot;, &amp;quot;%{%{%{.-%}%}%}&amp;quot;, &amp;quot;%%s&amp;quot; );&lt;br /&gt;
	it = mw.ustring.find(format, &amp;quot;%%s&amp;quot;, 1)&lt;br /&gt;
	if it == nil then format = format .. &amp;quot;%s&amp;quot; end&lt;br /&gt;
	format = mw.ustring.gsub(format, &amp;quot;\\\\n&amp;quot;, &amp;quot;\\n&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
	body = &amp;#039;&amp;#039;&lt;br /&gt;
	for i, category in pairs( category_list ) do&lt;br /&gt;
		body = body .. mw.ustring.gsub(format, &amp;quot;%%s&amp;quot;, category)&lt;br /&gt;
	end&lt;br /&gt;
	return body&lt;br /&gt;
end&lt;br /&gt;
function p.deltitle(input)&lt;br /&gt;
	str = mw.text.trim(mw.ustring.gsub(input,&amp;quot;\\127\\&amp;#039;\\\&amp;quot;`UNIQ%-%-.-QINU`\\\&amp;quot;\\&amp;#039;\\127&amp;quot;, p.nullstr))&lt;br /&gt;
&lt;br /&gt;
	begin_, end_ = mw.ustring.find(str, &amp;quot;=+&amp;quot;, 1)&lt;br /&gt;
	if begin_==nil then return input end&lt;br /&gt;
	begin_2 = mw.ustring.find(str, &amp;quot;=+ *\\n&amp;quot;, end_ + 1)&lt;br /&gt;
	count = end_ - begin_ + 1&lt;br /&gt;
&lt;br /&gt;
	title_name = mw.text.trim(mw.ustring.sub(str, end_ + 1, begin_2-1 ))&lt;br /&gt;
	result = &amp;quot;\\n;&amp;lt;span id=\\\&amp;quot;&amp;quot; .. title_name .. &amp;quot;\\\&amp;quot; style=\\\&amp;quot;font-size:&amp;quot; .. (({24,20,18,16,14})[count] or 14) .. &amp;quot;px;\\\&amp;quot;&amp;gt;&amp;quot; .. title_name .. &amp;quot;&amp;lt;/span&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
	if count &amp;lt; 1 then return str &lt;br /&gt;
	elseif count &amp;lt; 3 then result = result .. &amp;quot;\\n----&amp;quot; end&lt;br /&gt;
	return result .. &amp;#039;\\n&amp;#039;&lt;br /&gt;
end&lt;br /&gt;
function p.bytelen(frame)&lt;br /&gt;
	local args&lt;br /&gt;
	if frame == mw.getCurrentFrame() then&lt;br /&gt;
		-- We&amp;#039;re being called via #invoke. The args are passed through to the module&lt;br /&gt;
		-- from the template page, so use the args that were passed into the template.&lt;br /&gt;
		args = frame.args&lt;br /&gt;
	else&lt;br /&gt;
		-- We&amp;#039;re being called from another module or from the debug console, so assume&lt;br /&gt;
		-- the args are passed in directly.&lt;br /&gt;
		args = frame&lt;br /&gt;
		if type(args) ~= type({}) then args = {frame} end&lt;br /&gt;
	end&lt;br /&gt;
	return string.len(args[1] or args[&amp;#039;1&amp;#039;])&lt;br /&gt;
end&lt;br /&gt;
function p.getcjk(frame)&lt;br /&gt;
	local args&lt;br /&gt;
	if frame == mw.getCurrentFrame() then&lt;br /&gt;
		-- We&amp;#039;re being called via #invoke. The args are passed through to the module&lt;br /&gt;
		-- from the template page, so use the args that were passed into the template.&lt;br /&gt;
		args = frame.args&lt;br /&gt;
	else&lt;br /&gt;
		-- We&amp;#039;re being called from another module or from the debug console, so assume&lt;br /&gt;
		-- the args are passed in directly.&lt;br /&gt;
		args = frame&lt;br /&gt;
		if type(args) ~= type({}) then args = {frame} end&lt;br /&gt;
	end&lt;br /&gt;
	local str = args[1] or args[&amp;#039;1&amp;#039;]&lt;br /&gt;
	str = mw.ustring.gsub(str, &amp;quot;&amp;lt;%s*div.-&amp;lt;%s*%/div%s*&amp;gt;&amp;quot;,&amp;#039;&amp;#039;)&lt;br /&gt;
	mw.ustring.gsub(mw.ustring.gsub(args[1] or args[&amp;#039;1&amp;#039;],&lt;br /&gt;
		&amp;quot;[%c%l%u%d%p%s%z&amp;quot; ..&lt;br /&gt;
			&amp;quot;%&amp;gt;%&amp;lt;%=%{%}%|%[%]%`%+%-%*%/%\\\\&amp;quot;&lt;br /&gt;
		.. &amp;quot;↑↓←→№©⦸⁄&amp;quot;&lt;br /&gt;
		.. &amp;quot;%~%~!%@%#%$%^%&amp;amp;%_×÷ºª±∓&amp;quot;&lt;br /&gt;
		.. &amp;quot;]&amp;quot;&lt;br /&gt;
	,&amp;#039;.&amp;#039;),&amp;quot;%.+&amp;quot;,args[&amp;#039;gap&amp;#039;] or &amp;#039;&amp;#039;)&lt;br /&gt;
	return str&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.dellink(frame)&lt;br /&gt;
	if not getArgs then&lt;br /&gt;
		getArgs = require(&amp;#039;Module:Arguments&amp;#039;).getArgs&lt;br /&gt;
	end&lt;br /&gt;
	get_args = getArgs(frame, {parentFirst=true})&lt;br /&gt;
	input = (get_args[1] or get_args[&amp;#039;1&amp;#039;]) or &amp;#039;&amp;#039;&lt;br /&gt;
	input = mw.ustring.gsub(input,&amp;quot;\\127\\&amp;#039;\\\&amp;quot;`UNIQ%-%-ref.-QINU`\\\&amp;quot;\\&amp;#039;\\127&amp;quot;, p.nullstr)&lt;br /&gt;
	body = p.delete_category(input, {})&lt;br /&gt;
	get_link = mw.ustring.gmatch( body, &amp;quot;%[%[.-%]%]&amp;quot; )&lt;br /&gt;
	i = 1 j = 1 while mw.ustring.find(body, &amp;quot;\\n=+ *[^\\n]* *=+ *\\n&amp;quot;) and j do&lt;br /&gt;
		if i&amp;gt;=10 then j = nil end&lt;br /&gt;
		body = mw.ustring.gsub(body, &amp;quot;\\n=+ *[^\\n]* *=+ *\\n&amp;quot;, p.deltitle)&lt;br /&gt;
		i = i + 1&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	catbody = mw.ustring.gsub(input,&amp;#039;&amp;lt;&amp;#039;,&amp;quot;&amp;amp;lt;&amp;quot;)&lt;br /&gt;
	catbody = mw.ustring.gsub(catbody,&amp;#039;&amp;gt;&amp;#039;,&amp;quot;&amp;amp;gt;&amp;quot;)&lt;br /&gt;
	category_list = p.find_category(catbody)&lt;br /&gt;
	&lt;br /&gt;
	link_str = get_link()&lt;br /&gt;
	while link_str do&lt;br /&gt;
		link_url = mw.ustring.sub(link_str, 3, -3)&lt;br /&gt;
		--^$()%.[]*+-?&lt;br /&gt;
		link_matcher = mw.ustring.gsub(mw.ustring.gsub(mw.ustring.gsub(mw.ustring.gsub(mw.ustring.gsub(mw.ustring.gsub(mw.ustring.gsub(mw.ustring.gsub(mw.ustring.gsub(mw.ustring.gsub(link_url, &lt;br /&gt;
			&amp;quot;%%&amp;quot;, &amp;quot;%%%%&amp;quot;), &amp;quot;%)&amp;quot;, &amp;quot;%)&amp;quot;), &amp;quot;%-&amp;quot;, &amp;quot;%-&amp;quot;), &amp;quot;%^&amp;quot;, &amp;quot;%^&amp;quot;), &amp;quot;%$&amp;quot;, &amp;quot;%$&amp;quot;), &amp;quot;%(&amp;quot;, &amp;quot;%(&amp;quot;), &amp;quot;%.&amp;quot;, &amp;quot;%.&amp;quot;), &amp;quot;%*&amp;quot;, &amp;quot;%*&amp;quot;), &amp;quot;%+&amp;quot;, &amp;quot;%+&amp;quot;), &amp;quot;%|&amp;quot;, &amp;quot;%|&amp;quot;)&lt;br /&gt;
		link_matcher = mw.ustring.gsub(mw.ustring.gsub(link_matcher, &amp;quot;%[&amp;quot;, &amp;quot;%[&amp;quot;) , &amp;quot;%]&amp;quot;, &amp;quot;%]&amp;quot;) &lt;br /&gt;
		link_matcher = mw.ustring.gsub(mw.ustring.gsub(link_matcher, &amp;quot;%{&amp;quot;, &amp;quot;%{&amp;quot;) , &amp;quot;%}&amp;quot;, &amp;quot;%}&amp;quot;)&lt;br /&gt;
		first_split = mw.ustring.find(link_url, &amp;quot;%|&amp;quot;, 1) or 0&lt;br /&gt;
		get_link_inner = mw.ustring.gsub(mw.ustring.sub(link_url, 1, first_split - 1), &amp;quot;%%&amp;quot;, &amp;quot;%%%%&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
		body = mw.ustring.gsub( body, &amp;quot;%[%[&amp;quot; .. link_matcher .. &amp;quot;%]%]&amp;quot;, get_link_inner );&lt;br /&gt;
		link_str = get_link()&lt;br /&gt;
	end&lt;br /&gt;
	body = mw.text.trim(body) .. &amp;#039;\\n&amp;#039;&lt;br /&gt;
	&lt;br /&gt;
	body = mw.ustring.gsub( body, &amp;quot;[Ii][Ss][Bb][Nn]&amp;quot;, &amp;quot;&amp;amp;#73;&amp;amp;#83;&amp;amp;#66;&amp;amp;#78;&amp;quot; );&lt;br /&gt;
	body = mw.ustring.gsub( body, &amp;quot;__[A-Z]+__&amp;quot;, p.nullstr );&lt;br /&gt;
	for i, category in pairs( category_list ) do&lt;br /&gt;
		body = body .. category .. &amp;quot; &amp;quot;&lt;br /&gt;
	end&lt;br /&gt;
	return body&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.delete_category(source_str, other)&lt;br /&gt;
	local body = source_str&lt;br /&gt;
	for i, categorys in pairs( p.replace_data ) do&lt;br /&gt;
		body = mw.ustring.gsub( body, categorys, p.nullstr );	   &lt;br /&gt;
	end&lt;br /&gt;
	for i, categorys in pairs( other ) do&lt;br /&gt;
		body = mw.ustring.gsub( body, categorys, p.nullstr );	   &lt;br /&gt;
	end&lt;br /&gt;
	--Category:使用ISBN魔术连结的页面&lt;br /&gt;
	body = mw.ustring.gsub( body, &amp;quot;[Ii][Ss][Bb][Nn]&amp;quot;, &amp;quot;&amp;amp;#73;&amp;amp;#83;&amp;amp;#66;&amp;amp;#78;&amp;quot; );&lt;br /&gt;
	body = mw.text.trim(body) --消除多余空行&lt;br /&gt;
	return body&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.find_category(source_str)&lt;br /&gt;
	local body = &amp;#039;&amp;#039;&lt;br /&gt;
	input = mw.ustring.gsub(source_str,&amp;#039;&amp;lt;&amp;#039;,&amp;quot;&amp;amp;lt;&amp;quot;)&lt;br /&gt;
	input = mw.ustring.gsub(input,&amp;#039;&amp;gt;&amp;#039;,&amp;quot;&amp;amp;gt;&amp;quot;)&lt;br /&gt;
	cat_counting = {}&lt;br /&gt;
	for i, category_matcher in pairs( p.replace_data ) do&lt;br /&gt;
		get_cat = mw.ustring.gmatch( input, category_matcher )&lt;br /&gt;
		cat_str = get_cat()&lt;br /&gt;
		while cat_str do&lt;br /&gt;
			cat_name_it = mw.ustring.find(cat_str, &amp;#039;:&amp;#039;, 1, false)&lt;br /&gt;
			first_split = mw.ustring.find(cat_str, &amp;quot;%|&amp;quot;, 1) or -2&lt;br /&gt;
			&lt;br /&gt;
			category = mw.ustring.sub(cat_str, cat_name_it + 1, first_split - 1)&lt;br /&gt;
			cat_counting[category] = category&lt;br /&gt;
			cat_str = get_cat()&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	if mw.ustring.find(body, &amp;quot;[Ii][Ss][Bb][Nn]&amp;quot;) then category_list[&amp;quot;使用ISBN魔术连结的页面&amp;quot;] = &amp;quot;使用ISBN魔术连结的页面&amp;quot; end&lt;br /&gt;
	cat_list = {}&lt;br /&gt;
	i=1&lt;br /&gt;
	for _, category_name in pairs( cat_counting ) do&lt;br /&gt;
		cat_list[i] = &amp;quot;Category:&amp;quot; .. category_name&lt;br /&gt;
&lt;br /&gt;
		i = i + 1&lt;br /&gt;
	end	&lt;br /&gt;
	return cat_list&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.test(frame)&lt;br /&gt;
	if not getArgs then&lt;br /&gt;
		getArgs = require(&amp;#039;Module:Arguments&amp;#039;).getArgs&lt;br /&gt;
	end&lt;br /&gt;
	get_args = getArgs(frame, {parentFirst=true})&lt;br /&gt;
	&lt;br /&gt;
	text = mw.ustring.gsub( ((get_args[1] or get_args[&amp;#039;1&amp;#039;]) or &amp;#039;&amp;#039;), &amp;#039;\\n&amp;#039;, &amp;quot;\\n &amp;quot;)&lt;br /&gt;
	&lt;br /&gt;
	input = mw.ustring.gsub(text,&amp;#039;&amp;lt;&amp;#039;,&amp;quot;&amp;amp;lt;&amp;quot;)&lt;br /&gt;
	input = mw.ustring.gsub(input,&amp;#039;&amp;gt;&amp;#039;,&amp;quot;&amp;amp;gt;&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
	--return mw.ustring.gsub( input .. &amp;quot;\\n*匹配数:&amp;quot;, &amp;quot;\\127\\&amp;#039;\\\&amp;quot;`UNIQ%-%-ref.-QINU`\\\&amp;quot;\\&amp;#039;\\127&amp;quot;, p.nullstr );&lt;br /&gt;
	input = mw.ustring.gsub( input, &amp;quot;\\127\\&amp;#039;\\\&amp;quot;`&amp;quot;, p.nullstr );&lt;br /&gt;
	return mw.ustring.gsub( input, &amp;quot;`\\\&amp;quot;\\&amp;#039;\\127&amp;quot;, p.nullstr );&lt;br /&gt;
end&lt;br /&gt;
function p.get_title(frame)&lt;br /&gt;
	if not getArgs then&lt;br /&gt;
		getArgs = require(&amp;#039;Module:Arguments&amp;#039;).getArgs&lt;br /&gt;
	end&lt;br /&gt;
	get_args = getArgs(frame, {parentFirst=true})&lt;br /&gt;
	for arg_name, arg_value in pairs( get_args ) do&lt;br /&gt;
		if arg_name == 1 or arg_name == &amp;#039;1&amp;#039; then&lt;br /&gt;
			--要处理的字符串&lt;br /&gt;
			input = arg_value&lt;br /&gt;
		elseif arg_name == &amp;quot;title&amp;quot; or  arg_name == &amp;quot;2&amp;quot; or arg_name == 2 then&lt;br /&gt;
			title = arg_value&lt;br /&gt;
		elseif arg_name == &amp;quot;keep&amp;quot; or arg_name == &amp;quot;keep_title&amp;quot; or arg_name == &amp;quot;keep title&amp;quot; or&lt;br /&gt;
			arg_name == &amp;quot;3&amp;quot; or arg_name == 3 then&lt;br /&gt;
				keep_title = mw.ustring.lower(arg_value)&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	return p.find_title(input or &amp;#039;&amp;#039;, title or &amp;#039;&amp;#039;, keep_title)&lt;br /&gt;
end&lt;br /&gt;
function p.get_chapter(frame)&lt;br /&gt;
	if not getArgs then&lt;br /&gt;
		getArgs = require(&amp;#039;Module:Arguments&amp;#039;).getArgs&lt;br /&gt;
	end&lt;br /&gt;
	get_args = getArgs(frame, {parentFirst=true})&lt;br /&gt;
	input = (get_args[1] or get_args[&amp;#039;1&amp;#039;]) or &amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
	chapter_begin, chapter_end = mw.ustring.find(input, &amp;#039;#&amp;#039;, 1)&lt;br /&gt;
	if chapter_begin ~= nil then&lt;br /&gt;
		return mw.ustring.sub(input, chapter_begin + 1)&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	return &amp;#039;&amp;#039;&lt;br /&gt;
end&lt;br /&gt;
-- @deprecated&lt;br /&gt;
function p.delnowiki(frame)&lt;br /&gt;
	mw.addWarning(&amp;#039;[[Module:Delcat]]: Deprecated method &amp;lt;code&amp;gt;[[Module:Delcat]]#delnowiki&amp;lt;/code&amp;gt; is called. Please replace with &amp;lt;code&amp;gt;{{tlm|#invoke|Unstrip|unstripNoWiki|text}}&amp;lt;/code&amp;gt; (wikitext) or &amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot; inline&amp;gt;mw.text.unstripNoWiki(text)&amp;lt;/syntaxhighlight&amp;gt; (lua).&amp;#039;)&lt;br /&gt;
	-- For calling from #invoke.&lt;br /&gt;
	local get_args&lt;br /&gt;
	if frame == mw.getCurrentFrame() then&lt;br /&gt;
		-- We&amp;#039;re being called via #invoke. The args are passed through to the module&lt;br /&gt;
		-- from the template page, so use the args that were passed into the template.&lt;br /&gt;
		if not getArgs then&lt;br /&gt;
			getArgs = require(&amp;#039;Module:Arguments&amp;#039;).getArgs&lt;br /&gt;
		end&lt;br /&gt;
		get_args = getArgs(frame, {parentFirst=true})&lt;br /&gt;
	else&lt;br /&gt;
		-- We&amp;#039;re being called from another module or from the debug console, so assume&lt;br /&gt;
		-- the args are passed in directly.&lt;br /&gt;
		get_args = frame&lt;br /&gt;
		if type(get_args) ~= type({}) then get_args = {frame} end&lt;br /&gt;
	end&lt;br /&gt;
	local input_str=nil,get_args[1] or get_args[&amp;#039;1&amp;#039;] or &amp;#039;&amp;#039;&lt;br /&gt;
	return mw.text.unstripNoWiki(input_str)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.getData(data,data_path)&lt;br /&gt;
	local path_items = mw.text.split(data_path, &amp;quot;%.&amp;quot;)&lt;br /&gt;
	local result = data&lt;br /&gt;
	for _, path_item in ipairs(path_items) do&lt;br /&gt;
		if type(result) == type(nil) then break end&lt;br /&gt;
		result = result[path_item]&lt;br /&gt;
	end&lt;br /&gt;
	return result&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.include(frame)&lt;br /&gt;
	local args, working_frame&lt;br /&gt;
	if frame == mw.getCurrentFrame() then&lt;br /&gt;
		-- We&amp;#039;re being called via #invoke. The args are passed through to the module&lt;br /&gt;
		-- from the template page, so use the args that were passed into the template.&lt;br /&gt;
		if lib_arg.getArgs == nil then lib_arg = require(&amp;#039;Module:Arguments&amp;#039;) end&lt;br /&gt;
		args = lib_arg.getArgs(frame, {parentFirst=true})&lt;br /&gt;
		working_frame = frame&lt;br /&gt;
	else&lt;br /&gt;
		-- We&amp;#039;re being called from another module or from the debug console, so assume&lt;br /&gt;
		-- the args are passed in directly.&lt;br /&gt;
		args = frame&lt;br /&gt;
		working_frame = mw.getCurrentFrame()&lt;br /&gt;
		if type(args) ~= type({}) then args = {frame} end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local keep_title&lt;br /&gt;
	local pagename&lt;br /&gt;
	local full_include = false&lt;br /&gt;
	local preprocess = true&lt;br /&gt;
	local new_args = { args[&amp;quot;\\1&amp;quot;] or &amp;#039;&amp;#039; }&lt;br /&gt;
	for arg_name, arg_value in pairs( args ) do&lt;br /&gt;
		if arg_name == 1 or arg_name == &amp;#039;1&amp;#039; then&lt;br /&gt;
			pagename = arg_value&lt;br /&gt;
		elseif arg_name == &amp;quot;keep&amp;quot; or arg_name == &amp;quot;keep_title&amp;quot; or arg_name == &amp;quot;keep title&amp;quot; then&lt;br /&gt;
			keep_title = mw.ustring.lower(arg_value)&lt;br /&gt;
		elseif arg_name == &amp;quot;full_include&amp;quot; or arg_name == &amp;quot;full include&amp;quot; or arg_name == &amp;quot;full&amp;quot; then&lt;br /&gt;
			if yesno == nil then yesno = require(&amp;#039;Module:Yesno&amp;#039;) end&lt;br /&gt;
			full_include = yesno(mw.ustring.lower(arg_value) or &amp;#039;no&amp;#039;)&lt;br /&gt;
		elseif arg_name == &amp;quot;\\1&amp;quot; then new_args[&amp;quot;1&amp;quot;] = arg_value&lt;br /&gt;
		elseif frame ~= mw.getCurrentFrame() and arg_name == &amp;quot;NoPreprocess&amp;quot; then preprocess = not require(&amp;#039;Module:Yesno&amp;#039;)(arg_value) -- lua专用，使目标暂时不展开，不允许直接呼叫避免惨案发生&lt;br /&gt;
		else new_args[arg_name] = arg_value end&lt;br /&gt;
	end&lt;br /&gt;
	local hide_first_title = false&lt;br /&gt;
	local show_t = true&lt;br /&gt;
	if keep_title ~= nil then&lt;br /&gt;
		if yesno == nil then yesno = require(&amp;#039;Module:Yesno&amp;#039;) end&lt;br /&gt;
		if keep_title == &amp;quot;hide&amp;quot; then show_t, hide_first_title = false, true&lt;br /&gt;
		else show_t = yesno(keep_title or &amp;quot;yes&amp;quot;) end&lt;br /&gt;
	else&lt;br /&gt;
		show_t = true&lt;br /&gt;
	end&lt;br /&gt;
	if mw.text.trim(pagename or &amp;#039;&amp;#039;) == &amp;#039;&amp;#039; then return &amp;#039;&amp;#039; end&lt;br /&gt;
&lt;br /&gt;
	local chaptername = &amp;#039;&amp;#039;&lt;br /&gt;
	local input_fullpagename = tostring(pagename)&lt;br /&gt;
	local InIsSubst, InIsSSubst, InIsMsgnw&lt;br /&gt;
	pagename, InIsSubst = mw.ustring.gsub(pagename, &amp;quot;^subst:&amp;quot;,&amp;quot;&amp;quot;)&lt;br /&gt;
	pagename, InIsMsgnw = mw.ustring.gsub(pagename, &amp;quot;^msgnw:&amp;quot;,&amp;quot;&amp;quot;)&lt;br /&gt;
	pagename, InIsSSubst = mw.ustring.gsub(pagename, &amp;quot;^safesubst:&amp;quot;,&amp;quot;&amp;quot;)&lt;br /&gt;
	pagename = mw.ustring.gsub(pagename, &amp;quot;^raw:&amp;quot;,&amp;quot;&amp;quot;)&lt;br /&gt;
	pagename = mw.ustring.gsub(pagename, &amp;quot;^int:&amp;quot;,&amp;quot;MediaWiki:&amp;quot;)&lt;br /&gt;
	InIsSubst = InIsSubst &amp;gt; 0 or InIsMsgnw &amp;gt; 0&lt;br /&gt;
	InIsMsgnw = InIsMsgnw &amp;gt; 0&lt;br /&gt;
	local mark_pos,_  = mw.ustring.find(pagename, &amp;#039;%#&amp;#039;) --分析章节语法(#)&lt;br /&gt;
	if mark_pos then &lt;br /&gt;
		chaptername = mw.ustring.sub(pagename,mark_pos+1,#pagename) &lt;br /&gt;
		pagename = mw.ustring.sub(pagename,1,mark_pos-1) &lt;br /&gt;
	end&lt;br /&gt;
	local chapterfullname = tostring(chaptername)&lt;br /&gt;
	local chapterid = 1&lt;br /&gt;
	mark_pos = mw.ustring.find(chapterfullname, &amp;quot;%_%d+$&amp;quot;) --分析章节语法(_)&lt;br /&gt;
	if mark_pos then &lt;br /&gt;
		chaptername = mw.ustring.sub(chapterfullname,1,mark_pos-1) &lt;br /&gt;
		chapterid = tonumber(mw.ustring.sub(chapterfullname,mark_pos+1,#chapterfullname)) or 1&lt;br /&gt;
	end&lt;br /&gt;
	local chapterothername = tostring(chaptername)&lt;br /&gt;
	local body = &amp;#039;&amp;#039;&lt;br /&gt;
	&lt;br /&gt;
	if mw.text.trim(pagename) == &amp;#039;&amp;#039; then return &amp;#039;&amp;#039; end&lt;br /&gt;
	&lt;br /&gt;
	--取得引用页名称&lt;br /&gt;
	local check_includetitle, is_namespace0 = mw.text.trim(pagename), 0&lt;br /&gt;
	check_includetitle, is_namespace0 = mw.ustring.gsub(check_includetitle, &amp;quot;^%s-:&amp;quot;,&amp;quot;&amp;quot;)&lt;br /&gt;
	local check_includetitle_obj = (mw.title.new( check_includetitle ) or {})&lt;br /&gt;
	local check_includetitle_namespace = check_includetitle_obj.namespace or 10&lt;br /&gt;
	local check_isExternal = check_includetitle_obj.isExternal&lt;br /&gt;
	if check_isExternal == nil then check_isExternal = false end&lt;br /&gt;
	if check_includetitle_namespace == 0 and is_namespace0 &amp;gt; 0 and not check_isExternal then --有冒号表示指名名字空间(预设是 Template )&lt;br /&gt;
		check_includetitle = mw.title.new( check_includetitle )&lt;br /&gt;
	elseif check_includetitle_namespace == 0 and not check_isExternal then --没有冒号表示预设是 Template&lt;br /&gt;
		check_includetitle = mw.title.new( &amp;quot;Template:&amp;quot; .. check_includetitle )&lt;br /&gt;
	else --其余情况就用解析到的名字空间&lt;br /&gt;
		check_includetitle = mw.title.new( check_includetitle )&lt;br /&gt;
	end&lt;br /&gt;
	if check_includetitle == nil then check_includetitle = check_includetitle or { &lt;br /&gt;
		fullText = mw.text.trim(pagename) , text = mw.text.trim(pagename), isErrorTitle=true&lt;br /&gt;
	} end&lt;br /&gt;
	--建立解析器，解析模板语法&lt;br /&gt;
	local include_frame = mw.getCurrentFrame()&lt;br /&gt;
	local include_parent_frame = include_frame:getParent()&lt;br /&gt;
	if include_parent_frame and not mw.isSubsting() then include_frame = include_parent_frame end&lt;br /&gt;
	--定位为由呼叫者直接执行&lt;br /&gt;
	if not mw.isSubsting() then&lt;br /&gt;
		working_frame = include_frame:newChild{ title = include_frame:getTitle(), args = new_args }&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local input_str = working_frame:preprocess( &amp;quot;{{msgnw:&amp;quot; .. pagename .. &amp;quot;}}&amp;quot; ) --析出页面源码&lt;br /&gt;
	local redirectTarget = check_includetitle.redirectTarget&lt;br /&gt;
	if redirectTarget ~= false and redirectTarget ~= nil then check_includetitle = redirectTarget end&lt;br /&gt;
&lt;br /&gt;
-- [[Module:Delcat]] include --包含&lt;br /&gt;
-- 将模板源码以源码形式包含进来，并试图节选特定章节内容&lt;br /&gt;
&lt;br /&gt;
	--去除扩展标签之前，由于章节(== XX ==)也是一种列入strip的扩展标签，因此要先储存起来，避免资料遗失&lt;br /&gt;
	local htagstrip_table = {}&lt;br /&gt;
	if not mw.isSubsting() then --subst需保留扩展标签 (subst后会自动还原)&lt;br /&gt;
		local htagstrip_matcher = &amp;quot;\\127\\&amp;#039;\\\&amp;quot;`UNIQ%-%-h%-.-QINU`\\\&amp;quot;\\&amp;#039;\\127%s-[^\\n]-%s-=+%s-\\n&amp;quot;&lt;br /&gt;
		local htagstrip_start, htagstrip_end = mw.ustring.find(input_str, htagstrip_matcher, 1)&lt;br /&gt;
		&lt;br /&gt;
		while htagstrip_start do&lt;br /&gt;
			local temp_htagstrip = mw.ustring.sub(input_str, htagstrip_start, htagstrip_end)&lt;br /&gt;
			local htagstrip_str = mw.ustring.match(temp_htagstrip, &amp;quot;\\127\\&amp;#039;\\\&amp;quot;`UNIQ%-%-h%-.-QINU`\\\&amp;quot;\\&amp;#039;\\127&amp;quot;)&lt;br /&gt;
			local htag_tail = mw.ustring.gsub(temp_htagstrip, &amp;quot;\\127\\&amp;#039;\\\&amp;quot;`UNIQ%-%-h%-.-QINU`\\\&amp;quot;\\&amp;#039;\\127&amp;quot;, &amp;quot;&amp;quot;)&lt;br /&gt;
			local begin_, end_ = mw.ustring.find(htag_tail, &amp;quot;=+&amp;quot;, 1)&lt;br /&gt;
			local htag_name = mw.text.trim(mw.ustring.gsub(htag_tail, &amp;#039;=&amp;#039;, &amp;#039;&amp;#039;))&lt;br /&gt;
			htagstrip_table[#htagstrip_table+1] = {&lt;br /&gt;
				name=mw.text.trim(htag_name),&lt;br /&gt;
				level=end_ - begin_ + 1,&lt;br /&gt;
				htagstrip=htagstrip_str&lt;br /&gt;
			}&lt;br /&gt;
			htagstrip_start, htagstrip_end = mw.ustring.find(input_str, htagstrip_matcher, htagstrip_end+1)&lt;br /&gt;
		end&lt;br /&gt;
		input_str =  mw.text.killMarkers( input_str ) --去除扩展标签&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	input_str = &amp;#039;\\n\\n&amp;#039; .. input_str .. &amp;#039;\\n\\n&amp;#039; --使规表达式不会在首行和末行出现边界情况&lt;br /&gt;
	if TlParLib._getEscapeString == nil then TlParLib = require(&amp;#039;Module:TemplateParameters&amp;#039;) end&lt;br /&gt;
	local chapterfullname_regex_pattern = TlParLib._getEscapeString(chapterfullname)&lt;br /&gt;
	local chaptername_regex_pattern = TlParLib._getEscapeString(chaptername)&lt;br /&gt;
&lt;br /&gt;
	local is_htag = false&lt;br /&gt;
	local function htag_regex(chname) &lt;br /&gt;
		--用于处理subst不同的载入方式&lt;br /&gt;
		if mw.isSubsting() then return &amp;quot;\\n=+ -&amp;quot; .. chname .. &amp;quot; -=+ -\\n&amp;quot; end&lt;br /&gt;
		return &amp;quot;\\n=+%s-&amp;quot; .. chname .. &amp;quot;%s-=+%s-\\n&amp;quot; &lt;br /&gt;
	end&lt;br /&gt;
	local function spantag_regex(chname) return &amp;quot;%&amp;lt;%s-span[^%&amp;gt;]+id=[%\\\&amp;quot;%\\&amp;#039;]&amp;quot; .. chname .. &amp;quot;[%\\\&amp;quot;%\\&amp;#039;]&amp;quot; end&lt;br /&gt;
	local function anchortag_regex(chname) return &amp;quot;%{%{[Aa][Nn][Cc][Hh][Oo][Rr][^%}]-%|%s-&amp;quot; .. chname .. &amp;quot;%s-[%|%}]&amp;quot; end&lt;br /&gt;
	local function find_chtag(chname, alltext)&lt;br /&gt;
		is_htag = true&lt;br /&gt;
		local finded_title_begin, finded_title_end = mw.ustring.find(input_str, htag_regex(chname), 1)&lt;br /&gt;
		if finded_title_begin then return finded_title_begin, finded_title_end end&lt;br /&gt;
		is_htag = false&lt;br /&gt;
		finded_title_begin, finded_title_end = mw.ustring.find(input_str, spantag_regex(chname), 1)&lt;br /&gt;
		if finded_title_begin then return finded_title_begin, finded_title_end end&lt;br /&gt;
		finded_title_begin, finded_title_end = mw.ustring.find(input_str, anchortag_regex(chname), 1)&lt;br /&gt;
		if finded_title_begin then return finded_title_begin, finded_title_end end&lt;br /&gt;
	end&lt;br /&gt;
	local next_title_matcher = htag_regex(&amp;quot;[^\\n]-&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
	if mw.text.trim(chapterfullname) ~= &amp;#039;&amp;#039; then&lt;br /&gt;
		local finded_title_begin, finded_title_end = find_chtag(chapterfullname_regex_pattern, input_str)&lt;br /&gt;
		local next_title_begin, next_title_end = #input_str, nil; next_title_end = next_title_begin&lt;br /&gt;
		if finded_title_begin then --匹配全名&lt;br /&gt;
		else --从非全名寻找&lt;br /&gt;
			finded_title_begin, finded_title_end =find_chtag(chaptername_regex_pattern, input_str)&lt;br /&gt;
		end&lt;br /&gt;
		if chapterid &amp;gt; 1 then&lt;br /&gt;
			local cutted_title_matcher = htag_regex(chaptername_regex_pattern)&lt;br /&gt;
			for index = 2, chapterid do&lt;br /&gt;
				if finded_title_end ~= nil then&lt;br /&gt;
					finded_title_begin, finded_title_end = mw.ustring.find(input_str, cutted_title_matcher, finded_title_end + 1)&lt;br /&gt;
				end&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
&lt;br /&gt;
		local finded_title_string = mw.ustring.sub(input_str, finded_title_begin, finded_title_end)&lt;br /&gt;
&lt;br /&gt;
		if chapterfullname == &amp;quot;__FIRST_SECTION__&amp;quot; then finded_title_begin = -1;is_htag=true end&lt;br /&gt;
		local htag_level = nil&lt;br /&gt;
		if finded_title_begin then --找到了&lt;br /&gt;
			if chapterfullname == &amp;quot;__FIRST_SECTION__&amp;quot; then&lt;br /&gt;
				finded_title_string = &amp;#039;&amp;#039;&lt;br /&gt;
				htag_level = 9007199254740991 --lua max int&lt;br /&gt;
				finded_title_end = 1&lt;br /&gt;
			else&lt;br /&gt;
				if is_htag == false then --分析章节标题&lt;br /&gt;
					local re_find = mw.ustring.sub(input_str, 1, finded_title_begin)&lt;br /&gt;
					re_find = re_find:reverse()&lt;br /&gt;
					local temp_title_begin, temp_title_end&lt;br /&gt;
					if(mw.ustring.isutf8(re_find) == true )then&lt;br /&gt;
						temp_title_begin, temp_title_end = mw.ustring.find(re_find, htag_regex(&amp;quot;[^\\n]-&amp;quot;), 1)&lt;br /&gt;
						if temp_title_begin then finded_title_string = mw.ustring.sub(re_find, temp_title_begin, temp_title_end) end&lt;br /&gt;
					else&lt;br /&gt;
						temp_title_begin, temp_title_end = re_find:find(htag_regex(&amp;quot;[^\\n]-&amp;quot;), 1)&lt;br /&gt;
						if temp_title_begin then finded_title_string = re_find:sub(temp_title_begin, temp_title_end) end&lt;br /&gt;
					end&lt;br /&gt;
					finded_title_string = finded_title_string:reverse()&lt;br /&gt;
					if(mw.ustring.isutf8(finded_title_string) == true )then&lt;br /&gt;
						chapterothername = mw.ustring.gsub(finded_title_string,&amp;quot;=&amp;quot;,&amp;#039;&amp;#039;)&lt;br /&gt;
					else&lt;br /&gt;
						chapterothername = finded_title_string:gsub(&amp;quot;=&amp;quot;,&amp;#039;&amp;#039;)&lt;br /&gt;
					end&lt;br /&gt;
				end&lt;br /&gt;
				--获得章节标题的级数&lt;br /&gt;
				if htag_level==nil then&lt;br /&gt;
					local begin_, end_ = mw.ustring.find(finded_title_string, &amp;quot;=+&amp;quot;, 1)&lt;br /&gt;
					htag_level = end_ - begin_ + 1&lt;br /&gt;
				end&lt;br /&gt;
			end&lt;br /&gt;
		&lt;br /&gt;
			local next_title_find_begin, next_title_find_end = mw.ustring.find(input_str, next_title_matcher, finded_title_end + 1)&lt;br /&gt;
			local flag = true while next_title_find_begin and flag do&lt;br /&gt;
				local next_title_find = mw.ustring.sub(input_str, next_title_find_begin, next_title_find_end)&lt;br /&gt;
				local find_begin_, find_end_ = mw.ustring.find(next_title_find, &amp;quot;=+&amp;quot;, 1)&lt;br /&gt;
				local find_count = find_end_ - find_begin_ + 1&lt;br /&gt;
				if find_count &amp;lt;= htag_level then &lt;br /&gt;
					next_title_begin = next_title_find_begin&lt;br /&gt;
					next_title_end = next_title_find_end&lt;br /&gt;
					flag = nil&lt;br /&gt;
				end&lt;br /&gt;
				next_title_find_begin, next_title_find_end = mw.ustring.find(input_str, next_title_matcher, next_title_find_end + 1)&lt;br /&gt;
			end&lt;br /&gt;
			if next_title_begin == nil then next_title_begin = 0 end&lt;br /&gt;
			&lt;br /&gt;
			local ch_start = finded_title_end + 1&lt;br /&gt;
			if is_htag == false then ch_start = finded_title_begin end&lt;br /&gt;
			body = mw.ustring.sub(input_str, ch_start, next_title_begin - 1)&lt;br /&gt;
&lt;br /&gt;
			if show_t == false then --不显示章节标头者，移除章节标头&lt;br /&gt;
				local i = 1 j = 1 while mw.ustring.find(body, &amp;quot;\\n=+ *[^\\n]* *=+ *\\n&amp;quot;) and j do if i&amp;gt;=10 then j = nil end&lt;br /&gt;
					body = mw.ustring.gsub(body, &amp;quot;\\n=+ *[^\\n]* *=+ *\\n&amp;quot;, p.deltitle)&lt;br /&gt;
					i = i + 1&lt;br /&gt;
				end&lt;br /&gt;
			end&lt;br /&gt;
			if hide_first_title==false then&lt;br /&gt;
				if show_t then body = finded_title_string .. body &lt;br /&gt;
				else body = p.deltitle(finded_title_string) .. body end&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	else&lt;br /&gt;
		body = input_str&lt;br /&gt;
	end	&lt;br /&gt;
	if full_include==true then --设定为 &amp;quot;全面引用&amp;quot; 将noinclude等标记移除&lt;br /&gt;
		--匹配noinclude等标记的规表达式 (适用lua的版本)&lt;br /&gt;
		local include_pattern = &amp;quot;[Ii][Nn][Cc][Ll][Uu][Dd][Ee]&amp;quot;&lt;br /&gt;
		local only_pattern = &amp;quot;[Oo][Nn][Ll][Yy]&amp;quot;&lt;br /&gt;
		local no_pattern = &amp;quot;[Nn][Oo]&amp;quot;&lt;br /&gt;
		local taghead_pattern = &amp;quot;%&amp;lt;[%s/]-&amp;quot;&lt;br /&gt;
		local tagtail_pattern = &amp;quot;[^%&amp;gt;]-%&amp;gt;&amp;quot;&lt;br /&gt;
		local tagdel_pattern = &amp;quot;&amp;lt;!----&amp;gt;&amp;quot;&lt;br /&gt;
		body = mw.ustring.gsub(body, taghead_pattern .. no_pattern .. include_pattern .. tagtail_pattern, tagdel_pattern)&lt;br /&gt;
		body = mw.ustring.gsub(body, taghead_pattern .. only_pattern .. include_pattern .. tagtail_pattern, tagdel_pattern)&lt;br /&gt;
		body = mw.ustring.gsub(body, taghead_pattern .. include_pattern .. only_pattern .. tagtail_pattern, tagdel_pattern)&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	local min_title = 0&lt;br /&gt;
	if show_t == true and not mw.isSubsting() then --显示章节标头者，须使章节标头正常运作&lt;br /&gt;
		--将扩展标签 (== XX ==) 摆回去&lt;br /&gt;
		body = &amp;#039;\\n\\n&amp;#039; .. body .. &amp;#039;\\n\\n&amp;#039; --使规表达式不会在首行和末行出现边界情况&lt;br /&gt;
		local back_title_start, back_title_end = mw.ustring.find(body, next_title_matcher, 1)&lt;br /&gt;
		local title_first_match = true&lt;br /&gt;
		while back_title_start do --逐一搜索标题&lt;br /&gt;
			local check_title=mw.ustring.sub(body, back_title_start, back_title_end)&lt;br /&gt;
			check_title=mw.text.trim(mw.ustring.gsub(check_title, &amp;#039;=&amp;#039;, &amp;#039;&amp;#039;))&lt;br /&gt;
			check_title=mw.text.trim(check_title) --确定标题名称&lt;br /&gt;
			local check_title_matcher=TlParLib._getEscapeString(check_title)&lt;br /&gt;
			local htagstrip_table_item={} --获得原始标题的扩展标签strip标记符号&lt;br /&gt;
			for ik, iv in ipairs(htagstrip_table) do&lt;br /&gt;
				if iv.name == check_title or iv.name == chapterothername then&lt;br /&gt;
					htagstrip_table_item = iv&lt;br /&gt;
					if title_first_match == true then&lt;br /&gt;
						min_title = ik&lt;br /&gt;
						title_first_match = false&lt;br /&gt;
					end&lt;br /&gt;
					break&lt;br /&gt;
				end&lt;br /&gt;
			end&lt;br /&gt;
&lt;br /&gt;
			--将扩展标签strip标记符号放回内文&lt;br /&gt;
			if htagstrip_table_item.htagstrip then&lt;br /&gt;
				body = mw.ustring.gsub(body, &amp;quot;(=+)(%s-&amp;quot; .. check_title_matcher .. &amp;quot;%s-=+)&amp;quot;, &amp;quot;%1&amp;quot; .. htagstrip_table_item.htagstrip .. &amp;quot;%2&amp;quot;)&lt;br /&gt;
			end&lt;br /&gt;
			back_title_start, back_title_end = mw.ustring.find(body, next_title_matcher, back_title_end+1)&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	body = mw.text.trim(body)&lt;br /&gt;
	--subst无须复位&lt;br /&gt;
	if mw.isSubsting() then return body end&lt;br /&gt;
	&lt;br /&gt;
	if min_title &amp;gt; 1 then body = &amp;quot;\\127\\&amp;#039;\\\&amp;quot;`UNIQ____TITLE__TAG__PATTERN____QINU`\\\&amp;quot;\\&amp;#039;\\127\\n&amp;quot; .. body&lt;br /&gt;
		for _=2,min_title do body = &amp;quot;== ==\\n&amp;quot; .. body end &lt;br /&gt;
	end&lt;br /&gt;
	working_frame = include_frame:newChild{ title = check_includetitle.fullText, args = new_args }&lt;br /&gt;
	if preprocess then  -- lua专用，使目标暂时不展开&lt;br /&gt;
		body = working_frame:preprocess( body )&lt;br /&gt;
	end&lt;br /&gt;
	if min_title &amp;gt; 1 then local start;_,start = mw.ustring.find(body,&amp;quot;\\127\\&amp;#039;\\\&amp;quot;`UNIQ____TITLE__TAG__PATTERN____QINU`\\\&amp;quot;\\&amp;#039;\\127\\n&amp;quot;)&lt;br /&gt;
		if start then body =mw.ustring.sub(body, start+1, #body) end&lt;br /&gt;
		body = mw.text.trim(body)&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	return body&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
function p.find_title(str, title, keep_title)&lt;br /&gt;
	if title == nil then return &amp;#039;&amp;#039; end&lt;br /&gt;
	if title == &amp;#039;&amp;#039; then return str end&lt;br /&gt;
	settion_data_begin, settion_data_end = mw.ustring.find(title, &amp;quot;_[0-9]+$&amp;quot;, 1)&lt;br /&gt;
	&lt;br /&gt;
	find_count = 1&lt;br /&gt;
	if settion_data_begin ~= nil then &lt;br /&gt;
		cutted_title = mw.ustring.sub(title, 1, settion_data_begin - 1)&lt;br /&gt;
		find_count = tonumber(mw.ustring.sub(title, settion_data_begin + 1, settion_data_end))&lt;br /&gt;
	else&lt;br /&gt;
		cutted_title = title&lt;br /&gt;
	end&lt;br /&gt;
	if find_count &amp;lt; 1 then &lt;br /&gt;
		find_count = 1&lt;br /&gt;
		cutted_title = title &lt;br /&gt;
	end&lt;br /&gt;
	show_t = true&lt;br /&gt;
	if keep_title ~= nil then&lt;br /&gt;
		if yesno == nil then yesno = require(&amp;#039;Module:Yesno&amp;#039;) end&lt;br /&gt;
		if keep_title == &amp;quot;hide&amp;quot; then show_t = false end&lt;br /&gt;
		keep_t = yesno(keep_title)&lt;br /&gt;
	else&lt;br /&gt;
		keep_t = false&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	str = &amp;#039;\\n&amp;#039;..mw.text.trim(mw.ustring.gsub(str,&amp;quot;\\127\\&amp;#039;\\\&amp;quot;`UNIQ%-%-h%-.-QINU`\\\&amp;quot;\\&amp;#039;\\127&amp;quot;, p.nullstr))&lt;br /&gt;
&lt;br /&gt;
	--^$()%.[]*+-?&lt;br /&gt;
	title_matcher = mw.ustring.gsub(mw.ustring.gsub(mw.ustring.gsub(mw.ustring.gsub(mw.ustring.gsub(mw.ustring.gsub(mw.ustring.gsub(mw.ustring.gsub(mw.ustring.gsub(mw.ustring.gsub(title, &lt;br /&gt;
		&amp;quot;%%&amp;quot;, &amp;quot;%%%%&amp;quot;), &amp;quot;%)&amp;quot;, &amp;quot;%)&amp;quot;), &amp;quot;%-&amp;quot;, &amp;quot;%-&amp;quot;), &amp;quot;%^&amp;quot;, &amp;quot;%^&amp;quot;), &amp;quot;%$&amp;quot;, &amp;quot;%$&amp;quot;), &amp;quot;%(&amp;quot;, &amp;quot;%(&amp;quot;), &amp;quot;%.&amp;quot;, &amp;quot;%.&amp;quot;), &amp;quot;%*&amp;quot;, &amp;quot;%*&amp;quot;), &amp;quot;%+&amp;quot;, &amp;quot;%+&amp;quot;), &amp;quot;%|&amp;quot;, &amp;quot;%|&amp;quot;)&lt;br /&gt;
	title_matcher = mw.ustring.gsub(mw.ustring.gsub(title_matcher, &amp;quot;%[&amp;quot;, &amp;quot;%[&amp;quot;) , &amp;quot;%]&amp;quot;, &amp;quot;%]&amp;quot;) &lt;br /&gt;
	title_matcher = mw.ustring.gsub(mw.ustring.gsub(title_matcher, &amp;quot;%{&amp;quot;, &amp;quot;%{&amp;quot;) , &amp;quot;%}&amp;quot;, &amp;quot;%}&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
	cutted_title_matcher = mw.ustring.gsub(mw.ustring.gsub(mw.ustring.gsub(mw.ustring.gsub(mw.ustring.gsub(mw.ustring.gsub(mw.ustring.gsub(mw.ustring.gsub(mw.ustring.gsub(mw.ustring.gsub(cutted_title, &lt;br /&gt;
		&amp;quot;%%&amp;quot;, &amp;quot;%%%%&amp;quot;), &amp;quot;%)&amp;quot;, &amp;quot;%)&amp;quot;), &amp;quot;%-&amp;quot;, &amp;quot;%-&amp;quot;), &amp;quot;%^&amp;quot;, &amp;quot;%^&amp;quot;), &amp;quot;%$&amp;quot;, &amp;quot;%$&amp;quot;), &amp;quot;%(&amp;quot;, &amp;quot;%(&amp;quot;), &amp;quot;%.&amp;quot;, &amp;quot;%.&amp;quot;), &amp;quot;%*&amp;quot;, &amp;quot;%*&amp;quot;), &amp;quot;%+&amp;quot;, &amp;quot;%+&amp;quot;), &amp;quot;%|&amp;quot;, &amp;quot;%|&amp;quot;)&lt;br /&gt;
	cutted_title_matcher = mw.ustring.gsub(mw.ustring.gsub(cutted_title_matcher, &amp;quot;%[&amp;quot;, &amp;quot;%[&amp;quot;) , &amp;quot;%]&amp;quot;, &amp;quot;%]&amp;quot;) &lt;br /&gt;
	cutted_title_matcher = mw.ustring.gsub(mw.ustring.gsub(cutted_title_matcher, &amp;quot;%{&amp;quot;, &amp;quot;%{&amp;quot;) , &amp;quot;%}&amp;quot;, &amp;quot;%}&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
	cutted_title_matcher = &amp;quot;\\n=+ *&amp;quot; .. cutted_title_matcher .. &amp;quot; *=+ *\\n&amp;quot;&lt;br /&gt;
	title_matcher = &amp;quot;\\n=+ *&amp;quot; .. title_matcher .. &amp;quot; *=+ *\\n&amp;quot;&lt;br /&gt;
	&lt;br /&gt;
	finded_title_begin, finded_title_end = mw.ustring.find(str, title_matcher, 1)&lt;br /&gt;
	if finded_title_begin == nil then&lt;br /&gt;
		finded_title_begin, finded_title_end = mw.ustring.find(str, cutted_title_matcher, 1)&lt;br /&gt;
		for index = 2, find_count do&lt;br /&gt;
			if finded_title_end ~= nil then&lt;br /&gt;
				finded_title_begin, finded_title_end = mw.ustring.find(str, cutted_title_matcher, finded_title_end + 1)&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	if title == &amp;quot;__FIRST_SECTION__&amp;quot; then finded_title_begin = -1 end&lt;br /&gt;
	if finded_title_begin ~= nil then&lt;br /&gt;
		if title == &amp;quot;__FIRST_SECTION__&amp;quot; then&lt;br /&gt;
			finded_title = &amp;#039;&amp;#039;&lt;br /&gt;
			count = 99999&lt;br /&gt;
			finded_title_end = 1&lt;br /&gt;
		else&lt;br /&gt;
			finded_title = mw.ustring.sub(str, finded_title_begin, finded_title_end)&lt;br /&gt;
			&lt;br /&gt;
			begin_, end_ = mw.ustring.find(finded_title, &amp;quot;=+&amp;quot;, 1)&lt;br /&gt;
			begin_2, end_2 = mw.ustring.find(finded_title, &amp;quot;=+ *\\n&amp;quot;, end_ + 1)&lt;br /&gt;
			count = end_ - begin_ + 1&lt;br /&gt;
			&lt;br /&gt;
		end&lt;br /&gt;
		next_title_matcher = &amp;quot;\\n=+ *[^=\\n]* *=+ *\\n&amp;quot;&lt;br /&gt;
		next_title_find_begin, next_title_find_end = mw.ustring.find(str, next_title_matcher, finded_title_end + 1)&lt;br /&gt;
		flag = true while next_title_find_begin and flag do&lt;br /&gt;
			next_title_find = mw.ustring.sub(str, next_title_find_begin, next_title_find_end)&lt;br /&gt;
			find_begin_, find_end_ = mw.ustring.find(next_title_find, &amp;quot;=+&amp;quot;, 1)&lt;br /&gt;
			find_count = find_end_ - find_begin_ + 1&lt;br /&gt;
			if find_count &amp;lt;= count then &lt;br /&gt;
				next_title_begin = next_title_find_begin&lt;br /&gt;
				next_title_end = next_title_find_end&lt;br /&gt;
				flag = nil&lt;br /&gt;
			end&lt;br /&gt;
			next_title_find_begin, next_title_find_end = mw.ustring.find(str, next_title_matcher, next_title_find_end + 1)&lt;br /&gt;
		end&lt;br /&gt;
		&lt;br /&gt;
		--title_name = mw.text.trim(mw.ustring.sub(str, end_ + 1, begin_2-1 ))&lt;br /&gt;
		if next_title_begin == nil then next_title_begin = 0 end&lt;br /&gt;
		&lt;br /&gt;
		body = mw.ustring.sub(str, finded_title_end + 1, next_title_begin - 1)&lt;br /&gt;
		i = 1 j = 1 while mw.ustring.find(body, &amp;quot;\\n=+ *[^\\n]* *=+ *\\n&amp;quot;) and j do if i&amp;gt;=10 then j = nil end&lt;br /&gt;
			body = mw.ustring.gsub(body, &amp;quot;\\n=+ *[^\\n]* *=+ *\\n&amp;quot;, p.deltitle)&lt;br /&gt;
			i = i + 1&lt;br /&gt;
		end&lt;br /&gt;
&lt;br /&gt;
		if show_t then if keep_title then body = finded_title .. body else body = p.deltitle(finded_title) .. body end end&lt;br /&gt;
		return  mw.text.trim(body)&lt;br /&gt;
	end&lt;br /&gt;
	return &amp;#039;&amp;#039;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.delcat_specific(frame)&lt;br /&gt;
	if frame == mw.getCurrentFrame() then&lt;br /&gt;
		if not getArgs then&lt;br /&gt;
			getArgs = require(&amp;#039;Module:Arguments&amp;#039;).getArgs&lt;br /&gt;
		end&lt;br /&gt;
		get_args = getArgs(frame, {parentFirst=true})&lt;br /&gt;
	else&lt;br /&gt;
		-- From [[Module:TemplateParameters]], Thank [[User:A2569875|A2569875]]&lt;br /&gt;
		if type(frame) ~= type({}) then&lt;br /&gt;
			get_args = {frame}&lt;br /&gt;
		else&lt;br /&gt;
			get_args = frame&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	local wt = &amp;#039;&amp;#039;&lt;br /&gt;
	local delcat = {}&lt;br /&gt;
	local i = 1&lt;br /&gt;
	for k, v in pairs( get_args ) do&lt;br /&gt;
		if k == 1 or k == &amp;#039;1&amp;#039; then&lt;br /&gt;
			--要处理的字符串&lt;br /&gt;
			to_replace = v&lt;br /&gt;
		else&lt;br /&gt;
			delcat[i] = v&lt;br /&gt;
			i = i + 1&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	for _, cat in ipairs( delcat ) do&lt;br /&gt;
		wt = mw.ustring.gsub(wt, &amp;quot;%[%[([Cc][Aa][Tt]|[Cc]ategory|CATEGORY|分类|分類):&amp;quot; .. cat .. &amp;quot;(%|.|)%]%]&amp;quot;, &amp;quot;&amp;quot;)&lt;br /&gt;
	end&lt;br /&gt;
	return wt&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>WikiBot</name></author>
	</entry>
</feed>