词条 | Module:Main/sandbox |
释义 | --[[-- 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-- main article for this category is xxx". Otherwise, it produces-- "Main article: xxx".--]] local mHatnote = require('Module:Hatnote') local mHatlist = require('Module:Hatnote list') local mArguments -- lazily initialize local mLabelledListHatnote = require('Module:Labelled list hatnote') local p = {} local defaults = { articleTypeListLabels = {'Main article', 'Main articles'}, otherTypeListLabels = {'Main page', 'Main pages'}, articleTypeLabels = {'article', 'articles'}, otherTypeLabels = {'page', 'pages'}, catMainForms = { 'The main %s for this category is %s', 'The main %s for this category are %s' }, templatePage = 'Template:Main' } function p.main(frame) mArguments = require('Module:Arguments') local args = mArguments.getArgs(frame, {parentOnly = true}) local pages = mLabelledListHatnote.preprocessDisplays(args) local options = { selfref = args.selfref, template = defaults.templatePage } local ns = mw.title.getCurrentTitle().namespace local outputFunc = ((ns == 14) or (ns == 15)) and p._cat_main or p._main return outputFunc(pages, options) end function p._main(pages, options) local firstPage = string.gsub(pages[1], '|.*$', ) local pageTypeLabels = mHatnote.findNamespaceId(firstPage) == 0 and defaults.articleTypeListLabels or defaults.otherTypeListLabels return mLabelledListHatnote._labelledList(pages, pageTypeLabels, options) end function p._cat_main(pages, options) -- If no first page was specified we default to the current page name. if #pages == 0 then pages = {mw.title.getCurrentTitle().text} end -- Get the pagetype label. local isPlural = #pages > 1 local firstPage = string.gsub(pages[1], '|.*$', ) local pageTypeLabels = mHatnote.findNamespaceId(firstPage) == 0 and defaults.articleTypeLabels or defaults.otherTypeLabels local pageTypeLabel = isPlural and pageTypeLabels[2] or pageTypeLabels[1] -- Build the text. local mainForm = isPlural and defaults.catMainForms[2] or defaults.catMainForms[1] local text = string.format( mainForm, pageTypeLabel, mHatlist.andList(pages, true) ) -- Process the options and output a hatnote options = options or {} local hnOptions = {selfref = options.selfref} return mHatnote._hatnote(text, hnOptions) end return p |
随便看 |
|
开放百科全书收录14589846条英语、德语、日语等多语种百科知识,基本涵盖了大多数领域的百科知识,是一部内容自由、开放的电子版国际百科全书。