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