Modul:AutomatischerIndex: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
Stewie (Diskussion | Beiträge) |
Stewie (Diskussion | Beiträge) |
||
(18 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 ?=# | + | -- |
− | + | 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