Zum Inhalt springen

Modul:SoftwareDoku

aus Wikipedia, der freien Enzyklopädie
Dies ist eine alte Version dieser Seite, zuletzt bearbeitet am 13. Oktober 2022 um 22:59 Uhr durch Vollbracht (Diskussion | Beiträge) (pre α, in Bearbeitung). Sie kann sich erheblich von der aktuellen Version unterscheiden.

Skriptfehler: Die Funktion „linkBoxDeEn“ ist nicht vorhanden.


--[=[ SoftwareDoku 2022-10-14
Module for software documentation templates
Author: Vollbracht

template functions
* functionDoc(frame)	standard description of a function
]=]

--Module globals
local p = {}

local _, Parser = pcall(require, "Modul:SimpleStruct")

--[[
	functionDoc(frame)
	standard description of a function
	parameters:
		frame.args.name			name of function
		frame.args.short		short description
		frame.args.parameters	parsable parameters list for en table header
		frame.args.Parameter	parsable parameters list for de table header
		frame.args.returns		wikitext return description for en table header
		frame.args.Rueckgabe	wikitext return description for de table header
]]
p.functionDoc = function(frame)
	if not frame.args.name then return '' end
	if not frame.args.short then return '' end
	local result =	'<h2>' .. frame.args.name .. '</h2><p>' .. frame.args.short
				..	'</p><table style="width:100%;"><tr>'
				..	'<th colspan="3" style="text-align:left;">'
	local pars = frame.args.parameters
	if pars then
		result = result .. 'parameters:</th></tr><tr>'
	else
		pars = frame.args.Parameter
	end
	if pars then
		result = result .. 'Parameter:</th></tr><tr>'
	else return '' end
	if pars == 'none' then
		result = result .. '<td></td><td colspan="2">no parameters</td></tr>'
	else
		local pList = Parser.altParse(pars)
		result = result .. '<td rowspan="' .. #pList .. '"></td>'
		local pRows = {}
		mw.logObject(pList)
		for k, v in pairs(pList) do
			table.insert(pRows, '<td>' .. k .. '</td><td>' .. v .. '</td>')
		end
		result = result .. table.concat(pRows, '</tr><tr>')
			..	'</tr><tr><th style="text-align:left;vertical-align:top;>'
	end
	local ret = frame.args.returns
	if ret then
		result = result .. 'returns'
	else ret = frame.args.Rueckgabe end
	if ret then
		result = result .. 'Rückgabewert'
	else return '' end
	return result .. ':</th><td colspan="2">' .. ret .. '</td></tr></table>'
end

return p