Modul:Collapse: Unterschied zwischen den Versionen

CamNet - das Wiki
Keine Bearbeitungszusammenfassung
 
imported>Oetterer
Keine Bearbeitungszusammenfassung
 
(Eine dazwischenliegende Version desselben Benutzers wird nicht angezeigt)
Zeile 5: Zeile 5:
function p._main(args)
function p._main(args)
local html = mw.html.create('table')
local html = mw.html.create('table')
html:addClass('navbox')
local width = args.width or 'auto'
:addClass('mw-collapsible')
local tableCss
:addClass(not yesno(args.expand) and 'mw-collapsed')
if args.float == 'left' then
:cssText('text-align: left; border: ' .. (args.expand or '1px') .. ' solid silver; margin-top: 0.2em; background: ' .. (args.bg1 or 'transparent') .. (args.width and '; width: ' .. args.width or ''))
tableCss = 'margin:0.2em 0.5em 0.2em 0; width:' .. width .. '; float: left; clear: ' .. (args.clear or 'left')
elseif args.float == 'right' then
tableCss = 'margin:0.2em 0 0.2em 0.5em; width:' .. width .. '; float: right; clear: ' .. (args.clear or 'right')
elseif args.float == 'none' then
tableCss = 'margin:0.2em 0; width:' .. width .. '; clear: ' .. (args.clear or 'none')
elseif args.float == 'center' or args.float == 'centre' then
tableCss = 'margin:0.2em auto; width:' .. width .. '; clear: ' .. (args.clear or 'both')
else
tableCss = 'margin: 0.2em auto auto; width:' .. ( args.width or '100%' ) .. '; clear: ' .. (args.clear or 'both')
end
html:addClass('mw-collapsible')
:addClass(yesno(args.expand) and 'mw-uncollapsed' or 'mw-collapsed')
:addClass(args.class or '')
:cssText('background-color: ' .. (args.bg1 or 'transparent') .. '; text-align: left; border: '
.. (args.border or '1px') .. ' solid ' .. ( args['b-color'] or 'silver' ) .. '; '
.. tableCss .. '; padding: 1px;' )
:tag('tr')
:tag('tr')
:tag('th')
:tag('th')
:cssText('background-color: ' .. (args.bg or '#CFC') ..'; text-align: ' .. (yesno(args.left) and 'left' or 'center') .. '; font-size:112%; color: ' .. (args.fc or 'black'))
:cssText('background-color: ' .. (args.bg or '#F0F2F5') .. '; font-size:87%; padding:0.2em 0.3em; text-align:'
:wikitext(args[1] or args.title or args.reason or args.header or args.heading or 'Extended content')
.. ( args.left and 'left' or ( args.center and 'center' or 'left' ) ) .. ( args.fc and '; color: ' .. args.fc or '' ) .. ';' )
:tag('div')
:cssText('display: inline; font-size: 115%;')
:wikitext(args[1] or args.title or args.reason or args.header or args.heading or 'Extended content')
:done()
:done()
:done()
:done()
:done()
:tag('tr')
:tag('tr')
:tag('td')
:tag('td')
:cssText('border: solid ' .. (args.border2 or '1px silver') .. '; padding: ' .. (args.padding or '8px') .. '; background-color: ' .. (args.bg2 or 'white') .. '; font-size: 112%')
:cssText('border: solid ' .. (args.border2 or '1px silver') .. '; padding: ' .. (args.padding or '8px') .. '; background-color: ' .. (args.bg2 or 'white') .. ';')
:wikitext(args[2] or args.text or args.content)
:tag('div')
:wikitext(args[2] or args.text or args.content)
:done()
:done()
:done()
:done()
:done()

Aktuelle Version vom 11. September 2023, 15:41 Uhr

Documentation icon Module documentation

This module DOES NOT implement template {{Collapse}}. It copies that template's function, though.

Usage

{{#invoke:Collapse|main}}

local p = {}
local getArgs = require('Module:Arguments').getArgs
local yesno = require('Module:Yesno')

function p._main(args)
	local html = mw.html.create('table')
	local width = args.width or 'auto'
	local tableCss
	if args.float == 'left' then
		tableCss = 'margin:0.2em 0.5em 0.2em 0; width:' .. width .. '; float: left; clear: ' .. (args.clear or 'left')
	elseif args.float == 'right' then
		tableCss = 'margin:0.2em 0 0.2em 0.5em; width:' .. width .. '; float: right; clear: ' .. (args.clear or 'right')
	elseif args.float == 'none' then
		tableCss = 'margin:0.2em 0; width:' .. width .. '; clear: ' .. (args.clear or 'none')
	elseif args.float == 'center' or args.float == 'centre' then
		tableCss = 'margin:0.2em auto; width:' .. width .. '; clear: ' .. (args.clear or 'both')
	else
		tableCss = 'margin: 0.2em auto auto; width:' .. ( args.width or '100%' ) .. '; clear: ' .. (args.clear or 'both')
	end
	html:addClass('mw-collapsible')
		:addClass(yesno(args.expand) and 'mw-uncollapsed' or 'mw-collapsed')
		:addClass(args.class or '')
		:cssText('background-color: ' .. (args.bg1 or 'transparent') .. '; text-align: left; border: '
			.. (args.border or '1px') .. ' solid ' .. ( args['b-color'] or 'silver' ) .. '; '
			.. tableCss .. '; padding: 1px;' )
		:tag('tr')
			:tag('th')
				:cssText('background-color: ' .. (args.bg or '#F0F2F5') .. '; font-size:87%; padding:0.2em 0.3em; text-align:'
					.. ( args.left and 'left' or ( args.center and 'center' or 'left' ) ) .. ( args.fc and '; color: ' .. args.fc or '' ) .. ';' )
				:tag('div')
					:cssText('display: inline; font-size: 115%;')
					:wikitext(args[1] or args.title or args.reason or args.header or args.heading or 'Extended content')
					:done()
				:done()
			:done()
		:tag('tr')
			:tag('td')
				:cssText('border: solid ' .. (args.border2 or '1px silver') .. '; padding: ' .. (args.padding or '8px') .. '; background-color: ' .. (args.bg2 or 'white') .. ';')
				:tag('div')
					:wikitext(args[2] or args.text or args.content)
					:done()
				:done()
			:done()
	return tostring(html)
end

function p.main(frame)
	local args
	if frame == mw.getCurrentFrame() then
		args = getArgs(frame)
	else
		args = frame
	end
	return p._main(args)
end

return p