labelled List Hatnote

Documentation for this module may be created at Module:Labelled list hatnote/doc

-------------------------------------------------------------------------------- --                               Labelled list                                -- --                                                                            -- -- This module does the core work of creating a hatnote composed of a list    -- -- prefixed by a colon-terminated label, i.e. "LABEL: [andList of pages]",    -- -- for {{see also}} and similar templates.                                    -- --------------------------------------------------------------------------------  local mHatnote = require('Module:Hatnote') local mHatlist = require('Module:Hatnote list') local mArguments --initialize lazily local p = {}  -- Defaults global to this module local defaults = { label = 'See also', --Final fallback for label argument labelForm = '%s: %s', prefixes = {'label', 'label ', 'l'}, template = 'Module:Labelled list hatnote' }  -- Helper function that pre-combines display parameters into page arguments. -- Also compresses sparse arrays, as a desirable side-effect. function p.preprocessDisplays (args, prefixes) -- Prefixes specify which parameters, in order, to check for display options -- They each have numbers auto-appended, e.g. 'label1', 'label 1', & 'l1' prefixes = prefixes or defaults.prefixes local pages = {} for k, v in pairs(args) do if type(k) == 'number' then local display for i = 1, #prefixes do display = args[prefixes[i] .. k] if display then break end end local page = display and string.format('%s|%s', string.gsub(v, '|.*$', ''), display) or v pages[#pages + 1] = page end end return pages end  -- Produces a labelled pages-list hatnote. -- The main frame (template definition) takes 1 or 2 arguments, for a singular -- and (optionally) plural label respectively: -- * {{#invoke:Labelled list hatnote|labelledList|Singular label|Plural label}} -- The resulting template takes pagename & label parameters normally. function p.labelledList (frame) mArguments = require('Module:Arguments') local labels = {frame.args[1] or defaults.label} labels[2] = frame.args[2] or labels[1] local template = frame:getParent():getTitle() local args = mArguments.getArgs(frame, {parentOnly = true}) local pages = p.preprocessDisplays(args) local options = { extraclasses = frame.args.extraclasses, category = args.category, selfref = frame.args.selfref or args.selfref, template = template } return p._labelledList(pages, labels, options) end  function p._labelledList (pages, labels, options) labels = labels or {} if #pages == 0 then return mHatnote.makeWikitextError( 'no page names specified', (options.template or defaults.template) .. '#Errors', options.category ) end label = (#pages == 1 and labels[1] or labels[2]) or defaults.label local text = string.format( options.labelForm or defaults.labelForm, label, mHatlist.andList(pages, true) ) local hnOptions = { extraclasses = options.extraclasses, selfref = options.selfref } return mHatnote._hatnote(text, hnOptions) end  return p 

Tags:

🔥 Trending searches on Wiki Fiji Hindi:

18 NovemberBiharArthropodAbrahamMercury (element)BelgiumDhaatuAugustine of HippoSuwarSilverSakisLondonFrench GuianaAfrica1644TungstenScandiumVladimir LeninHinduismBengaluruKolkataWilliam ShakespeareTime zone9 MayChurchill Park (Fiji)Kavanagasau Secondary SchoolVigyanTibetOmanTokyoGangaMickey MouseGermanyFranceIndustrial RevolutionSIErwin SchrödingerSemiconductorGunasagaran GounderVishnu DeoSamajMahabharata2004Aaghaaz26 September1 October2012Capital punishmentEthanolSerbia30 MayTanasahiOriya bhasaAgraSaint PetersburgVolga NaddiEncyclopediaGovind SwamySabdSheikh Hasina1993Jasper Williams High SchoolSaint Kitts and NevisVaranasi🡆 More