Buch

Die Dokumentation für dieses Modul kann unter Modul:Publikation/Buch/Doku erstellt werden

local buch = {}

function buch.render(args, main)
    local output = '<table class="publikation buch table table-hover">'
    
    -- Coverbild
    output = output .. '<tr><td colspan="2" style="text-align: center;">' .. main.getCoverImage(args["Coverbild"], "DefaultBuchCover.webp") .. '</td></tr>'

    -- Titel
    output = output .. '<tr><td><strong>Titel</strong></td><td>[[Hat Titel::' .. (args["Titel"] or "Unbekannt") .. ']]</td></tr>'

    -- Autoren (Mehrfachwerte als Liste)
    if args["Autor"] then
        output = output .. '<tr><td><strong>Autor(en)</strong></td><td>'
        for author in mw.text.gsplit(args["Autor"], ",") do
            output = output .. '[[Hat Autor::' .. author .. ']], '
        end
        output = output:sub(1, -3) .. '</td></tr>' -- Entfernt das letzte Komma
    end

    -- Originaltitel (falls vorhanden)
    output = output .. (args["Original Titel"] and '<tr><td><strong>Original Titel</strong></td><td>[[Original Titel::' .. args["Original Titel"] .. ']]</td></tr>' or "")

    -- Erscheinungsjahr
    output = output .. (args["Erscheinungsjahr"] and '<tr><td><strong>Erscheinungsjahr</strong></td><td>[[Erscheinungsjahr::' .. args["Erscheinungsjahr"] .. ']]</td></tr>' or "")

    -- Verlag
    output = output .. (args["Verlag"] and '<tr><td><strong>Verlag</strong></td><td>[[Verlag::' .. args["Verlag"] .. ']]</td></tr>' or "")

    -- Genre (Mehrfachwerte als Liste)
    if args["Genre"] then
        output = output .. '<tr><td><strong>Genre(s)</strong></td><td>'
        for genre in mw.text.gsplit(args["Genre"], ",") do
            output = output .. '[[Genre::' .. genre .. ']], '
        end
        output = output:sub(1, -3) .. '</td></tr>'
    end

    -- Sprache
    output = output .. (args["Sprache"] and '<tr><td><strong>Sprache</strong></td><td>[[Sprache::' .. args["Sprache"] .. ']]</td></tr>' or "")

    -- Standort
    output = output .. (args["Standort"] and '<tr><td><strong>Standort</strong></td><td>[[Standort::' .. args["Standort"] .. ']]</td></tr>' or "")

    -- ISBN-10 und ISBN-13
    output = output .. (args["ISBN-10"] and '<tr><td><strong>ISBN-10</strong></td><td>' .. main.getIsbnLink(args["ISBN-10"], "ISBN-10") .. '</td></tr>' or "")
    output = output .. (args["ISBN-13"] and '<tr><td><strong>ISBN-13</strong></td><td>' .. main.getIsbnLink(args["ISBN-13"], "ISBN-13") .. '</td></tr>' or "")

    -- Datensatz ID (Deutsche Nationalbibliothek)
    output = output .. (args["Datensatz ID"] and '<tr><td><strong>DNB ID</strong></td><td>[https://d-nb.info/' .. args["Datensatz ID"] .. ' ' .. args["Datensatz ID"] .. ']</td></tr>' or "")

    -- Umfang (Seitenanzahl)
    output = output .. (args["Umfang"] and '<tr><td><strong>Umfang</strong></td><td>[[Umfang::' .. args["Umfang"] .. ']] Seiten</td></tr>' or "")

    -- Preis
    output = output .. (args["Preis"] and '<tr><td><strong>Preis</strong></td><td>[[Preis::' .. args["Preis"] .. ']]</td></tr>' or "")

    -- Inhaltszusammenfassung
    output = output .. (args["Inhaltszusammenfassung"] and '<tr><td><strong>Inhaltszusammenfassung</strong></td><td>' .. args["Inhaltszusammenfassung"] .. '</td></tr>' or "")
    
    output = output .. '</table>'
    return output
end

return buch