<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="zh-Hans-CN">
	<id>https://wiki.juanweixianshe.com/index.php?action=history&amp;feed=atom&amp;title=%E6%A8%A1%E5%9D%97%3ANamespace_pagename</id>
	<title>模块:Namespace pagename - 版本历史</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.juanweixianshe.com/index.php?action=history&amp;feed=atom&amp;title=%E6%A8%A1%E5%9D%97%3ANamespace_pagename"/>
	<link rel="alternate" type="text/html" href="https://wiki.juanweixianshe.com/index.php?title=%E6%A8%A1%E5%9D%97:Namespace_pagename&amp;action=history"/>
	<updated>2026-04-11T15:28:21Z</updated>
	<subtitle>本wiki的该页面的版本历史</subtitle>
	<generator>MediaWiki 1.36.1</generator>
	<entry>
		<id>https://wiki.juanweixianshe.com/index.php?title=%E6%A8%A1%E5%9D%97:Namespace_pagename&amp;diff=116&amp;oldid=prev</id>
		<title>黯狐：导入1个版本</title>
		<link rel="alternate" type="text/html" href="https://wiki.juanweixianshe.com/index.php?title=%E6%A8%A1%E5%9D%97:Namespace_pagename&amp;diff=116&amp;oldid=prev"/>
		<updated>2021-08-04T08:54:13Z</updated>

		<summary type="html">&lt;p&gt;导入1个版本&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新页面&lt;/b&gt;&lt;/p&gt;&lt;div&gt;local p = {}&lt;br /&gt;
local yesno = require('Module:Yesno')&lt;br /&gt;
local mError = require('Module:Error')&lt;br /&gt;
local mNS = require('Module:Namespace')&lt;br /&gt;
local data = mw.loadData('Module:Namespace_pagename/data')&lt;br /&gt;
&lt;br /&gt;
local lan = mNS._lan&lt;br /&gt;
&lt;br /&gt;
local function getNSbyID (key, lang) &lt;br /&gt;
	return mNS._NamespacesDisplay({lang, key})&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function msg (group, key, lang) &lt;br /&gt;
	return lan(data[tostring(group)][tostring(key)] or {}, lang)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function Error (msg, arg)&lt;br /&gt;
	return mError.error{'[[Module:Namespace_pagename]]錯誤：' + msg:gsub('$1', arg)}&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function inArray (str, arr)&lt;br /&gt;
	for i, v in ipairs(arr) do&lt;br /&gt;
		if str == v then&lt;br /&gt;
			return v&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	return nil&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local no_need_suffix = {-2, 0, 14, 100, 118, 119, 2300, 2600}&lt;br /&gt;
&lt;br /&gt;
local can_add_extend_suffix = {2, 10, 828}&lt;br /&gt;
	&lt;br /&gt;
local function def_suffix (ns, lang)&lt;br /&gt;
	if ns == -1 then&lt;br /&gt;
		return lan({&lt;br /&gt;
			['en'] = ' page',&lt;br /&gt;
			['zh-hans'] = '页面',&lt;br /&gt;
			['zh-hant'] = '頁面'&lt;br /&gt;
		}, lang)&lt;br /&gt;
	elseif ns == 2 then&lt;br /&gt;
		return lan({&lt;br /&gt;
			['en'] = ' page',&lt;br /&gt;
			['zh-hans'] = '页',&lt;br /&gt;
			['zh-hant'] = '頁',&lt;br /&gt;
			['zh-tw'] = '頁面' -- 使用者頁面&lt;br /&gt;
		}, lang)&lt;br /&gt;
	elseif inArray(ns, {-2, 0, 6, 10, 14, 100, 102, 118, 828, 2300}) then&lt;br /&gt;
		return ''&lt;br /&gt;
	else&lt;br /&gt;
		return lan({&lt;br /&gt;
			['en'] = ' page',&lt;br /&gt;
			['zh-hans'] = '页',&lt;br /&gt;
			['zh-hant'] = '頁'&lt;br /&gt;
		}, lang)&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
p._ispseudo = mNS._ispseudo&lt;br /&gt;
p.ispseudo = mNS.ispseudo&lt;br /&gt;
&lt;br /&gt;
function p._main (args)&lt;br /&gt;
	local lang = args[1]&lt;br /&gt;
	local title&lt;br /&gt;
	local nsid&lt;br /&gt;
	local isCallFromNs = false&lt;br /&gt;
	local arg = args[2]&lt;br /&gt;
	if arg then&lt;br /&gt;
		if arg == '' then&lt;br /&gt;
			return getNSbyID(0, lang)&lt;br /&gt;
		elseif arg:match('([Pp]age):') then -- 兼容：早期版本&lt;br /&gt;
			arg = arg:gsub('[Pp]age:', '')&lt;br /&gt;
			title = mw.title.new(arg)&lt;br /&gt;
			if not title then&lt;br /&gt;
				return Error(msg('Error', 'pg-error', lang), arg)&lt;br /&gt;
			end&lt;br /&gt;
			nsid = title.namespace&lt;br /&gt;
		elseif arg:match('([Nn]ame):') then -- 兼容：早期版本&lt;br /&gt;
			title = nil&lt;br /&gt;
			arg = arg:gsub('([Nn]ame):', '')&lt;br /&gt;
			nsid_info = mw.site.namespaces[tonumber(arg)] or mw.site.namespaces[arg]&lt;br /&gt;
			if mw.text.split(arg, ':')[2] and not nsid_info and not p._ispseudo(arg) then&lt;br /&gt;
				return Error(msg('Error', 'ns-error', lang), arg)&lt;br /&gt;
			end&lt;br /&gt;
			nsid = nsid_info and nsid_info.id&lt;br /&gt;
			isCallFromNs = true&lt;br /&gt;
		else&lt;br /&gt;
			local arg_title = mw.title.new(arg)&lt;br /&gt;
			local arg_ns = mw.site.namespaces[tonumber(arg)] or mw.site.namespaces[arg]&lt;br /&gt;
			if not arg_title then -- args2 無法被mediawiki正確解析&lt;br /&gt;
				return Error(msg('Error', 'pg-error', lang), arg)&lt;br /&gt;
			elseif arg_ns then -- args2 是{{ns:}}能解析的&lt;br /&gt;
				title = nil&lt;br /&gt;
				nsid = arg_ns.id&lt;br /&gt;
				isCallFromNs = true&lt;br /&gt;
			else -- 其他正常標題，無效的命名空間也被當條目處理&lt;br /&gt;
				title = arg_title&lt;br /&gt;
				nsid = arg_title.namespace&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	else -- 以標題讀取&lt;br /&gt;
		arg = mw.title.getCurrentTitle().fullText&lt;br /&gt;
		title = mw.title.getCurrentTitle()&lt;br /&gt;
		nsid = title.namespace&lt;br /&gt;
	end&lt;br /&gt;
	if p._ispseudo(arg) then --偽命名空間&lt;br /&gt;
		return getNSbyID((nsid == 1 and 'Talk:' .. p._ispseudo(arg) or p._ispseudo(arg)), lang)&lt;br /&gt;
	end&lt;br /&gt;
	if title and title.isExternal then&lt;br /&gt;
		return msg('Type', 'External', lang)&lt;br /&gt;
	end&lt;br /&gt;
	local statue, wt = pcall(getNSbyID, nsid, lang)&lt;br /&gt;
	if not statue then&lt;br /&gt;
		return Error(msg('Error', 'ns-error', lang), 'namespace number = ' .. nsid)&lt;br /&gt;
	end&lt;br /&gt;
	if not isCallFromNs then&lt;br /&gt;
		if title then&lt;br /&gt;
			local content = title:getContent() or ''&lt;br /&gt;
			local contentModel = title.contentModel&lt;br /&gt;
			local titletext = title.fullText&lt;br /&gt;
			local subtext = title.subpageText&lt;br /&gt;
			if contentModel == 'css' or contentModel == 'sanitized-css' then&lt;br /&gt;
				return wt .. msg('Type', 'style', lang)&lt;br /&gt;
			elseif contentModel == 'javascript' then&lt;br /&gt;
				return wt .. msg('Type', 'script', lang)&lt;br /&gt;
			elseif contentModel == 'json' then&lt;br /&gt;
				return wt .. msg('Type', 'JSON', lang)&lt;br /&gt;
			elseif contentModel == 'json' then&lt;br /&gt;
				return wt .. msg('Type', 'JSON', lang)&lt;br /&gt;
			elseif title.isRedirect then&lt;br /&gt;
				return wt .. msg('Type', 'redirect', lang)&lt;br /&gt;
			end&lt;br /&gt;
			if not inArray(nsid, no_need_suffix) then&lt;br /&gt;
				return wt&lt;br /&gt;
			end&lt;br /&gt;
			if &lt;br /&gt;
				(&lt;br /&gt;
					content:match('%{%{[Dd]ocumentation[_%s]subpage')&lt;br /&gt;
					or content:match('%{%{[Tt]emplate[_%s]doc[_%s]inline')&lt;br /&gt;
					or content:match('%{%{[Tt]emplate[_%s]doc[_%s]viewed[_%s]directly')&lt;br /&gt;
					or subtext:match('^[Dd]oc$')&lt;br /&gt;
				) and inArray(nsid, can_add_extend_suffix)&lt;br /&gt;
			then&lt;br /&gt;
				return wt .. msg('Type', 'doc', lang)&lt;br /&gt;
			elseif &lt;br /&gt;
				content:match('%{%{[Ss]andbox')&lt;br /&gt;
				or content:match('%{%{[Tt]emplate[_%s]sandbox[_%s]notice')&lt;br /&gt;
				or content:match('%{%{請注意：請在這行文字底下進行您的測試，請不要刪除或變更這行文字以及這行文字以上的部份。')&lt;br /&gt;
				or content:match('%{%{请注意：请在这行文字底下进行您的测试，请不要删除或变更这行文字以及这行文字以上的部分。')&lt;br /&gt;
				or content:match('%{%{[Pp]D%-self%/沙盒%|')&lt;br /&gt;
				or nsid &amp;gt; 1 and titletext:gsub('^[A-z][a-z]+%:', '') == '沙盒'&lt;br /&gt;
				or titletext:match('^File%:沙盒%.[A-Za-z]+$')&lt;br /&gt;
				or titletext:match('^Template%:沙盒%/')&lt;br /&gt;
				or titletext:match('^Template%:X%d')&lt;br /&gt;
				or (&lt;br /&gt;
					(&lt;br /&gt;
						subtext:match('^[Ss]andbox$')&lt;br /&gt;
						or subtext == '沙盒'&lt;br /&gt;
					)&lt;br /&gt;
					and inArray(nsid, can_add_extend_suffix)&lt;br /&gt;
				)&lt;br /&gt;
			then&lt;br /&gt;
				return wt .. msg('Type', 'sandbox', lang)&lt;br /&gt;
			elseif &lt;br /&gt;
				(&lt;br /&gt;
					content:match('%{%{[Tt]emplate[_%s]testcases[_%s]notice')&lt;br /&gt;
					or content:match('%{%{[Tt]est[_%s]cases[_%s]notice')&lt;br /&gt;
					or content:match('%{%{测试样例')&lt;br /&gt;
					or content:match('%{%{測試樣例')&lt;br /&gt;
					or subtext:match('^[Tt]estcases$')&lt;br /&gt;
					or subtext == '测试样例'&lt;br /&gt;
					or subtext == '測試樣例'&lt;br /&gt;
				)&lt;br /&gt;
				and inArray(nsid, can_add_extend_suffix)&lt;br /&gt;
			then&lt;br /&gt;
				return wt .. msg('Type', 'testcases', lang)&lt;br /&gt;
			elseif &lt;br /&gt;
				(&lt;br /&gt;
					titletext:match('%/[Tt]emp$')&lt;br /&gt;
					or titletext:match('%/[Tt]emporary$')&lt;br /&gt;
				)&lt;br /&gt;
				and inArray(nsid, {2, 4, 10, 118, 828})&lt;br /&gt;
			then&lt;br /&gt;
				return wt .. msg('Type', 'temp', lang)&lt;br /&gt;
			elseif&lt;br /&gt;
				nsid == 10&lt;br /&gt;
				and (&lt;br /&gt;
					subtext:match('^[Ii]ntro$')&lt;br /&gt;
					or subtext:match('^[Ii]ntroduction$')&lt;br /&gt;
					or subtext == '说明'&lt;br /&gt;
					or subtext == '說明'&lt;br /&gt;
				)&lt;br /&gt;
			then&lt;br /&gt;
				return wt .. msg('Type', 'intro', lang)&lt;br /&gt;
			elseif&lt;br /&gt;
				titletext:match('^Template%:Editnotices%/')&lt;br /&gt;
				or titletext:match('^User%:[^/]+%/Editnotice$')&lt;br /&gt;
				or titletext:match('^User[_%s]talk%:[^/]+%/Editnotice$')&lt;br /&gt;
			then&lt;br /&gt;
				return msg('Type', 'editnotice', lang)&lt;br /&gt;
			elseif&lt;br /&gt;
				titletext:match('^User%:[^/]+%/Emailnotice$')&lt;br /&gt;
			then&lt;br /&gt;
				local user = titletext:gsub('^User%:([^/]+)%/Emailnotice$', '%1')&lt;br /&gt;
				return '[[User:' .. user .. '|' .. user .. ']]' .. lan({&lt;br /&gt;
					['en'] = &amp;quot;'s &amp;quot;,&lt;br /&gt;
					['zh-hans'] = '的',&lt;br /&gt;
					['zh-hant'] = '的'&lt;br /&gt;
				}, lang) .. msg('Type', 'mailnotice', lang)&lt;br /&gt;
			elseif&lt;br /&gt;
				titletext:match('{{捷徑重定向([^}]+)}}')&lt;br /&gt;
				or titletext:match('{{捷径重定向([^}]+)}}')&lt;br /&gt;
				or titletext:match('{{快捷重定向([^}]+)}}')&lt;br /&gt;
				or titletext:match('{{快捷方式重定向([^}]+)}}')&lt;br /&gt;
				or titletext:match('{{RTL([^}]+)%|捷徑')&lt;br /&gt;
			then&lt;br /&gt;
				return string.format(msg('Type', 'shortcut', lang), wt)&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
		wt = (wt .. (inArray(nsid, no_need_suffix) and def_suffix(nsid, lang) or '')):gsub('talk page', 'talkpage')&lt;br /&gt;
	end&lt;br /&gt;
	return wt&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.main (frame) &lt;br /&gt;
	local args = require('Module:Arguments').getArgs(frame, {&lt;br /&gt;
		valueFunc = function (key, value)&lt;br /&gt;
			if key == 2 then&lt;br /&gt;
				return type(value) == 'string' and mw.text.trim(value) or value&lt;br /&gt;
			elseif value then&lt;br /&gt;
				value = mw.text.trim(value)&lt;br /&gt;
				if value ~= '' then&lt;br /&gt;
					return value&lt;br /&gt;
				end&lt;br /&gt;
			end&lt;br /&gt;
			return nil&lt;br /&gt;
		end&lt;br /&gt;
	})&lt;br /&gt;
	return p._main(args)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>黯狐</name></author>
	</entry>
</feed>