Modul:AutomatischerIndex

Aus Splitterwiki
Zur Navigation springen Zur Suche springen

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

--[[
Lua Alternative für Vorlage:AutomatischerIndex - bessere Performance in allen Bereichen
erwartet eine Publikation als argument
]]--


local p = {} --local p = {} -- p steht für Paket (engl. package)

function p.Index( frame )
	--teste ob argument ungleich nichts
	local Publikation = frame.args['Publikation']
	if Publikation == nil then return nil end
	--
	local returnString = '<div style="clear:left; " ></div>' --clear left für formatierung (Inhalt von Vorlage:Umbruch_links)
	local queryResult =  mw.smw.ask('[[Typ::Gesamtquellen]][[Publikation::'..Publikation..']|?=#|limit=1999|format=array|?Seitenausgabe Gesamtquellen  = quelle') --link=none funktioniert nicht über api abfrage daher ?=#
    local i = 1
    local ersterBuchstabe = nil
	while i <= table.getn(queryResult)
		do
			--ersten buchstaben herausfinden
			if ersterBuchstabe ~= mw.text.truncate(mw.text.split(queryResult[i][1],'#')[1],1,'')
				then
					-- setze aktuellen ersten buchstaben
					ersterBuchstabe = mw.text.truncate(mw.text.split(queryResult[i][1],'#')[1],1,'')
					-- schreibe überschrift
					returnString = returnString .. '<h2>' .. ersterBuchstabe .. '</h2>'
				end
			--an rückgabe string anfügen
			if queryResult[i]['quelle'] ~= nil then
					returnString = returnString .. mw.text.split(queryResult[i][1],'#')[1] .. " S." ..queryResult[i]['quelle']..'<br>'
			end
			i = i +1
		end
    return returnString .. '[[Kategorie:Index]]'
end

return p