Module:Pagelist
- Afrikaans
- Аԥсшәа
- العربية
- تۆرکجه
- Basa Bali
- বাংলা
- Беларуская (тарашкевіца)
- भोजपुरी
- Bosanski
- Català
- Cymraeg
- Dansk
- Ελληνικά
- فارسی
- Føroyskt
- Gaelg
- Galego
- ગુજરાતી
- गोंयची कोंकणी / Gõychi Konknni
- 한국어
- Հայերեն
- Bahasa Indonesia
- Jawa
- ಕನ್ನಡ
- Latviešu
- मैथिली
- മലയാളം
- मराठी
- مصرى
- Bahasa Melayu
- မြန်မာဘာသာ
- 日本語
- Norsk bokmål
- Oʻzbekcha / ўзбекча
- ਪੰਜਾਬੀ
- ပအိုဝ်ႏဘာႏသာႏ
- Português
- Română
- Sakizaya
- Scots
- Simple English
- Slovenščina
- Soomaaliga
- کوردی
- Српски / srpski
- Tagalog
- Taqbaylit
- တႆး
- ไทย
- Тоҷикӣ
- Türkçe
- Українська
- اردو
- Tiếng Việt
- 粵語
- 中文
Appearance
From Wikipedia, the free encyclopedia
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.
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.
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