Mô đun:Cat main

-- This module implements {{cat main}}.

local mHatnote = require('Module:Hatnote')
local mFormatLink = require('Module:Format link')
local yesno = require('Module:Yesno')
local mTableTools -- lazily initialise
local mArguments -- lazily initialise

local p = {}

function p.catMain(frame)
	mTableTools = require('Module:TableTools')
	mArguments = require('Module:Arguments')
	local args = mArguments.getArgs(frame, {wrappers = 'Bản mẫu:Bài chính thể loại'})
	local pages = mTableTools.compressSparseArray(args)
	local options = {
		article = args.article,
		selfref = args.selfref
	}
	return p._catMain(options, unpack(pages))
end

function p._catMain(options, ...)
	options = options or {}

	-- Get the links table.
	local links = mFormatLink.formatPages({}, {...})
	if not links[1] then
		local page = mw.title.getCurrentTitle().text
		links[1] = mFormatLink._formatLink{link = page}
	end
	for i, link in ipairs(links) do
		links[i] = string.format("'''%s'''", link)
	end

	-- Get the pagetype.
	local pages = {...}
	local pagetype 
	
	if options.article ~= nil then
		pagetype = yesno(options.article) ~= false and 'Bài viết' or 'Trang'
	elseif pages and pages[1] then
		local page = pages[1]:gsub("|.*","")
		pagetype = mw.title.new(page).namespace == 0 and "Bài viết" or "Trang"
	else
		pagetype = "Bài viết"
	end

	-- Work out whether we need to be singular or plural.
	local stringToFormat
	if #links > 1 then
		stringToFormat = '%s chính của [[Wikipedia:Thể loại|thể loại]] này là %s.'
	else
		stringToFormat = '%s chính của [[Wikipedia:Thể loại|thể loại]] này là %s.'
	end

	-- Get the text.
	local text = string.format(
		stringToFormat,
		pagetype,
		mw.text.listToText(links)
	)
	
	-- Pass it through to Module:Hatnote.
	local hnOptions = {}
	hnOptions.selfref = options.selfref

	return mHatnote._hatnote(text, hnOptions)
end

return p
Chúng tôi bán
Bài viết liên quan
Giải thích các danh hiệu trong Tensei shitara Slime Datta Ken
Giải thích các danh hiệu trong Tensei shitara Slime Datta Ken
Tổng hợp một số danh hiệu "Vương" trong Tensura
Cốt truyện của Drakengard - Nier - NieR: Automata. Phần 1: Drakengard 3
Cốt truyện của Drakengard - Nier - NieR: Automata. Phần 1: Drakengard 3
Thoạt nhìn thì người ta sẽ chẳng thấy có sự liên kết nào giữa Drakengard, Nier và NieR: Automata cả
Hướng dẫn du hí tại Đài Loan
Hướng dẫn du hí tại Đài Loan
Trước tiên tôi sẽ thu thập các món ăn ngon nổi tiếng ở Đài Loan và địa điểm sẽ ăn chúng
Nhân vật Paimon trong Genshin Impact
Nhân vật Paimon trong Genshin Impact
Paimon là một pé đồng hành siêu dễ thương cùng main chính tham gia phiêu lưu trong thế giới Genshin Impart