Zuletzt bearbeitet vor 3 Monaten
von Xineohp1506

Modul:Publikation/Zeitschrift: Unterschied zwischen den Versionen

Keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
Zeile 6: Zeile 6:
function zeitschrift.render(frame)
function zeitschrift.render(frame)
     local args = frame.args
     local args = frame.args
    local output = "" -- Initialisierung von output
   
    -- Setze den DISPLAYTITLE basierend auf dem Titel des Buches
    if args["Titel"] then
        helper.setDisplayTitle({title = args["Titel"]})
    end
   
    -- Setze die Inhaltszusammenfassung als semantischen Wert
    if args["Inhaltszusammenfassung"] and args["Inhaltszusammenfassung"] ~= "" then
        local rawSummary = mw.text.unstripNoWiki(args["Inhaltszusammenfassung"]):gsub("<.->", ""):gsub("%[%[.-%]%]", ""):gsub("%{.-%}", "") -- Entferne HTML-Tags und MediaWiki-Markierungen, bewahre geschützte Bereiche wie <nowiki>
        local truncatedSummary = mw.ustring.sub(rawSummary, 1, 250) -- Begrenze auf 250 Zeichen
        helper.setProperty({ args = { ["Inhaltszusammenfassung"] = truncatedSummary } }) -- Setze den semantischen Wert
        mw.ext.seo.set{description = truncatedSummary} -- Setze die Beschreibung
    end
   
    -- OpenGraph-Bild für SEO
    local coverImage = args["Coverbild"] or "DefaultBuchCover.webp"
    mw.ext.seo.set{["og:image"] = mw.uri.fullUrl("File:Library:" .. coverImage)}
   
    -- Coverbild semantisch setzen
if args["Coverbild"] and args["Coverbild"] ~= "" then
    helper.setProperty({ args = { ["Hat Cover"] = args["Coverbild"] } })
end
   
     local output = '<table class="publikation zeitschrift">'
     local output = '<table class="publikation zeitschrift">'


     -- Coverbild
     -- Coverbild
     output = output .. '<tr><td colspan="2" style="text-align: center;">' ..
     output = output .. '<tr><td colspan="2" style="text-align: center;">' ..
         helper.getCoverImage({cover = args["Coverbild"], defaultCover = "Library:Cover:DefaultZeitschriftCover.webp"}) ..
         helper.getCoverImage({cover = args["Coverbild"], defaultCover = "Library:DefaultZeitschriftCover.webp"}) ..
         '</td></tr>'
         '</td></tr>'


Zeile 35: Zeile 59:
             helper.setProperty({ args = { ["Hat Stichwort"] = keyword } }) -- Semantischen Wert setzen
             helper.setProperty({ args = { ["Hat Stichwort"] = keyword } }) -- Semantischen Wert setzen
             output = output .. keyword .. ', '
             output = output .. keyword .. ', '
        end
        output = output:sub(1, -3) .. '</td></tr>' -- Entfernt das letzte Komma
    end
    -- Wichtige Artikel
    if args["Wichtige Artikel"] then
        output = output .. '<tr><td><strong>Wichtige Artikel</strong></td><td>'
        for article in mw.text.gsplit(args["Wichtige Artikel"], ",") do
            article = mw.text.trim(article)
            local articlePage = "Library:Artikel:" .. article:gsub(" ", "_")
            helper.setProperty({ args = { ["Hat wichtigen Artikel"] = article } }) -- Semantischen Wert setzen
            output = output .. '[[' .. articlePage .. '|' .. article .. ']], '
         end
         end
         output = output:sub(1, -3) .. '</td></tr>' -- Entfernt das letzte Komma
         output = output:sub(1, -3) .. '</td></tr>' -- Entfernt das letzte Komma
Zeile 52: Zeile 64:


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


     -- ISSN
     -- ISSN
Zeile 58: Zeile 70:


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


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


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


     -- Standort
     -- Standort
     output = output .. (args["Standort"] and '<tr><td><strong>Standort</strong></td><td>[[Hat Standort::' .. args["Standort"] .. ']]</td></tr>' or "")
     output = output .. (args["Standort"] and '<tr><td><strong>Standort</strong></td><td>[[Standort::' .. args["Standort"] .. ']]</td></tr>' or "")
 
    -- Datensatz ID
    output = output .. (args["Datensatz ID"] and '<tr><td><strong>Datensatz ID</strong></td><td>' .. args["Datensatz ID"] .. '</td></tr>' or "")
 
    -- Wichtige Artikel
    if args["Wichtige Artikel"] then
        output = output .. '<tr><td><strong>Wichtige Artikel</strong></td><td>'
        for article in mw.text.gsplit(args["Wichtige Artikel"], ",") do
            article = mw.text.trim(article)
            local articlePage = "Library:Artikel:" .. article:gsub(" ", "_")
            helper.setProperty({ args = { ["Hat wichtigen Artikel"] = article } }) -- Semantischen Wert setzen
            output = output .. '[[' .. articlePage .. '|' .. article .. ']], '
        end
        output = output:sub(1, -3) .. '</td></tr>' -- Entfernt das letzte Komma
    end


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


     output = output .. '</table>'
     output = output .. '</table>'


     -- Kategorien setzen
-- Kategorien setzen
     helper.addCategories({
    local categories = {} -- Korrekte Initialisierung der Tabelle
         args["Verlag"],
   
         args["ISSN"],
     -- Kategorien basierend auf Argumenten hinzufügen
         args["Jahrgang"]
     if args["Genre"] then
     })
        for genre in mw.text.gsplit(args["Genre"], ",") do
 
            table.insert(categories, mw.text.trim(genre))
         end
    end
    if args["Standort"] then
        table.insert(categories, "Standort:" .. args["Standort"])
    end
    if args["Autor"] and args["Autor"] ~= "" then
         for autor in mw.text.gsplit(args["Autor"], ",") do
            table.insert(categories, "Autor:" .. mw.text.trim(autor))
         end
    end
    if args["Verlag"] and args["Verlag"] ~= "" then
        table.insert(categories, args["Verlag"])
    end
   
     -- Hinzufügen allgemeiner Kategorien
    table.insert(categories, "Zeitschriften")
    table.insert(categories, "Alle Publikationen")
   
    output = output .. helper.addCategories({categories = categories, sortkey = args["Titel"]})
   
     return output
     return output
end
end
return zeitschrift
return zeitschrift

Version vom 26. November 2024, 21:46 Uhr

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

local getArgs = require('Module:Arguments').getArgs
local helper = require("Modul:Publikation/Helper")
local related = require("Modul:Publikation/Related")
local zeitschrift = {}

function zeitschrift.render(frame)
    local args = frame.args
    local output = "" -- Initialisierung von output
    
    -- Setze den DISPLAYTITLE basierend auf dem Titel des Buches
    if args["Titel"] then
        helper.setDisplayTitle({title = args["Titel"]})
    end
    
    -- Setze die Inhaltszusammenfassung als semantischen Wert
    if args["Inhaltszusammenfassung"] and args["Inhaltszusammenfassung"] ~= "" then
        local rawSummary = mw.text.unstripNoWiki(args["Inhaltszusammenfassung"]):gsub("<.->", ""):gsub("%[%[.-%]%]", ""):gsub("%{.-%}", "") -- Entferne HTML-Tags und MediaWiki-Markierungen, bewahre geschützte Bereiche wie <nowiki>
        local truncatedSummary = mw.ustring.sub(rawSummary, 1, 250) -- Begrenze auf 250 Zeichen
        helper.setProperty({ args = { ["Inhaltszusammenfassung"] = truncatedSummary } }) -- Setze den semantischen Wert
        mw.ext.seo.set{description = truncatedSummary} -- Setze die Beschreibung
    end
    
    -- OpenGraph-Bild für SEO
    local coverImage = args["Coverbild"] or "DefaultBuchCover.webp"
    mw.ext.seo.set{["og:image"] = mw.uri.fullUrl("File:Library:" .. coverImage)}
    
    -- Coverbild semantisch setzen
	if args["Coverbild"] and args["Coverbild"] ~= "" then
    	helper.setProperty({ args = { ["Hat Cover"] = args["Coverbild"] } })
	end
    
    local output = '<table class="publikation zeitschrift">'

    -- Coverbild
    output = output .. '<tr><td colspan="2" style="text-align: center;">' ..
        helper.getCoverImage({cover = args["Coverbild"], defaultCover = "Library:DefaultZeitschriftCover.webp"}) ..
        '</td></tr>'

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

    -- Autoren
    if args["Autor"] then
        output = output .. '<tr><td><strong>Autor(en)</strong></td><td>'
        for author in mw.text.gsplit(args["Autor"], ",") do
            author = mw.text.trim(author)
            local authorPage = "Library:Autor:" .. author:gsub(" ", "_")
            helper.setProperty({ args = { ["Hat Autor"] = author } }) -- Semantischen Wert setzen
            output = output .. '[[' .. authorPage .. '|' .. author .. ']], '
        end
        output = output:sub(1, -3) .. '</td></tr>' -- Entfernt das letzte Komma
    end

    -- Stichworte
    if args["Stichworte"] then
        output = output .. '<tr><td><strong>Stichworte</strong></td><td>'
        for keyword in mw.text.gsplit(args["Stichworte"], ",") do
            keyword = mw.text.trim(keyword)
            helper.setProperty({ args = { ["Hat Stichwort"] = keyword } }) -- Semantischen Wert setzen
            output = output .. keyword .. ', '
        end
        output = output:sub(1, -3) .. '</td></tr>' -- Entfernt das letzte Komma
    end

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

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

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

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

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

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

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

    -- Wichtige Artikel
    if args["Wichtige Artikel"] then
        output = output .. '<tr><td><strong>Wichtige Artikel</strong></td><td>'
        for article in mw.text.gsplit(args["Wichtige Artikel"], ",") do
            article = mw.text.trim(article)
            local articlePage = "Library:Artikel:" .. article:gsub(" ", "_")
            helper.setProperty({ args = { ["Hat wichtigen Artikel"] = article } }) -- Semantischen Wert setzen
            output = output .. '[[' .. articlePage .. '|' .. article .. ']], '
        end
        output = output:sub(1, -3) .. '</td></tr>' -- Entfernt das letzte Komma
    end

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

    output = output .. '</table>'

	-- Kategorien setzen
    local categories = {} -- Korrekte Initialisierung der Tabelle
    
    -- Kategorien basierend auf Argumenten hinzufügen
    if args["Genre"] then
        for genre in mw.text.gsplit(args["Genre"], ",") do
            table.insert(categories, mw.text.trim(genre))
        end
    end
    if args["Standort"] then
        table.insert(categories, "Standort:" .. args["Standort"])
    end
    if args["Autor"] and args["Autor"] ~= "" then
        for autor in mw.text.gsplit(args["Autor"], ",") do
            table.insert(categories, "Autor:" .. mw.text.trim(autor))
        end
    end
    if args["Verlag"] and args["Verlag"] ~= "" then
        table.insert(categories, args["Verlag"])
    end
    
    -- Hinzufügen allgemeiner Kategorien
    table.insert(categories, "Zeitschriften")
    table.insert(categories, "Alle Publikationen")
    
    output = output .. helper.addCategories({categories = categories, sortkey = args["Titel"]})
    
    return output
end
return zeitschrift