Zum Inhalt springen

Modul:TemplateUtils

Aus Wikibooks

Informationen zu dieser Dokumentation
Modul TemplateUtils

Modulbeschreibung

Modul mit Utility-Funktionen, die vor allem für Vorlagenporgrammierung geeignet sind.

Funktionen

current_project

Gibt das aktuelle Projekt zurück.

unstripNoWiki

Extracts the text behind a <nowiki> tag.

Parameter

  • code – Code mit nowiki strip markers

expand

Expandiert Wiki-Code, welcher über den Parameter code übergeben wurde.

Parameter

  • code – der zu expandierende Code

demo

Expandiert Wiki-Code wie die Methode expand(). Man Ende werden aber Kategorien aus der Expandierung entfernt. Dies ist zum Beispiel hilfreich, wenn Vorlagen demonstriert werden.

Parameter

  • code – der zu expandierende Code

random

Gibt einen zufälligen Inhalt zurück


Information


--- Modul mit Utility-Funktionen, die vor allem für Vorlagenporgrammierung geeignet sind.

local TemplateUtils = {}

local utils = require("Modul:Utils")

--- Gibt das aktuelle Projekt zurück.
function TemplateUtils.current_project(frame)
    local title = mw.title.getCurrentTitle().text

    return mw.text.split(title, "[:/]")[1]
end

--- Extracts the text behind a <nowiki><nowiki></nowiki> tag.
--
-- @param code Code mit nowiki strip markers
function TemplateUtils.unstripNoWiki(frame)
    return utils.unstripNoWiki(frame.args.code or "")
end
    

--- Expandiert Wiki-Code, welcher über den Parameter <code>code</code> übergeben wurde.
--
-- @param code der zu expandierende Code
function TemplateUtils.expand(frame)
    return frame:preprocess(utils.unstripNoWiki(frame.args.code or ""))
end

--- Expandiert Wiki-Code wie die Methode <code>expand()</code>. Man Ende werden aber Kategorien aus der Expandierung entfernt. Dies ist zum Beispiel hilfreich, wenn Vorlagen demonstriert werden.
--
-- @param code der zu expandierende Code
function TemplateUtils.demo(frame)
    -- expand code
    local result = TemplateUtils.expand(frame)

    -- Kategorien entfernen
    result = result:gsub("%[%[Kategorie:[^%]]+%]%]", "")

    return result
end

--- Gibt einen zufälligen Inhalt zurück
--
function TemplateUtils.random(frame)
   math.randomseed(os.time() + mw.title.getCurrentTitle().id)

   local list = utils.to_table(frame)

   return list[math.random(#list)]
end

return TemplateUtils