Zum Inhalt springen

Modul:FileUtil

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

FileUtil – Modul mit Funktionen, die das Arbeiten mit Mediendatein (z.B. Bilder, Videos, etc.) erleichtern sollen.


Funktionen für Vorlagen

addParameter – fügt einer vorhandenen Medieneinbindung einen neuen Parameter hinzu.
Parameter:
  • 1 oder file – Die Medieneinbindung (z.B. "[[Datei:Name.ext]]")
  • 2 oder parameter – Neuer Parametername (z.B. "link")
  • 3 oder value (optional) – Neuer Wert (z.B. "Hauptseite")
Rückgabewert:
  • Eine neue Medieneinbindung mit hinzugefügtem Parameter (und Wert) (z.B. [[Datei:Name.ext|link=Hauptseite]])
  • Die alte Medieneinbindung wenn der neue Parameter bereits vorhanden ist
  • nichts – wenn Medieneinbindung unzulässig
replaceParameter – fügt einer vorhandenen Medieneinbindung einen neuen Parameter hinzu bzw. ersetzt den Wert eines vorhandenen Parameters
Parameter:
  • 1 oder file – Die Medieneinbindung (z.B. "[[Datei:Name.ext|parameter=alter Wert]]")
  • 2 oder parameter – Neuer oder vorhandener Parametername (z.B. "parameter")
  • 3 oder value (optional) – Neuer Wert (z.B. "neuer Wert")
Rückgabewert:
  • Eine neue Medieneinbindung mit hinzugefügtem Parameter bzw. ersetztem Wert, (z.B. [[Datei:Name.ext|parameter=neuer Wert]])
  • nichts – wenn Medieneinbindung unzulässig
removeParameter – entfernt einen Parameter aus einer vorhandenen Medieneinbindung
Parameter:
  • 1 oder file – Die Medieneinbindung (z.B. "[[Datei:Name.ext|link=test]]")
  • 2 oder parameter – Name des Parameters der entfernt werden soll (z.B. "link")
Rückgabewert:
  • Eine neue Medieneinbindung mit entferntem Parameter (z.B. [[Datei:Name.ext]])
  • nichts – wenn Medieneinbindung unzulässig

Beispiele (Testseite)

Eine Testseite illustriert praktische Beispiele.
Hinweise
--[=[ MediaUtil
Utilities for handling of media files, e.g. images, videos, ...
* addParameter()
* replaceParameter()
]=]

-- table for export
local FileUtil = {}

FileUtil.addParameter = function ( file, parameter, value ) -- "value" is optional (default: "nil")
    return FileUtil.replaceParameter( file, parameter, value , false)
end -- FileUtil.addParameter()

FileUtil.replaceParameter = function ( file, parameter, value , replace) -- "value" is optional   (default: "nil")
                                                                         -- "replace" is optional (default: "true")
    local replace = (replace == Nil or replace == true)
    if type( file ) == "string" then
        local fileNew,n = FileUtil.removeParameter(file, parameter)
        if n==0 or replace then
            if value then
                fileNew = fileNew:gsub('(%]%])','|'..parameter..'='..value..']]')
            else
                fileNew = fileNew:gsub('(%]%])','|'..parameter..']]')
            end
            return fileNew
        else
            return file
        end
    end
    return false
end -- FileUtil.replaceParameter()

FileUtil.removeParameter = function ( file, parameter )
    if type( file ) == "string" then
        local fileNew,n = file:gsub('|%s*'..parameter..'%s*[^|%]]*%s*([|%]])','%1')
        return fileNew,n
    end
    return false
end -- FileUtil.removeParameter()


-- Provide template access and expose URLutil table to require
local p = {}

function p.addParameter( frame )
    return FileUtil.addParameter( frame.args[1] or frame.args["file"],
                                  frame.args[2] or frame.args["parameter"],
                                  frame.args[3] or frame.args["value"]) or ""
end
function p.replaceParameter( frame )
    return FileUtil.replaceParameter( frame.args[1] or frame.args["file"],
                                      frame.args[2] or frame.args["parameter"],
                                      frame.args[3] or frame.args["value"]) or ""
end
function p.removeParameter( frame )
    return FileUtil.removeParameter( frame.args[1] or frame.args["file"],
                                     frame.args[2] or frame.args["parameter"]) or ""
end
function p.FileUtil()
    return FileUtil
end

return p