Formă: Proiecte de categorii

De la Wikipedia, enciclopedia liberă.
Salt la navigare Salt la căutare

Modul de implementare a șablonului: Categorii de schițe .


 require ( „Formular: fără globali” )

local p = {}

funcția p . principal ( cadru )
argumente locale = cadru : getParent (). argumente
local namespace = mw . titlu . getCurrentTitle (). spațiu de nume

dacă nu args [ 1 ] sau spațiu de nume == 0 atunci returnează args [ 1 ] end

local ret = args [ 1 ]
linkuri de pisică locale = {}
model local = "% [% [* [Cc] [Aa] [Tt] [Ee] [Gg] [Oo] [Rr] [YyIi] [Aa]? *: * [^% s] [^ \ n ] -%]%] "

pentru catlink în string.gmatch ( args [ 1 ], model ) do
local namespaceprefix = catlink : match ( '[^% [:] +' )
local ns = mw . site . namespaces [ namespaceprefix ]

dacă ns și ns . canonicalName == 'Categorie' atunci
local i , j = ret : find ( catlink , 1 , true )
ret = ret : sub ( 0 , i - 1 ) .. ret : sub ( j + 1 )
catlink = catlink
: gsub ( '^% [% [* [Cc] .-: *' , '' )
: gsub ( '^% l' , string.upper )
: gsub ( '^' , '[[: Categorie:' )
: gsub ( '% |. + $' , ']]' )
: gsub ( '^% [% [(: .-): (. +)%]%] $' , '[[% 1:% 2 |% 2]]' )
table.insert ( catlinks , '<li>' .. catlink .. '</li>' )
Sfârșit
Sfârșit

dacă # catlinks > 0 atunci
etichetă locală
local text = 'Această pagină va fi listată% s când va fi mutată în [[Ajutor: Spațiu de nume | spațiu de nume]] principal.'

dacă # catlinks == 1 atunci
label = 'Categorie'
text = string.format ( text , „în categoria următoare” )
altceva
label = 'Categorii'
text = string.format ( text , „în următoarele categorii” )
Sfârșit

local div = mw . html . create ( 'div' )
: css ( 'font-size' , 'small' )
: wikitext ( text )

local ul = mw . html . create ( 'ul' )
: css ( „margin” , „0” )
: wikitext ( table.concat ( catlinks ))

container local = mw . html . create ( 'div' )
: addClass ( „catlinks” )
: nod ( div )
: wikitext ( '[[Ajutor: Categorii |' .. etichetă .. ']]:' )
: nod ( ul )

ret = ret .. tostring ( container )
Sfârșit

întoarce-te mw . text . tăia ( ret )
Sfârșit

retur p