Zum Inhalt springen

Modul:Tools

Aus Wikivoyage
Dokumentation für das Modul Tools[Ansicht] [Bearbeiten] [Versionsgeschichte] [Aktualisieren]

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. Aus Modul:Zeit/Params/Doku wird Zeit. 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:

Hinweise
-- 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