<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="zh-Hant-HK">
	<id>https://www.unitedbook.org/index.php?action=history&amp;feed=atom&amp;title=%E6%A8%A1%E7%B5%84%3AIlh</id>
	<title>模組:Ilh - 修訂歷史</title>
	<link rel="self" type="application/atom+xml" href="https://www.unitedbook.org/index.php?action=history&amp;feed=atom&amp;title=%E6%A8%A1%E7%B5%84%3AIlh"/>
	<link rel="alternate" type="text/html" href="https://www.unitedbook.org/index.php?title=%E6%A8%A1%E7%B5%84:Ilh&amp;action=history"/>
	<updated>2026-07-17T23:09:48Z</updated>
	<subtitle>本 Wiki 上此頁面的修訂歷史</subtitle>
	<generator>MediaWiki 1.41.0</generator>
	<entry>
		<id>https://www.unitedbook.org/index.php?title=%E6%A8%A1%E7%B5%84:Ilh&amp;diff=12726&amp;oldid=prev</id>
		<title>DC：​建立內容為「local ilh = {} local getArgs local yesno = require(&#039;Module:Yesno&#039;) local lan = require(&#039;Module:Lan&#039;) local langData = mw.loadData( &#039;Module:Ilh/data&#039; )  --local frameArgs local COMMON_TAIL=&#039;&lt;/span&gt;&#039; local MODEL={ 	 frame_head=&#039;&lt;span class=&quot;ilh-all %s&quot; data-orig-title=&quot;%s&quot; data-lang-code=&quot;%s&quot; data-lang-name=&quot;%s&quot; data-foreign-title=&quot;%s&quot;&gt;&#039; 	,frame_tail=COMMON_TAIL 	,page_head=&#039;&lt;span class=&quot;ilh-page&quot;&gt;&#039; 	,page_tail=COMMON_TAIL 	,comment_head=&#039;&lt;span class=&quot;noprint…」的新頁面</title>
		<link rel="alternate" type="text/html" href="https://www.unitedbook.org/index.php?title=%E6%A8%A1%E7%B5%84:Ilh&amp;diff=12726&amp;oldid=prev"/>
		<updated>2023-11-19T10:48:35Z</updated>

		<summary type="html">&lt;p&gt;建立內容為「local ilh = {} local getArgs local yesno = require(&amp;#039;Module:Yesno&amp;#039;) local lan = require(&amp;#039;Module:Lan&amp;#039;) local langData = mw.loadData( &amp;#039;Module:Ilh/data&amp;#039; )  --local frameArgs local COMMON_TAIL=&amp;#039;&amp;lt;/span&amp;gt;&amp;#039; local MODEL={ 	 frame_head=&amp;#039;&amp;lt;span class=&amp;quot;ilh-all %s&amp;quot; data-orig-title=&amp;quot;%s&amp;quot; data-lang-code=&amp;quot;%s&amp;quot; data-lang-name=&amp;quot;%s&amp;quot; data-foreign-title=&amp;quot;%s&amp;quot;&amp;gt;&amp;#039; 	,frame_tail=COMMON_TAIL 	,page_head=&amp;#039;&amp;lt;span class=&amp;quot;ilh-page&amp;quot;&amp;gt;&amp;#039; 	,page_tail=COMMON_TAIL 	,comment_head=&amp;#039;&amp;lt;span class=&amp;quot;noprint…」的新頁面&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新頁面&lt;/b&gt;&lt;/p&gt;&lt;div&gt;local ilh = {}&lt;br /&gt;
local getArgs&lt;br /&gt;
local yesno = require(&amp;#039;Module:Yesno&amp;#039;)&lt;br /&gt;
local lan = require(&amp;#039;Module:Lan&amp;#039;)&lt;br /&gt;
local langData = mw.loadData( &amp;#039;Module:Ilh/data&amp;#039; )&lt;br /&gt;
&lt;br /&gt;
--local frameArgs&lt;br /&gt;
local COMMON_TAIL=&amp;#039;&amp;lt;/span&amp;gt;&amp;#039;&lt;br /&gt;
local MODEL={&lt;br /&gt;
	 frame_head=&amp;#039;&amp;lt;span class=&amp;quot;ilh-all %s&amp;quot; data-orig-title=&amp;quot;%s&amp;quot; data-lang-code=&amp;quot;%s&amp;quot; data-lang-name=&amp;quot;%s&amp;quot; data-foreign-title=&amp;quot;%s&amp;quot;&amp;gt;&amp;#039;&lt;br /&gt;
	,frame_tail=COMMON_TAIL&lt;br /&gt;
	,page_head=&amp;#039;&amp;lt;span class=&amp;quot;ilh-page&amp;quot;&amp;gt;&amp;#039;&lt;br /&gt;
	,page_tail=COMMON_TAIL&lt;br /&gt;
	,comment_head=&amp;#039;&amp;lt;span class=&amp;quot;noprint ilh-comment&amp;quot;&amp;gt;（&amp;#039;&lt;br /&gt;
	,comment_tail=&amp;#039;）&amp;#039;..COMMON_TAIL&lt;br /&gt;
	,lang_head=&amp;#039;&amp;lt;span class=&amp;quot;ilh-lang&amp;quot;&amp;gt;&amp;#039;&lt;br /&gt;
	,lang_tail=COMMON_TAIL&lt;br /&gt;
	,colon=&amp;#039;&amp;lt;span class=&amp;quot;ilh-colon&amp;quot;&amp;gt;：&amp;lt;/span&amp;gt;&amp;#039;&lt;br /&gt;
	,link_head=&amp;#039;&amp;lt;span class=&amp;quot;ilh-link&amp;quot;&amp;gt;&amp;#039;&lt;br /&gt;
	,link_body=&amp;#039;-{[[:%s:%s|&amp;lt;span lang=&amp;quot;%s&amp;quot; dir=&amp;quot;auto&amp;quot;&amp;gt;%s&amp;lt;/span&amp;gt;]]}-&amp;#039;&lt;br /&gt;
	,link_tail=COMMON_TAIL&lt;br /&gt;
}&lt;br /&gt;
local clazz_pageExist_framehead=&amp;#039;ilh-blue&amp;#039;&lt;br /&gt;
local TRA_CAT=&amp;#039;[[Category:有蓝链却未移除内部链接助手模板的页面]]&amp;#039;&lt;br /&gt;
&lt;br /&gt;
function ilh.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;
	local args = getArgs(frame)&lt;br /&gt;
	&lt;br /&gt;
	if langData[args[&amp;#039;lang-code&amp;#039;]] == nil then&lt;br /&gt;
		args[&amp;#039;lang&amp;#039;] = mw.language.fetchLanguageName( args[&amp;#039;lang-code&amp;#039;], mw.getContentLanguage():getCode() ) 	&lt;br /&gt;
	elseif langData[args[&amp;#039;lang-code&amp;#039;]][&amp;#039;lang-hans&amp;#039;] and langData[args[&amp;#039;lang-code&amp;#039;]][&amp;#039;lang-hans&amp;#039;] then&lt;br /&gt;
		args[&amp;#039;lang&amp;#039;] = lan._main({[&amp;#039;zh-hans&amp;#039;]=langData[args[&amp;#039;lang-code&amp;#039;]][&amp;#039;lang-hans&amp;#039;], [&amp;#039;zh-hant&amp;#039;]=langData[args[&amp;#039;lang-code&amp;#039;]][&amp;#039;lang-hant&amp;#039;]}, frame)&lt;br /&gt;
	elseif langData[args[&amp;#039;lang-code&amp;#039;]][&amp;#039;lang&amp;#039;] == nil then&lt;br /&gt;
		args[&amp;#039;lang&amp;#039;] = mw.language.fetchLanguageName( args[&amp;#039;lang-code&amp;#039;], mw.getContentLanguage():getCode() ) 	&lt;br /&gt;
	else &lt;br /&gt;
		args[&amp;#039;lang&amp;#039;] = langData[args[&amp;#039;lang-code&amp;#039;]][&amp;#039;lang&amp;#039;]&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	return ilh._ilh(args)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function ilh._ilh(args)&lt;br /&gt;
	--frameArgs = getArgs(frame, {frameOnly=true})&lt;br /&gt;
&lt;br /&gt;
	local context={}&lt;br /&gt;
	context[&amp;quot;isMainPage&amp;quot;]=ilh.isMainPage()&lt;br /&gt;
	context[&amp;quot;localPage&amp;quot;]=args[1]&lt;br /&gt;
	context[&amp;quot;foreignPage&amp;quot;]=args[2] or args[1] --如果{{{2}}}不传入的话&lt;br /&gt;
	context[&amp;quot;displayName&amp;quot;]=args[&amp;quot;d&amp;quot;] or args[1]&lt;br /&gt;
	context[&amp;quot;langCode&amp;quot;]=args[&amp;quot;lang-code&amp;quot;]&lt;br /&gt;
	context[&amp;quot;lang&amp;quot;]=args[&amp;quot;lang&amp;quot;]&lt;br /&gt;
	context[&amp;quot;nocat&amp;quot;]=yesno( args[&amp;quot;nocat&amp;quot;] , false )&lt;br /&gt;
&lt;br /&gt;
	context[&amp;quot;isExist&amp;quot;]= (args[&amp;quot;$exist$&amp;quot;] and args[&amp;quot;$exist$&amp;quot;]==1) or ilh.isExist(context[&amp;quot;localPage&amp;quot;])&lt;br /&gt;
	&lt;br /&gt;
	local curPage_obj=mw.title.getCurrentTitle()&lt;br /&gt;
	context[&amp;quot;isNoCatWithNamespace&amp;quot;]=curPage_obj:inNamespaces(2,828) --User,Module&lt;br /&gt;
	--context[&amp;quot;curPageNamespace&amp;quot;]=curPage_obj.namespace&lt;br /&gt;
&lt;br /&gt;
	return (context[&amp;quot;isMainPage&amp;quot;] and ilh.onlyLink(context)) or ilh.functionLink(context)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function ilh.onlyLink(context)&lt;br /&gt;
	return ( context[&amp;quot;isExist&amp;quot;] and mw.ustring.format( &amp;#039;[[%s|%s]]&amp;#039;, context[&amp;quot;localPage&amp;quot;], context[&amp;quot;displayName&amp;quot;] ) ) or context[&amp;quot;displayName&amp;quot;]&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function ilh.functionLink(context)&lt;br /&gt;
	context[&amp;quot;_localPage&amp;quot;]=mw.ustring.gsub(context[&amp;quot;localPage&amp;quot;],&amp;#039;&amp;quot;&amp;#039;,&amp;#039;&amp;amp;quot;&amp;#039;)&lt;br /&gt;
	context[&amp;quot;_foreignPage&amp;quot;]=mw.ustring.gsub(context[&amp;quot;foreignPage&amp;quot;],&amp;#039;&amp;quot;&amp;#039;,&amp;#039;&amp;amp;quot;&amp;#039;)&lt;br /&gt;
	local need_cat=&lt;br /&gt;
				   (not context[&amp;quot;nocat&amp;quot;])&lt;br /&gt;
				   and&lt;br /&gt;
				   (not context[&amp;quot;isNoCatWithNamespace&amp;quot;])&lt;br /&gt;
				   --[[not (&lt;br /&gt;
					   context[&amp;quot;curPageNamespace&amp;quot;]==2 --User&lt;br /&gt;
					or context[&amp;quot;curPageNamespace&amp;quot;]==828 --Module&lt;br /&gt;
				   )]]&lt;br /&gt;
	--mw.log(context[&amp;quot;nocat&amp;quot;])&lt;br /&gt;
	--mw.log(context[&amp;quot;curPageNamespace&amp;quot;])&lt;br /&gt;
	--mw.log(need_cat)&lt;br /&gt;
&lt;br /&gt;
	local output_context={}&lt;br /&gt;
	table.insert(output_context,&lt;br /&gt;
					mw.ustring.format(MODEL.frame_head ,&lt;br /&gt;
						 (context[&amp;quot;isExist&amp;quot;] and clazz_pageExist_framehead) or &amp;#039;&amp;#039;&lt;br /&gt;
						,context[&amp;quot;_localPage&amp;quot;]&lt;br /&gt;
						,context[&amp;quot;langCode&amp;quot;]&lt;br /&gt;
						,context[&amp;quot;lang&amp;quot;]&lt;br /&gt;
						,context[&amp;quot;_foreignPage&amp;quot;]&lt;br /&gt;
					)&lt;br /&gt;
				)&lt;br /&gt;
		table.insert(output_context,MODEL.page_head)&lt;br /&gt;
			table.insert(output_context,&lt;br /&gt;
							mw.ustring.format(&amp;#039;[[:%s|%s]]&amp;#039; ,&lt;br /&gt;
								context[&amp;quot;localPage&amp;quot;],context[&amp;quot;displayName&amp;quot;]&lt;br /&gt;
							)&lt;br /&gt;
						)&lt;br /&gt;
		table.insert(output_context,MODEL.page_tail)&lt;br /&gt;
		if context[&amp;quot;isExist&amp;quot;] then&lt;br /&gt;
			if need_cat then&lt;br /&gt;
				table.insert(output_context,TRA_CAT)&lt;br /&gt;
			end&lt;br /&gt;
		else&lt;br /&gt;
			table.insert(output_context,MODEL.comment_head)&lt;br /&gt;
				table.insert(output_context,MODEL.lang_head)&lt;br /&gt;
					table.insert(output_context,context[&amp;quot;lang&amp;quot;])&lt;br /&gt;
				table.insert(output_context,MODEL.lang_tail)&lt;br /&gt;
&lt;br /&gt;
				table.insert(output_context,MODEL.colon)&lt;br /&gt;
&lt;br /&gt;
				table.insert(output_context,MODEL.link_head)&lt;br /&gt;
					table.insert(output_context,&lt;br /&gt;
									mw.ustring.format(MODEL.link_body,&lt;br /&gt;
										 context[&amp;quot;langCode&amp;quot;]&lt;br /&gt;
										,(context[&amp;quot;foreignPage&amp;quot;] or context[&amp;quot;localPage&amp;quot;])&lt;br /&gt;
										,context[&amp;quot;langCode&amp;quot;]&lt;br /&gt;
										,(context[&amp;quot;foreignPage&amp;quot;] or context[&amp;quot;localPage&amp;quot;])&lt;br /&gt;
									)&lt;br /&gt;
								)&lt;br /&gt;
				table.insert(output_context,MODEL.link_tail)&lt;br /&gt;
			table.insert(output_context,MODEL.comment_tail)&lt;br /&gt;
		end&lt;br /&gt;
	table.insert(output_context,MODEL.frame_tail)&lt;br /&gt;
&lt;br /&gt;
	return table.concat(output_context,&amp;quot;&amp;quot;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--以下需要更高效的实现&lt;br /&gt;
&lt;br /&gt;
--确定主页&lt;br /&gt;
--使用mw信息获得主页名&lt;br /&gt;
--使用language库获得本站默认语言代码（zh）来确定信息的对应语言，获得全主页名&lt;br /&gt;
---因为其他zh分语言只有名，没有命名空间，可以识别出来，但麻烦&lt;br /&gt;
--然后判断当前页和主页是否一致&lt;br /&gt;
---计划做重定向判断，但没需要&lt;br /&gt;
function ilh.isMainPage()&lt;br /&gt;
	local mainpage_msgobj=mw.message.new(&amp;#039;Mainpage&amp;#039;)&lt;br /&gt;
	mainpage_msgobj=mainpage_msgobj:inLanguage(mw.getContentLanguage():getCode())&lt;br /&gt;
	local mainPage_obj=mw.title.makeTitle(0,mainpage_msgobj:plain())&lt;br /&gt;
	local curpage_obj=mw.title.getCurrentTitle()&lt;br /&gt;
	--local curpage_redirectFrom_obj=curpage_obj.redirectTarget&lt;br /&gt;
	--[[if curpage_redirectFrom_obj ~=false then&lt;br /&gt;
		curpage_obj=curpage_redirectFrom_obj&lt;br /&gt;
	end]]&lt;br /&gt;
	return mw.title.equals(mainPage_obj,curpage_obj) --and curpage_obj.namespace==4&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--确定页面存在&lt;br /&gt;
---exists是高开销方法，需要更高效的实现&lt;br /&gt;
--带保护的包装方法&lt;br /&gt;
--由于exists和解析器函数ifexist都是高开销方法&lt;br /&gt;
--而ifexist达到限制时默认返回结果为false的操作&lt;br /&gt;
--而exists会直接抛出错误而中断执行&lt;br /&gt;
--所以将相应调用包裹，压制exists的抛错，按照ifexist的理念，返回false&lt;br /&gt;
--正常情况下则一切正常&lt;br /&gt;
function ilh.isExist(pageName)&lt;br /&gt;
	local execStatus,result=pcall(ilh._isExist,pageName)&lt;br /&gt;
	&lt;br /&gt;
	if execStatus then&lt;br /&gt;
		return result&lt;br /&gt;
	else&lt;br /&gt;
		return false&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
--真实方法&lt;br /&gt;
function ilh._isExist(pageName)&lt;br /&gt;
	local localPage_obj=mw.title.makeTitle(0,pageName)&lt;br /&gt;
	return localPage_obj.exists&lt;br /&gt;
end&lt;br /&gt;
--end&lt;br /&gt;
&lt;br /&gt;
return ilh&lt;/div&gt;</summary>
		<author><name>DC</name></author>
	</entry>
</feed>