Modul:Dummy
Die Dokumentation für dieses Modul kann unter Modul:Dummy/Doku erstellt werden
-- Dieses Modul dient zum Testen diverser Mediawiki-spezifischer Funktionen
local p = {}
-- Auslesen einer Seite. Parameter: 1=Namensraumnummer und 2= Seitenlemma (ohne Namensraum)
-- Rückgabe: Ein String mit dem Quelltext der Seite
function SeiteLesen(NR,Titel)
local Seite = mw.title.makeTitle(NR, Titel)
local Text;
local Exist = Seite.exists
if Exist then
Text = Seite:getContent()
else
Text = '<span class="error">Seite existiert nicht!</span>'
end
return Exist, Text;
end
--split_newlines: Aufteilen des Seiteninhalts in eine Table mit den Zeilen
local function split_newlines(s)
local ts = {}
local str = s ..'\n'
while 1 do
local pos = mw.ustring.find(str,'\n',1,true);
if pos then
local line = mw.ustring.sub(str,1, pos-1)
table.insert(ts,line)
str = mw.ustring.sub(str,pos+1)
else
break;
end
end
return ts
end
-- splitaline: Auftrennen einer Textzeile an den Stellen mit einem Separatorzeichen
local function splitaline(str,Trenner)
local sep = mw.ustring.sub(Trenner,1,1) or ';'
local Data = {};
local Teil = "";
str = str .. sep;
if mw.ustring.len(str) < 2 then return false, Data; end
while 1 do
pos = mw.ustring.find(str,sep,1,true);
if pos then
Teil = mw.ustring.sub(str,1,pos-1);
table.insert(Data,Teil);
str = mw.ustring.sub(str,pos+1)
else
break;
end
end
return true, Data;
end
function p.ReadThePage(frame)
local Namensraum = frame.args[1] or 0;
local Seitenname = frame.args[2] or "";
local Felder = {}
local isOk, Text =SeiteLesen(Namensraum,Seitenname)
if not isOk then
return Text;
end
local Zeilen = {}
local Lines= split_newlines(Text,true);
for i,v in ipairs(Lines) do
isOk, Felder = splitaline(v,';');
if isOk then
table.insert(Zeilen,Felder);
end
isOk = false;
end
--[=[
Hier liegt der Inhalt wie folgt vor:
Eine Tabelle "Lines" mit den Zeilen als ein String
Eine Tabelle "Zeilen", deren Elemente eine Tabelle "Felder" ist, welche die aufgetrennten Zeilen enthält.
]=]
-- Test: Ausgabe
local Ausgabe = "";
local Reihe = "";
for i,v in ipairs(Zeilen) do
Reihe = table.concat(Zeilen[i],'~')
Ausgabe = Ausgabe .. Reihe .. '°\n'
end
return Ausgabe;
end
return p;