跳转到内容

模組:存檔至

维基百科,自由的百科全书

这是本页的一个历史版本,由Xiplus留言 | 贡献2021年8月15日 (日) 01:46编辑。这可能和当前版本存在着巨大的差异。

local p = {}

local showError = require('Module:Error').error

function checkIsTalkPage(page)
	if page.isRedirect then
		return showError({[1]= "(錯誤:參數值<code>".. page.prefixedText .."</code>是個重新導向)" })
	end
	if page.namespace % 2 == 1 then
		return ''
	end
	if page.namespace == 4 then
		if page.isSubpage then
			if page.rootText == '格式手冊' or page.rootText == '格式手册' then
				return showError({[1]= "(錯誤:參數值<code>".. page.prefixedText .."</code>非應存檔討論頁)" })
			end
			if page.subpageText == '条目指引' or page.subpageText == '條目指引' then
				return showError({[1]= "(錯誤:參數值<code>".. page.prefixedText .."</code>非應存檔討論頁)" })
			end
		else
			return showError({[1]= "(錯誤:參數值<code>".. page.prefixedText .."</code>非應存檔討論頁)" })
		end
	else
		return showError({[1]= "(錯誤:參數值<code>".. page.prefixedText .."</code>非討論頁)" })
	end
	return ''
end

function p._core(title)
	local page = mw.title.new( title )
	local code = ''
	if page ~= nil then
		mw.log(page.prefixedText)
		mw.log(page.namespace)
		local errMsg = checkIsTalkPage(page)
		code = "'''[["..title.."]]'''"
		if errMsg ~= '' then
			code = code .. errMsg
		else
		end
	else
		return nil
	end
	return code
end

function p._main(args)
	local targets = {}
	local i = 1
	while i <= 10 do
		if args[i] ~= nil then
			table.insert(targets, p._core(args[i]))
		end
		i = i + 1
	end

	local code = '<p class="notice metadata" id="spoiler" style="font-size: small">本主題或以下段落文字,在討論結束後'
	if #targets > 0 then
		code = code .. "應'''存檔'''至" .. mw.text.listToText(targets, '、')
	else
		code = code .. "'''不存檔'''"
	end
	return code
end

function p.main(frame)
    return p._main( frame:getParent().args )
end

return p