Modul:Sidelist/dok

Fra Wikipedia, den frie encyklopædi

Sidelist er et alternativ til {{pagelist}}, som er en skabelon der kalder Modul:Pagelist.

"Sidelist" er et forenklet script men giver næsten samme resultat - forskellen er at et eventuelt navnerum altid skal angives med |nspace=.

Anvendelse[rediger kildetekst]

Modulet er tiltænkt som hjælpemiddel i skabeloner. "Sidelist" adskiller sig fra "Pagelist":

  • ved at være et modul. Benyt {{#invoke|Sidelist|m istedetfor {{Pagelist
  • Wikilinks formateres uden navnerums-præfiks, medmindre |nspace= er angivet.
  • Et ekstra parameter |samme=1 sætter konjunktionen lig med separator. "1"-værdien er obligatorisk.
  • Et ekstra parameter |lt=1 trimmer navnerums-præfiks fra linktekst for wikilinks der linker til andre navnerum. "1"-værdien er obligatorisk.

Bemærk: Levnes |nspace= tom kan der linkes til forskellige navnerum

Men parameter-navne, funktion og resultat er herudover ens. Se videre dokumentation på {{pagelist}}.

Scriptet[rediger kildetekst]

Her er en wikipediaseret script dokumentation.

Anvendte metoder[rediger kildetekst]

Lua
  • ipairs
  • pairs
  • string.match
  • string.gsub
Scribunto
  • mw.message.new

KONSTANTER[rediger kildetekst]

local seplst = {
  • Site præferencer - udokumenteret?
tekst-strengene benyttes i et kald til mw.message
->mw.message.new(seplst[0] .. '-separator'):plain()
Modulets separator standardværdi er 'comma'
local NS_SEP = "
"
  • Konventionel navnerums-separator
local MRK1 = '\1'
  • Tekstmærke
forekommer ikke som parameter-værdi

VARIABLER[rediger kildetekst]

local _a = {
  • Argument navne - følger konventionelt parameter navnene fra
index, parameternavn
værdi, standardværdi (default)
NB! separator værdien er en såkaldt site præference
- ikke bogstaveligt "comma" men netop ", "
_a.samme = 8
  • Ekstra argument navn
- sætter conjunction lig separator
- _a.samme = 1, separator bruges som conjunction
- _a.samme = 0, conjunction bruges som conjunction
local str = ""
  • Variabel til at konkatenere listen

modul function m[rediger kildetekst]

Proces del “ for k in pairs (_a) do ”
  • Sæt lokal _a værdierne til de navngivne parametre fra P.args,
hvis der er nogen - ellers brug standard værdien
Proces del “ for k in pairs (seplst) do ”
  • Tjek for site præferencer
Proces del “ if (_a.samme == 1) then ”
  • Tjek for ekstra parameter
Proces del “ if (_a.nspace ~= "") then ”
  • Indsæt kolon når navnerum er angivet
NB! standard navnerum er artikel-navnerummet
- *ikke* det navnerum der kaldes fra
Proces del “ for k, v in ipairs (P.args) do ”
  • Indlæs de unavngivne parametre fra P.args,
--og white space trim
ref:www.mediawiki.org
- string manipulation ref:www.lua.org
- patterns ref:www.lua.org
- Alternativ - mw.text.trim()
--og formater til wikilink
--og formater og konkatenér liste
NB! virker iterationen? -- ok
NB! - altid en sekvens -- ok
NB! - ikke altid en sekvens -- ok
NB! 5= - ikke altid en sekvens -- ok
NB! navngivne parametre altid enten foran eller bagved rækken af unavngivne parametre ??
Proces del “ str = str
gsub ("(.*)(" .. _a.separator .. MRK1 .. ")([^" .. MRK1 .. "]+)" .. _a.separator,"%1" .. _a.conjunction .. "%3"): gsub (MRK1,"") ”
  • Indsæt konjunktionen
og returner liste teksten
- string.gsub med såkaldt grådigt mønster match
ref:stackoverflow.com
- string manipulation ref:www.lua.org