<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://wiki.bergau.de/index.php?action=history&amp;feed=atom&amp;title=Modul%3ASteckbrief</id>
	<title>Modul:Steckbrief - Versionsgeschichte</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.bergau.de/index.php?action=history&amp;feed=atom&amp;title=Modul%3ASteckbrief"/>
	<link rel="alternate" type="text/html" href="https://wiki.bergau.de/index.php?title=Modul:Steckbrief&amp;action=history"/>
	<updated>2026-10-01T11:02:42Z</updated>
	<subtitle>Versionsgeschichte dieser Seite in OBS Wiki</subtitle>
	<generator>MediaWiki 1.43.9</generator>
	<entry>
		<id>https://wiki.bergau.de/index.php?title=Modul:Steckbrief&amp;diff=65661&amp;oldid=prev</id>
		<title>MINERVA-Ecks: Neu: Lua-Modul fuer Vorlage:Steckbrief (Wertepaare oder Spalten mit spalten=/ecke=)</title>
		<link rel="alternate" type="text/html" href="https://wiki.bergau.de/index.php?title=Modul:Steckbrief&amp;diff=65661&amp;oldid=prev"/>
		<updated>2026-09-28T10:35:15Z</updated>

		<summary type="html">&lt;p&gt;Neu: Lua-Modul fuer Vorlage:Steckbrief (Wertepaare oder Spalten mit spalten=/ecke=)&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;-- Modul:Steckbrief&lt;br /&gt;
-- Erzeugt den Steckbrief fuer Vorlage:Steckbrief.&lt;br /&gt;
--&lt;br /&gt;
-- Ohne spalten=:  Paare aus Merkmal und Wert        {{Steckbrief|Format|openTRANS 2.1|Weg|FTP-Job}}&lt;br /&gt;
-- Mit spalten=:   Merkmal + ein Wert je Spalte     {{Steckbrief|spalten=A;B|Format|Text|XML|Weg|FTP-Job|FTP-Job}}&lt;br /&gt;
--                 ecke= beschriftet die Ecke der Kopfzeile, z.B. ecke=Datenuebertragungsart&lt;br /&gt;
--&lt;br /&gt;
-- Gleiche Nachbarwerte einer Zeile werden zu einer Zelle zusammengefasst (colspan),&lt;br /&gt;
-- damit die Unterschiede zwischen den Varianten sofort sichtbar sind.&lt;br /&gt;
-- Passt die Anzahl der Werte nicht zur Spaltenzahl, erscheint eine Fehlermeldung,&lt;br /&gt;
-- statt dass sich alle folgenden Zeilen still verschieben.&lt;br /&gt;
&lt;br /&gt;
local p = {}&lt;br /&gt;
&lt;br /&gt;
local function trim(s)&lt;br /&gt;
    return mw.text.trim(s or &amp;#039;&amp;#039;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.main(frame)&lt;br /&gt;
    local args = frame:getParent().args&lt;br /&gt;
&lt;br /&gt;
    local titel = trim(args.titel)&lt;br /&gt;
    if titel == &amp;#039;&amp;#039; then&lt;br /&gt;
        titel = &amp;#039;Steckbrief&amp;#039;&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    local spalten = {}&lt;br /&gt;
    if trim(args.spalten) ~= &amp;#039;&amp;#039; then&lt;br /&gt;
        for s in mw.text.gsplit(args.spalten, &amp;#039;;&amp;#039;, true) do&lt;br /&gt;
            s = trim(s)&lt;br /&gt;
            if s ~= &amp;#039;&amp;#039; then&lt;br /&gt;
                table.insert(spalten, s)&lt;br /&gt;
            end&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
    local breite = math.max(#spalten, 1)&lt;br /&gt;
&lt;br /&gt;
    -- Unbenannte Parameter in Reihenfolge einsammeln&lt;br /&gt;
    local werte = {}&lt;br /&gt;
    local i = 1&lt;br /&gt;
    while args[i] ~= nil do&lt;br /&gt;
        table.insert(werte, trim(args[i]))&lt;br /&gt;
        i = i + 1&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    local tabelle = mw.html.create(&amp;#039;table&amp;#039;):addClass(&amp;#039;obs-steckbrief&amp;#039;)&lt;br /&gt;
    if #spalten &amp;gt; 0 then&lt;br /&gt;
        tabelle:addClass(&amp;#039;obs-steckbrief-spalten&amp;#039;)&lt;br /&gt;
    end&lt;br /&gt;
    tabelle:tag(&amp;#039;caption&amp;#039;):wikitext(titel)&lt;br /&gt;
&lt;br /&gt;
    if #spalten &amp;gt; 0 then&lt;br /&gt;
        local kopf = tabelle:tag(&amp;#039;tr&amp;#039;):addClass(&amp;#039;obs-steckbrief-kopf&amp;#039;)&lt;br /&gt;
        local ecke = trim(args.ecke)&lt;br /&gt;
        local eckzelle = kopf:tag(&amp;#039;th&amp;#039;):addClass(&amp;#039;obs-steckbrief-ecke&amp;#039;)&lt;br /&gt;
        if ecke == &amp;#039;&amp;#039; then&lt;br /&gt;
            eckzelle:addClass(&amp;#039;obs-steckbrief-ecke-leer&amp;#039;)&lt;br /&gt;
        else&lt;br /&gt;
            eckzelle:attr(&amp;#039;scope&amp;#039;, &amp;#039;col&amp;#039;):wikitext(ecke)&lt;br /&gt;
        end&lt;br /&gt;
        for _, s in ipairs(spalten) do&lt;br /&gt;
            kopf:tag(&amp;#039;th&amp;#039;):attr(&amp;#039;scope&amp;#039;, &amp;#039;col&amp;#039;):wikitext(s)&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    local schritt = breite + 1&lt;br /&gt;
    local zeilen = math.floor(#werte / schritt)&lt;br /&gt;
    for z = 0, zeilen - 1 do&lt;br /&gt;
        local basis = z * schritt&lt;br /&gt;
        local merkmal = werte[basis + 1]&lt;br /&gt;
        if merkmal ~= &amp;#039;&amp;#039; then&lt;br /&gt;
            local tr = tabelle:tag(&amp;#039;tr&amp;#039;)&lt;br /&gt;
            tr:tag(&amp;#039;th&amp;#039;):attr(&amp;#039;scope&amp;#039;, &amp;#039;row&amp;#039;):wikitext(merkmal)&lt;br /&gt;
            local k = 1&lt;br /&gt;
            while k &amp;lt;= breite do&lt;br /&gt;
                local wert = werte[basis + 1 + k]&lt;br /&gt;
                local span = 1&lt;br /&gt;
                while k + span &amp;lt;= breite and werte[basis + 1 + k + span] == wert do&lt;br /&gt;
                    span = span + 1&lt;br /&gt;
                end&lt;br /&gt;
                local td = tr:tag(&amp;#039;td&amp;#039;):wikitext(wert)&lt;br /&gt;
                if span &amp;gt; 1 then&lt;br /&gt;
                    td:attr(&amp;#039;colspan&amp;#039;, span):addClass(&amp;#039;obs-steckbrief-gemeinsam&amp;#039;)&lt;br /&gt;
                end&lt;br /&gt;
                k = k + span&lt;br /&gt;
            end&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    local ausgabe = tostring(tabelle)&lt;br /&gt;
    if #werte % schritt ~= 0 then&lt;br /&gt;
        ausgabe = ausgabe .. &amp;#039;&amp;lt;strong class=&amp;quot;error&amp;quot;&amp;gt;Steckbrief: Die Zahl der Werte passt nicht zu &amp;#039;&lt;br /&gt;
            .. breite .. &amp;#039; Spalte(n) – je Merkmal &amp;#039; .. breite .. &amp;#039; Wert(e) angeben.&amp;lt;/strong&amp;gt;&amp;#039;&lt;br /&gt;
    end&lt;br /&gt;
    return ausgabe&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>MINERVA-Ecks</name></author>
	</entry>
</feed>