Modul:Spielwiese

aus Wikipedia, der freien Enzyklopädie
Zur Navigation springen Zur Suche springen

Hier können kurzzeitige Code-Tests oder sonstige Spielereien durchgeführt werden.

Zu weitergehenden und dauerhaften Tests siehe Hilfe:Lua #Erprobung.


local p = {}

function p.description(frame)
	local lemma = frame.args[1]
	local wikidata_id
	if lemma then
		wikidata_id = mw.wikibase.getEntityIdForTitle(lemma) or ""
	else wikidata_id = mw.wikibase.getEntityIdForCurrentPage() or ""
	end
	local description = mw.wikibase.getDescription(wikidata_id) or ""
	return "Kurzbeschreibung: " .. description .. " ([[D:" .. wikidata_id .. "|Auf Wikidata bearbeiten]])"
end

-- Funktionen von Benutzer Antonsusi
-- Teilen einer Zeichenkette an enthaltenen Zeilenumbrüchen
local function GetLines(str)
	local tbl = {};
	local text = str;
	local teil;
	sep = '\n';
	if #str == 0 then
		return tbl;
	end
	text = text ..sep
	for i = 1,32767 do   -- while vermeiden, damit sich das im Testbetrieb nicht aufhängen kann, 32767 Zeilen sollten reichen.
		pos = string.find(text,sep) or 0;
		teil = string.sub(text,1,pos-1);
		if pos < 1 then
			break;
		end
		table.insert (tbl,teil);
		text = string.sub(text,pos+1);
	end
	return tbl;
end

-- GetPage liest den Quelltext einer Seite aus und speichert die Zeilen in einer table.
-- Aufruf durch {{#invoke:Spielwiese|GetPage|<namespace>|<pagename>}}
function p.GetPage(frame)
	local namespace = frame.args[1];
	local title = frame.args[2];
	local Seite = mw.title.makeTitle( namespace, title);
	local Content = Seite:getContent()
	local Lines = {};
	local c = 0;
	Text = mw.ustring.sub( Content, 1, 100); -- Begrenzung 
	Lines = GetLines(Content);
	-- hier liegen die Zeilen als table vor. Es folgt testweise eine "Dummy-Ausgabe"
	for i = 1,#Lines do
		Lines[i] = 	Lines[i] ..'<br />';
	end
	local Info = table.concat(Lines)
	return Info;
end

function p.stringcompare(frame)
	return mw.ustring.len(frame.args[1]) .. '\n' .. string.len(frame.args[1]) .. '\n';
end

--

return p