请输入您要查询的百科知识:

 

词条 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条英语、德语、日语等多语种百科知识,基本涵盖了大多数领域的百科知识,是一部内容自由、开放的电子版国际百科全书。

 

Copyright © 2023 OENC.NET All Rights Reserved
京ICP备2021023879号 更新时间:2024/11/13 17:57:53