Modul:AutomatischerIndex: Unterschied zwischen den Versionen

Aus Splitterwiki
Zur Navigation springen Zur Suche springen
 
 
(19 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 11: Zeile 11:
 
local Publikation = frame.args['Publikation']
 
local Publikation = frame.args['Publikation']
 
if Publikation == nil then return nil end
 
if Publikation == nil then return nil end
local queryResult =  mw.smw.ask('[[Typ::Gesamtquellen]][[Publikation::'..Publikation..']|?=#|limit=1999|format=array') --link=none funktioniert nicht über api abfrage daher ?=#
+
--
     return queryResult
+
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
 
end
  
 
return p
 
return p

Aktuelle Version vom 23. Juli 2021, 14:19 Uhr

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