Module:Asbox: Difference between revisions

prevent global variable disallowedUnicodeChars, triggers warnings at Template:Ankylosaurian-stub - assuming it was by accident - please revert if this breaks anything
m (1 revision imported)
Wikipedia >DannyS712
(prevent global variable disallowedUnicodeChars, triggers warnings at Template:Ankylosaurian-stub - assuming it was by accident - please revert if this breaks anything)
Line 12: Line 12:
--]]
--]]
local WRAPPER_TEMPLATE, args = 'Template:Asbox'
local WRAPPER_TEMPLATE, args = 'Template:Asbox'
local templatestyles = 'Asbox/styles.css'
local p, Buffer, stubCats = {
local p, Buffer, stubCats = {
--Prevents dupli-cats... get it? Maybe not?
--Prevents dupli-cats... get it? Maybe not?
Line 77: Line 78:
local function catStub(page, pageDoc)
local function catStub(page, pageDoc)
stubCats = {missing = {}, v = {}}
stubCats = {missing = {}, v = {}}
-- zwj and zwnj have semantical use in other other wikis, don't remove them
local zwj = '\226\128\141'  -- U+200D, E2 80 8D
local zwnj = '\226\128\140' -- U+200C, E2 80 8C
local disallowedUnicodeChars = '[^%w%p%s' .. zwj .. zwnj .. ']' -- for i18n we make this a separate string
local code
local code
for k, _ in pairs(args) do
for k, _ in pairs(args) do
Line 85: Line 90:
for k, v in ipairs(stubCats) do
for k, v in ipairs(stubCats) do
--Get category names and, if called by p.templatepage, the optional sort key
--Get category names and, if called by p.templatepage, the optional sort key
local tsort, cat = args['tempsort' .. v], mw.ustring.gsub(args['category' .. v], '[^%w%p%s]', '')--remove all hidden unicode chars  
local tsort, cat = args['tempsort' .. v], mw.ustring.gsub(args['category' .. v], disallowedUnicodeChars, '')--remove all hidden unicode chars  
--Do not place template in main category if |tempsort = 'no'. However, DO place articles of that template in the main category.
--Do not place template in main category if |tempsort = 'no'. However, DO place articles of that template in the main category.
table.insert(stubCats.v,
table.insert(stubCats.v,
Line 163: Line 168:
done = p.demo ~= 'doc',--Outputs categories if not doc demo
done = p.demo ~= 'doc',--Outputs categories if not doc demo
'Stub message templates',
'Stub message templates',
'Exclude in print',
args.icon and
args.icon and
'Stub message templates using icon parameter'
'Stub message templates using icon parameter'
Line 214: Line 218:
function p.main(frame, page)
function p.main(frame, page)
args, page = p:init(frame, page)
args, page = p:init(frame, page)
local output = mw.html.create'table'
local output = mw.html.create'div'
:addClass'metadata plainlinks stub'
:attr{role = 'note'}
:css{background = 'transparent'}
:addClass'metadata plainlinks asbox stub'
:attr{role = 'presentation'}
:tag'table'
:tag'tr'
:attr{role = 'presentation'}
:addClass'noresize'
:tag'tr'
:node((args.icon or args.image) and
:addClass'noresize'
mw.html.create'td'
:node((args.icon or args.image) and
:wikitext(args.icon or ('[[File:%s|%spx|alt=%s]]'):format(
mw.html.create'td'
args.image or '',
:wikitext(args.icon or ('[[File:%s|%spx|alt=%s]]'):format(
args.pix or '40x30',
args.image or '',
args.imagealt or 'Stub icon'
args.pix or '40x30',
))
args.imagealt or 'Stub icon'
)
))
:tag'td'
)
:tag'i'
:tag'td'
:wikitext(
:tag'p'
Buffer'This':_(args.subject):_(args.article or 'article'):_(args.qualifier)' ',--space
:addClass'asbox-body'
' is a [[Wikipedia:stub|stub]]. You can help Wikipedia by [',
:wikitext(
page:fullUrl('action=edit', 'relative'),
Buffer'This':_(args.subject):_(args.article or 'article'):_(args.qualifier)' ',--space
' expanding it].'
' is a [[Wikipedia:stub|stub]]. You can help Wikipedia by [',
page:fullUrl('action=edit', 'relative'),
' expanding it].'
)
:done()
:node(args.note and
mw.html.create()
:tag'p'
:addClass'asbox-note'
:wikitext(args.note)
:done()
)
)
:done()
:node(args.name and
require'Module:Navbar'._navbar{
args.name,
mini = 'yes',
style = 'position: absolute; right: 15px; display: none;'
}
)
:node(args.note and
mw.html.create()
:tag'br':done()
:tag'span'
:css{['font-style'] = 'normal', ['font-size'] = 'smaller'}
:wikitext(args.note)
:done()
)
:allDone()
:allDone()
:node(args.name and
require'Module:Navbar'._navbar{
args.name,
mini = 'yes',
}
)
--[[
--[[
Stub categories for templates include a sort key; this ensures that all stub tags appear at the beginning of their respective categories.
Stub categories for templates include a sort key; this ensures that all stub tags appear at the beginning of their respective categories.
Line 283: Line 287:
end
end
end
end
return output:wikitext(not p.demo and category{done = true} or nil)
return frame:extensionTag{ name = 'templatestyles', args = { src = templatestyles} } .. tostring(output:wikitext(not p.demo and category{done = true} or nil))
end
end


return p
return p
Anonymous user