Modul:AutomatischerIndex: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
Stewie (Diskussion | Beiträge) |
Stewie (Diskussion | Beiträge) |
||
Zeile 15: | Zeile 15: | ||
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 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 i = 1 | ||
+ | local ersterBuchstabe = nil | ||
while i <= table.getn(queryResult) | while i <= table.getn(queryResult) | ||
do | 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 = '<h2>' .. ersterBuchtabe .. '</h2>' | ||
+ | end | ||
+ | --an rückgabe string anfügen | ||
returnString = returnString .. mw.text.split(queryResult[i][1],'#')[1] .. " S." ..queryResult[i]['quelle']..'<br>' | returnString = returnString .. mw.text.split(queryResult[i][1],'#')[1] .. " S." ..queryResult[i]['quelle']..'<br>' | ||
i = i +1 | i = i +1 |
Version vom 28. November 2020, 20:48 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 = ""
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 = '<h2>' .. ersterBuchtabe .. '</h2>'
end
--an rückgabe string anfügen
returnString = returnString .. mw.text.split(queryResult[i][1],'#')[1] .. " S." ..queryResult[i]['quelle']..'<br>'
i = i +1
end
return returnString
end
return p