Mô đun:Redirect template

require('strict')

local p = {}

-- key is beginning of arg name. value is table with namespace number and link
-- alternatively, a function taking the namespace number and returning a validity
-- can be used
local namespaceCategories = {
	all = { function() return true end },
	main = { 0, '[[Wikipedia:Bài bách khoa là gì?|chính]]' },
	help = { 12, '[[Wikipedia:Không gian tên trợ giúp|trợ giúp]]' },
	portal = { 100, '[[Wikipedia:Cổng thông tin|cổng thông tin]]' },
	talk = { function(n) return n > 0 and n%2 == 1 end, '[[Trợ giúp:Trang thảo luận|thảo luận]]' },
	template = { 10, '[[Wikipedia:Không gian tên bản mẫu|bản mẫu]]' },
	wikipedia = { 4, '[[Wikipedia:Không gian tên dự án|dự án Wikipedia]]' },
	category = { 14, '[[Wikipedia:Thể loại|thể loại]]' },
	user = { 2, '[[Wikipedia:Trang cá nhân|thành viên]]' },
}

-- remove whitespaces from beginning and end of args
local function valueFunc(key, val)
	if type(val) == 'string' then
		val = val:match('^%s*(.-)%s*$')
		if val == '' then
			return nil
		end
	end
	return val
end

local function getPrettyName(args)
	for k in pairs(namespaceCategories) do
		if args[k .. ' category'] then
			return string.format("'''[[:Category:%s|%s]]''': ", args[k .. ' category'], args.name)
		end
	end
	return string.format("'''%s''': ", args.name)
end

function p.main(frame)
	local args = require('Module:Arguments').getArgs(frame, {wrappers = 'Template:Redirect template', valueFunc = valueFunc})
	local namespace = mw.title.getCurrentTitle().namespace

	--- XXX: this is a HORRIBLE HACK. kill it with fire as soon as https://bugzilla.wikimedia.org/show_bug.cgi?id=12974 is fixed
	local beCompatibleWithBug12974 = args.info and (args.info:find('^[:;#*]', 1) == 1 or args.info:find('{|', 1, true) == 1) and '\n' or ' '
	
	local content = string.format('\n<div class="rcat %s">\n*%sTrang này là trang đổi hướng%s%s.%s%s\n</div>',
		args.id and ('rcat-' .. string.gsub(args.id, ' ', '_')) or '',
		args.name and getPrettyName(args) or '',
		args.from and (' từ ' .. args.from) or '',
		args.to and (' đến ' .. args.to) or '',
		args.info and beCompatibleWithBug12974 or '',
		args.info or ''
	)
	
	for k,v in pairs(namespaceCategories) do
		if args[k .. ' category'] then
			if type(v[1]) == 'function' and v[1](namespace) or v[1] == namespace then
				if args.sortkey then
					content = content .. string.format('[[Category:%s|%s]]', args[k .. ' category'], args.sortkey)
					else
						content = content .. string.format('[[Category:%s]]', args[k .. ' category'])
				end
			elseif args['other category'] then
				if args.sortkey then
					content = content .. string.format('[[Category:%s|%s]]', args['other category'], args.sortkey)
					else
						content = content .. string.format('[[Category:%s]]', args['other category'])
				end
			else
				content = content .. frame:expandTemplate{title = 'Bản mẫu đổi hướng không đúng', args = {v[2]}}
			end
		end
	end

	if namespace == 0 then
		local yesno = require('Module:Yesno')
		if yesno(args.printworthy) == true then
			return content .. '[[Thể loại:Trang đổi hướng có in]]'
		elseif yesno(args.printworthy) == false then
			return content .. '[[Thể loại:Trang đổi hướng không cần in]]'
		end
	end
	return content
end

return p
Chúng tôi bán
Bài viết liên quan
Đánh giá sơ bộ chung về giá trị của Cyno / Ayaka / Shenhe
Đánh giá sơ bộ chung về giá trị của Cyno / Ayaka / Shenhe
Shenhe hiện tại thiên về là một support dành riêng cho Ayaka hơn là một support hệ Băng. Nếu có Ayaka, hãy roll Shenhe. Nếu không có Ayaka, hãy cân nhắc thật kĩ trước khi roll
Nhân vật Solution Epsilon - Overlord
Nhân vật Solution Epsilon - Overlord
Solution Epsilon (ソ リ ュ シ ャ ン ・ イ プ シ ロ ン, Solution ・ Ε) là một người hầu chiến đấu chất nhờn và là thành viên của "Pleiades Six Stars," đội chiến hầu của Lăng mộ vĩ đại Nazarick. Cô ấy được tạo ra bởi Herohero
Giả thuyết về tên, cung mệnh của 11 quan chấp hành Fatui và Băng thần Tsaritsa
Giả thuyết về tên, cung mệnh của 11 quan chấp hành Fatui và Băng thần Tsaritsa
Tên của 11 Quan Chấp hành Fatui được lấy cảm hứng từ Commedia Dell’arte, hay còn được biết đến với tên gọi Hài kịch Ý, là một loại hình nghệ thuật sân khấu rất được ưa chuộng ở châu
[Review sách] Đứa con đi hoang trở về: Khi tự do chỉ là lối thoát trong tâm tưởng
[Review sách] Đứa con đi hoang trở về: Khi tự do chỉ là lối thoát trong tâm tưởng
Có bao giờ cậu tự hỏi, vì sao con người ta cứ đâm đầu làm một việc, bất chấp những lời cảnh báo, những tấm gương thất bại trước đó?