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
1-In-60 Rule: Quy Luật Giúp Bạn Luôn Tập Trung Vào Mục Tiêu Của Mình
1-In-60 Rule: Quy Luật Giúp Bạn Luôn Tập Trung Vào Mục Tiêu Của Mình
Quy luật "1-In-60 Rule" có nguồn gốc từ ngành hàng không.
Sơn mài - hình thức nghệ thuật đắt giá của Việt Nam
Sơn mài - hình thức nghệ thuật đắt giá của Việt Nam
Sơn mài là một hình thức tranh sơn phết truyền thống của Việt Nam được tạo ra từ một loại sơn độc được thu hoạch từ một vùng xa xôi của đất nước
Nhân vật Awakened Horizon - Counter Side
Nhân vật Awakened Horizon - Counter Side
Awakened Horizon là nhân viên cơ khí được đánh thức thứ hai được thêm vào trò chơi và cũng là đơn vị Không quân được đánh thức thứ hai.
Tổng hợp các thông tin về Thủy Quốc - Fontaine
Tổng hợp các thông tin về Thủy Quốc - Fontaine
Dưới đây là tổng hợp các thông tin chúng ta đã biết về Fontaine - Thủy Quốc qua các sự kiện, nhiệm vụ và lời kể của các nhân vật trong game.