Module:Asbox: Difference between revisions

From Zoophilia Wiki
Jump to navigationJump to search
meta>Codehydro
(save progress w/ adoption of suggestions; replace wikitext italics with i tag; redid some lines after rereading original template)
meta>Mr. Stradivarius
(some formatting tweaks so that this mostly fits within 80 characters)
Line 2: Line 2:


function p.main(frame)
function p.main(frame)
local args = require('Module:Arguments').getArgs(frame, {wrappers = 'Template:Asbox'})
local args = require('Module:Arguments').getArgs(frame, {
wrappers = 'Template:Asbox'
})
local output = mw.html.create('table')
local output = mw.html.create('table')
local page = mw.title.getCurrentTitle();
local page = mw.title.getCurrentTitle()


local buffer = mw.html.create('td')
local buffer = mw.html.create('td')
Line 13: Line 15:
if args.icon or args.image then
if args.icon or args.image then
output
output
:tag('td'):wikitext(args.icon or string.format('[[File:%s|%spx|alt=%s]]',args.image, args.pix and ('|' .. args.pix) or '40x30',args.imagealt or 'Stub icon'))
:tag('td'):wikitext(args.icon or string.format(
'[[File:%s|%spx|alt=%s]]',
args.image,
args.pix and ('|' .. args.pix) or '40x30',
args.imagealt or 'Stub icon'
))
end
end
buffer
buffer
:tag('i')
: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')))
: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
if args.name then
buffer
buffer
:wikitext(frame:expandTemplate{title = 'navbar', args = {args.name, mini = 'yes', style = 'position: absolute; right: 15px; display: none;'}})
:wikitext(frame:expandTemplate{title = 'navbar', args = {args.name, mini = 'yes', style = 'position: absolute; right: 15px; display: none;'}})
end
end
if args.note then
if args.note then
buffer
buffer
:wikitext('<br />')
:wikitext('<br />')
Line 38: Line 46:
:node(buffer)
:node(buffer)
output = tostring(output)
output = tostring(output)
if page.namespace == 0 --[[Article space]] then
if page.namespace == 0 then -- Main namespace
output = output .. '[[Category:All stub articles]]'
output = output .. '[[Category:All stub articles]]'
-- Instead of this loop, you should match all arg names that are category and then a number.
-- Instead of this loop, you should match all arg names that are category and then a number.
Line 48: Line 56:
end
end
if args.demo == nil and page.basePageTitle ~= 'Template:Asbox' then
if args.demo == nil and page.basePageTitle ~= 'Template:Asbox' then
buffer = mw.title.new(args.name or '')
buffer = mw.title.new(args.name or '')
if buffer == page.prefixedText then
if buffer == page.prefixedText then
output = output .. frame:expandTemplate{
output = output .. frame:expandTemplate{title = 'Asbox/templatepage', args = args}
title = 'Asbox/templatepage',
elseif not buffer.isSubpage and buffer.namespace == 10 --[[Template space]] then
args = args
output = output .. '[[Category:Stub message templates needing attention|' .. (args.name and 'E' or 'W') .. page.text .. ']]'
}
elseif not buffer.isSubpage and buffer.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
end
end

Revision as of 15:55, 24 December 2014

Documentation for this module may be created at Module:Asbox/doc

local p = {}

function p.main(frame)
	local args = require('Module:Arguments').getArgs(frame, {
		wrappers = 'Template:Asbox'
	})
	local output = mw.html.create('table')
	local page = mw.title.getCurrentTitle()

	local buffer = mw.html.create('td')
	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 and ('|' .. args.pix) or '40x30',
				args.imagealt or 'Stub icon'
			))
	end
	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(frame:expandTemplate{title = 'navbar', args = {args.name, mini = 'yes', style = 'position: absolute; right: 15px; display: none;'}})
	end
	if args.note then
		buffer
			:wikitext('<br />')
			:tag('span')
				:css('font-style', 'normal')
				:css('font-size', 'smaller')
				:wikitext(args.note)
	end
	output
		:node(buffer)
	output = tostring(output)
	if page.namespace == 0 then -- Main namespace
		output = output .. '[[Category:All stub articles]]'
		-- Instead of this loop, you should match all arg names that are category and then a number.
		for k = 0,2 do
			if args['category' .. (k > 0 and k or '')] then
				output = string.format('%s[[Category:%s]]', output, args['category' .. (k > 0 and k or '')])
			end
		end
	end
	if args.demo == nil and page.basePageTitle ~= 'Template:Asbox' then
		buffer = mw.title.new(args.name or '')
		if buffer == page.prefixedText then
			output = output .. frame:expandTemplate{
				title = 'Asbox/templatepage',
				args = args
			}
		elseif not buffer.isSubpage and buffer.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