Modulo:Categorie bozza

Questo è un modulo scritto in Lua. Le istruzioni che seguono sono contenute nella sottopagina Modulo:Categorie bozza/man (modifica · cronologia)
Sandbox: Modulo:Categorie bozza/sandbox (modifica · cronologia) · Sottopagine: lista · Test: Modulo:Categorie bozza/test (modifica · cronologia · esegui)
Modulo che implementa il template:Categorie bozza.
require('Modulo:No globals')
local p = {}
function p.main(frame)
local args = frame:getParent().args
if not args[1] then return end
local ret = args[1]
local catlinks = {}
local pattern = "%[%[ *:? *[Cc][Aa][Tt][Ee][Gg][Oo][Rr][YyIi][Aa]? *: *[^%s][^\n]-%]%]"
for catlink in string.gmatch(args[1], pattern) do
local namespaceprefix = catlink:match('[^%[ :]+')
local ns = mw.site.namespaces[namespaceprefix]
if ns and ns.canonicalName == 'Category' then
local i, j = ret:find(catlink, 1, true)
ret = ret:sub(0, i - 1) .. ret:sub(j + 1)
catlink = catlink:gsub('^%[%[ *[Cc]', '[[:C'):gsub('%|.+$', ']]')
table.insert(catlinks, '<li>' .. catlink .. '</li>')
end
end
if #catlinks > 0 then
local label = mw.html.create('div')
:css('font-size', 'small')
:wikitext('Questa pagina sarà elencata nelle seguenti categorie una volta spostata nel [[Aiuto:Namespace|namespace]] principale.')
local ul = mw.html.create('ul')
:css('margin', '0')
:wikitext(table.concat(catlinks))
local container = mw.html.create('div')
:addClass('catlinks')
:node(label)
:wikitext('[[Aiuto:Categorie|Categorie]]:')
:node(ul)
ret = ret .. tostring(container)
end
return ret
end
return p