Jump to content
Wikipedia The Free Encyclopedia

Module:Pagelist

From Wikipedia, the free encyclopedia
Module documentation[view] [edit] [history] [purge]
This module is rated as ready for general use. It has reached a mature state, is considered relatively stable and bug-free, and may be used wherever appropriate. It can be mentioned on help pages and other Wikipedia resources as an option for new users. To minimise server load and avoid disruptive output, improvements should be developed through sandbox testing rather than repeated trial-and-error editing.
Page template-protected This module is currently protected from editing.
See the protection policy and protection log for more details. Please discuss any changes on the talk page; you may submit an edit request to ask an administrator to make an edit if it is uncontroversial or supported by consensus. You may also request that this page be unprotected.

This is a Lua implementation of {{pagelist }}. Please see the template page for documentation.

The above documentation is transcluded from Module:Pagelist/doc. (edit | history)
Editors can experiment in this module's sandbox (edit | diff) and testcases (create) pages.
Subpages of this module.

 localp={}

 localseparators={
 dot=true,
 pipe=true,
 comma=true,
 ['tpt-languages']=true
 }

 localfunctiongetSeparator(sep)
 iftype(sep)~='string'then
 returnnil
 end
 ifseparators[sep]then
 returnmw.message.new(sep..'-separator'):plain()
 else
 returnsep
 end
 end

 localfunctiongenerateLink(page,nspace,delim,endDelim)
 ifnotpagethen
 returnnil
 end
 localpagename=mw.title.new(page)
 ifnotpagenamethen
 -- Default to the args we were passed if our page
 -- object was nil.
 pagename=page
 else
 pagename=pagename.text
 end
 delim=delimor''
 endDelim=endDelimordelim
 nspace=nspaceor''
 ifnspace=='all'then
 nspace=''
 pagename=page
 end
 localoutStr=mw.ustring.gsub(
 string.format(
 '%s[[:%s:%s|%s]]%s',
 delim,nspace,pagename,page,endDelim
 ),
 ':+',
 ':'
 )
 returnoutStr
 end

 functionp._main(args)
 localt={}
 localseparator=getSeparator(args.separator)
 localconjunction=getSeparator(args.conjunction)
 fori,vinipairs(args)do
 table.insert(t,generateLink(
 v,args.nspace,args.delim,args.edelim
 ))
 end
 returnmw.text.listToText(t,separator,conjunction)
 end

 functionp.main(frame)
 localorigArgs=require('Module:Arguments').getArgs(frame,{
 trim=false,
 removeBlanks=false,
 wrappers='Template:Pagelist'
 })

 -- Process integer args. Allow for explicit positional arguments that are
 -- specified out of order, e.g. {{br separated entries|3=entry3}}.
 -- After processing, the args can be accessed accurately from ipairs.
 localargs={}
 fork,vinpairs(origArgs)do
 iftype(k)=='number'and
 k>=1and
 math.floor(k)==kand
 string.match(v,'%S')then-- Remove blank or whitespace values.
 table.insert(args,k)
 end
 end
 table.sort(args)
 fori,vinipairs(args)do
 args[i]=origArgs[v]
 -- Trim whitespace.
 iftype(args[i])=='string'then
 args[i]=mw.text.trim(args[i])
 end
 end

 -- Get old named args. We don't need to remove blank values
 -- as for the nspace and edelim parameters the behaviour is different
 -- depending on whether the parameters are blank or absent, and for
 -- the delim parameter the default should be the blank string anyway.
 args.delim=origArgs.delim
 args.edelim=origArgs.edelim
 args.nspace=origArgs.nspace

 -- Get new named args, "separator" and "conjunction", and strip blank values.
 iforigArgs.separatorandorigArgs.separator~=''then
 args.separator=origArgs.separator
 end
 iforigArgs.conjunctionandorigArgs.conjunction~=''then
 args.conjunction=origArgs.conjunction
 end

 returnp._main(args)
 end

 returnp

AltStyle によって変換されたページ (->オリジナル) /