模組:內文

模組解
--[[-- 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 initialiselocal p = {}function p.main(frame)mArguments = require('Module:Arguments')local args = mArguments.getArgs(frame, {parentOnly = true})local pages = {}for k, v in pairs(args) doif type(k) == 'number' thenlocal display = args['label ' .. k] or args['l' .. k]local page = display andstring.format('%s|%s', string.gsub(v, '|.*$', ''), display) or vpages[#pages + 1] = pageendendif #pages == 0 and mw.title.getCurrentTitle().namespace == 0 then-- 本地化注意return mHatnote.makeWikitextError('冇提供文章名','Template:Main#錯誤',args.category)endlocal options = {selfref = args.selfref}return p._main(pages, options)endfunction 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} endlocal firstPage = string.gsub(args[1], '|.*$', '')-- Find the pagetype.-- 本地化注意local pageType = mHatnote.findNamespaceId(firstPage) == 0 and '文' or '頁'-- Make the formatted link textlist = mHatlist.andList(args, true)-- Build the text.local isPlural = #args > 1local mainFormlocal curNs = currentTitle.namespace-- 本地化注意if (curNs == 14) or (curNs == 15) then --category/talk namespacesmainForm = '呢[[Wikipedia:分類|類]]嘅主%s係%s。'elsemainForm = '内%s:%s'endlocal 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)endreturn p