This documentation is transcluded from 模块:Main/doc. Changes can be proposed in the talk page.
This template is imported from 模块:Main on Wikipedia.
This template is imported from the English Wikipedia. Although the visual appearance might be different, the functionality is identical. Please refer to the 模块:Main page on Wikipedia for detailed documentation.
Module:Main produces a link to a main article or articles. It implements the {{main}}
template. Normally, it produces a link like "Main article: A". If used in the category namespace, it produces a link like "The main article for this category is A". It is possible to specify multiple articles, and in this case plural wording is used automatically. If the first link is not an article, the module uses the wording "Main page" instead of "Main article". See Module:Main on Wikipedia for more details.
--[[ -- This module produces a link to a main article or articles. It implements the -- template {{main}}. -- -- If the module is used in category or category talk space, it produces "The -- 首要文章 for this category is xxx". Otherwise, it produces -- "首要文章: xxx". --]] local mHatnote = require('Module:Hatnote') local mHatlist = require('Module:Hatnote list') local mArguments -- lazily initialise local p = {} function p.main(frame) mArguments = require('Module:Arguments') local args = mArguments.getArgs(frame, {parentOnly = true}) local pages = {} for k, v in pairs(args) do if type(k) == 'number' then local display = args['label ' .. k] or args['l' .. k] local page = display and string.format('%s|%s', string.gsub(v, '|.*$', ''), display) or v pages[#pages + 1] = page end end if #pages == 0 and mw.title.getCurrentTitle().namespace == 0 then return mHatnote.makeWikitextError( 'no page names specified', 'Template:Main#Errors', args.category ) end local options = { selfref = args.selfref } return p._main(pages, options) end function p._main(args, options) -- Get the list of pages. If no first page was specified we use the current -- page name. local currentTitle = mw.title.getCurrentTitle() if #args == 0 then args = {currentTitle.text} end local firstPage = string.gsub(args[1], '|.*$', '') -- Find the pagetype. local pageType = mHatnote.findNamespaceId(firstPage) == 0 and '文章' or '页面' -- Make the formatted link text list = mHatlist.andList(args, true) -- Build the text. local isPlural = #args > 1 local mainForm local curNs = currentTitle.namespace if (curNs == 14) or (curNs == 15) then --category/talk namespaces mainForm = isPlural and 'The main %ss for this [[Help:Categories|category]] are %s' or 'The main %s for this [[Help:Categories|category]] is %s' else mainForm = isPlural and '相关%ss: %s' or '相关%s: %s' end local text = string.format(mainForm, pageType, list) -- Process the options and pass the text to the _rellink function in -- [[Module:Hatnote]]. options = options or {} local hnOptions = { selfref = options.selfref } return mHatnote._hatnote(text, hnOptions) end return p