Open main menu

Changes

no edit summary
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'Это [[Wikipedia:stub|заготовка статьи]]':_(args.subject)' ',--space
+
:addClass'asbox-body'
'. Вы можете помочь Джейропедии, [',
+
:wikitext(
page:fullUrl('action=edit', 'relative'),
+
Buffer'This':_(args.subject):_(args.article or 'article'):_(args.qualifier)' ',--space
' расширив её].'
+
' is a [[Wikipedia:stub|stub]]. You can help Jeyropedia 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 260: Line 264:  
]]
 
]]
 
if page.namespace == 0 then -- Main namespace
 
if page.namespace == 0 then -- Main namespace
category'Все незавершённые статьи'
+
category'All stub articles'
 
catStub()
 
catStub()
 
elseif p.demo then
 
elseif p.demo then
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