Bước tới nội dung

Mô đun:Cat main

Trang mô đun bị khóa vô hạn
Bách khoa toàn thư mở Wikipedia
-- This module implements {{cat main}}.local mHatnote = require('Module:Hatnote')local mFormatLink = require('Module:Format link')local yesno = require('Module:Yesno')local mTableTools -- lazily initialiselocal mArguments -- lazily initialiselocal 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))endfunction 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)endreturn p