Module:Asbox: Difference between revisions

Update
m (→‎top: robot:, replaced: WP: → BP: (2))
(Update)
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 204: Line 208:
:_out()
:_out()
:_(page.protectionLevels.edit and page.protectionLevels.edit[1] == 'sysop' and
:_(page.protectionLevels.edit and page.protectionLevels.edit[1] == 'sysop' and
"This template is [[BP:PROTECT|fully protected]] and any [[BP:CAT|categories]] should be added to the template's ["
"This template is [[WP:PROTECT|fully protected]] and any [[WP:CAT|categories]] should be added to the template's ["
.. pageDoc:fullUrl('action=edit&preload=Template:Category_interwiki/preload', 'relative')
.. pageDoc:fullUrl('action=edit&preload=Template:Category_interwiki/preload', 'relative')
.. '| /doc] subpage, which is not protected.'
.. '| /doc] subpage, which is not protected.'
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'}
:node((args.icon or args.image) and
:tag'tr'
mw.html.create'td'
:addClass'noresize'
:wikitext(args.icon or ('[[File:%s|%spx|alt=%s]]'):format(
:node((args.icon or args.image) and
args.image or '',
mw.html.create'td'
args.pix or '40x30',
:wikitext(args.icon or ('[[File:%s|%spx|alt=%s]]'):format(
args.imagealt or 'Stub icon'
args.image or '',
))
args.pix or '40x30',
)
args.imagealt or 'Stub icon'
:tag'td'
))
:tag'i'
)
:wikitext(
:tag'td'
Buffer'This':_(args.subject):_(args.article or 'article'):_(args.qualifier)' ',--space
:tag'p'
' is a [[Bharatpedia:stub|stub]]. You can help Bharatpedia by [',
:addClass'asbox-body'
page:fullUrl('action=edit', 'relative'),
:wikitext(
' expanding it].'
Buffer'This':_(args.subject):_(args.article or 'article'):_(args.qualifier)' ',--space
' 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 282: 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