Modul:AutomatischerIndex
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