Modul:Tools
Dieses Modul ist getestet und für den projektweiten Gebrauch geeignet. Es kann in Vorlagen benutzt und auf Hilfeseiten erläutert werden. Entwicklungen an dem Modul sollten auf Tools/Test und die Anwendung auf der Spielwiese getestet werden, da wiederholte Trial-and-Error-Edits die Resourcen stark belasten können. |
Das Modul stellt eine Reihe von Funktionen zur Verfügung, die häufig in anderen Modulen oder Vorlagen gebraucht werden könnten.
Funktionen zur Verwendung intern und in anderen Modulen
Die folgenden Funktionen können innerhalb des Moduls verwendet und sind nicht von Vorlagen aus aufrufbar.
strtok
In Anlehnung an die gleichnamige Funktion im PHP zerlegt diese Funktion eine Zeichenkette an einem anzugebenden Trennzeichen. Es wird eine Tabelle mit allen einzelnen Zeichenketten zurückgegeben.
function strtok ( stringStr, delimiterStr )
Beispiel:
-- Zerlegung der Zeichenkette
liste = strtok ( 'Januar;Februar;März', ';' )
-- Inhalt der Liste:
liste = { 'Januar', 'Februar', 'März' }
rmNamespace
Entfernt aus einem Artikelnamen den Namensraum
function rmNamespace ( pageName )
Beispiel:
-- Entfernung des Namensraums
seite = rmNamespace ( 'Modul:Zeit/Params/Doku' )
-- Inhalt der Variablen:
seite = 'Zeit/Params/Doku'
rmBRTag
Entfernt BR-Tags aus einem Text
function rmBRTag ( text )
Beispiel:
-- Entfernung des BR-Tags
text = rmNamespace ( 'Text mit<br />einem Zeilenumbruch' )
-- Inhalt der Variablen:
text = 'Text mit einem Zeilenumbruch'
Funktionen
Die folgenden Funktionen können in Vorlagen und Artikeln benutzt werden
firstBasepagename
– filtert aus Artikelnamen den Namen der obersten Seite heraus und entfernt den Modulnamen. AusModul:Zeit/Params/Doku
wirdZeit
. Es wird der erste übergebene Parameter verwendet. Optional kann auch ein Parameter mit der Bezeichnung|page=
verwendet werden.
Einbindung in anderen Modulen
Folgende Module verwenden dieses Modul. Bei Änderung an diesem Modul sollte die Funktionsfähigkeit der anderen Module nicht beeinträchtigt werden.
Verwendung in anderen Vorlagen
Folgende Vorlagen verwenden dieses Modul:
- {{FIRSTBASEPAGENAME}} – benutzt die Funktion
firstBasepagename
- Die obige Dokumentation wurde aus der Seite Modul:Tools/Doku eingefügt. (bearbeiten | Versionsgeschichte) Die Kategorien für dieses Modul sollten in der Dokumentation eingetragen werden. Die Interwiki-Links sollten auf Wikidata eingepflegt werden.
- Liste der Unterseiten
-- internal Functions
local function _getParameters( frame_args, arg_list )
local new_args = {};
local index = 1;
local value;
for i,arg in ipairs( arg_list ) do
value = frame_args[arg]
if value == nil then
value = frame_args[index];
index = index + 1;
end
new_args[arg] = value;
end
return new_args;
end
local tools = {}
-- Functions to be used in other modules
function tools.strtok ( stringStr, delimiterStr )
local s = stringStr..delimiterStr
local words = {}
for w in (s):gmatch('([^'..delimiterStr..']*)'..delimiterStr) do
table.insert(words, w)
end
return words
end
function tools.rmNamespace ( pageName )
return tools.strtok(pageName,':')[2] or pageName
end
function tools.rmBRTag ( text )
return mw.ustring.gsub( text, '<br */*>', ' ' )
end
-- Functions to be used in templates
function tools.firstBasepagename (frame)
local new_args = _getParameters( frame.args, {'page'} );
local page = new_args['page'] or '';
return tools.strtok(tools.rmNamespace(page),'/')[1] or page
end
return tools