Module:Asbox: Difference between revisions
From Zoophilia Wiki
Jump to navigationJump to search
meta>Mr. Stradivarius unsplit p.main and p._main - Jackmcbarn is probably right that this wouldn't be called from Lua much, if at all |
meta>Mr. Stradivarius add a page parameter to p.main so that we can test categories etc. by passing a title object to it from the debug console |
||
Line 2: | Line 2: | ||
local p = {} | local p = {} | ||
function p.main(frame) | function p.main(frame, page) | ||
page = page or mw.title.getCurrentTitle() | |||
local args = require('Module:Arguments').getArgs(frame, { | local args = require('Module:Arguments').getArgs(frame, { | ||
wrappers = WRAPPER_TEMPLATE | wrappers = WRAPPER_TEMPLATE | ||
}) | }) | ||
local output = mw.html.create('table') | local output = mw.html.create('table') | ||
output | output | ||
:addClass('metadata plainlinks stub') | :addClass('metadata plainlinks stub') |
Revision as of 03:17, 25 December 2014
Documentation for this module may be created at Module:Asbox/doc
local WRAPPER_TEMPLATE = 'Template:Asbox'
local p = {}
function p.main(frame, page)
page = page or mw.title.getCurrentTitle()
local args = require('Module:Arguments').getArgs(frame, {
wrappers = WRAPPER_TEMPLATE
})
local output = mw.html.create('table')
output
:addClass('metadata plainlinks stub')
:css('background','transparent')
:attr('role','presentation')
if args.icon or args.image then
output
:tag('td'):wikitext(args.icon or string.format(
'[[File:%s|%spx|alt=%s]]',
args.image,
args.pix or '40x30',
args.imagealt or 'Stub icon'
))
end
local buffer = output:tag('td')
buffer
:tag('i')
:wikitext(string.format(
'This %s %s %s is a [[Wikipedia:stub|stub]]. You can help Wikipedia by [%s expanding it].',
args.subject or '',
args.article or 'article',
args.qualifier or '',
page:fullUrl('action=edit', 'relative')
))
if args.name then
buffer
:wikitext(require('Module:Navbar')._navbar{
args.name,
mini = 'yes',
style = 'position: absolute; right: 15px; display: none;'
})
end
if args.note then
buffer:tag('br')
buffer
:tag('span')
:css('font-style', 'normal')
:css('font-size', 'smaller')
:wikitext(args.note)
end
output = tostring(output)
if page.namespace == 0 then -- Main namespace
output = output .. '[[Category:All stub articles]]'
for k,v in pairs(args) do
if string.match(k, '^category%d*$') then
output = output .. string.format('[[Category:%s]]', v)
end
end
end
-- Instead of the title check you do here, see if the parent frame's title is the same as the current page's title.
if not args.demo and page.basePageTitle ~= WRAPPER_TEMPLATE then
--mw.title.new('') is always nil. This is intentional and matches the results of original {{FULLPAGENAME:{{{name|}}}}}
if mw.title.new(args.name or '') == page then
-- You should probably convert Template:Asbox/templatepage to Lua too.
-- Do it in this module, in a function called templatepage.
output = output .. frame:expandTemplate{
title = 'Asbox/templatepage',
args = args
}
elseif not page.isSubpage and page.namespace == 10 then -- Template namespace and not a subpage
output = output .. string.format(
'[[Category:Stub message templates needing attention|%s]]',
(args.name and 'E' or 'W') .. page.text
)
end
end
return output
end
return p