Eigene Liquid-Filter definieren

Filter in Liquid

Um Texte formatiert auszugeben, können in Liquid-Templates sogenannte Filter verwendet werden. Liquid liefert einige Standardfilter mit, etwa den Filter truncate, der eine Ausgabe auf eine bestimmte Anzahl Zeichen beschneidet:

Die ersten 50 Zeichen des Hauptinhalts lauten:
{{ page.body | truncate: 50 }}

Eine Übersicht über die Standardfilter findet sich in der Syntaxbeschreibung von Liquid.

Eigene Filter definieren und einbinden

Der Entwickler einer Rails-Connector-Applikation kann eigene Filter definieren und diese zum Gebrauch in den Liquid-Templates der Applikation zur Verfügung stellen. Ein Filter ist im Grunde nur eine Methode, die mindestens einen Parameter hat und die einen modifizierten Wert zurückgibt.

Im folgenden Beispiel wird ein Filter definiert, der einen Text mit h1-Tags umschließt:

module MyFilters

  def headline(input)
    "<h1>#{input}</h1>"
  end

end

Ein Filter muss in einem Modul definiert sein, das innerhalb der Rails-Applikation im Ordner /app/filters liegt. Der obige Filter müsste also in der Datei /app/filters/my_filters.rb liegen. Der Filter könnte dann beispielsweise folgendermaßen in einem Liquid-Template verwendet werden:

{{ "Meine Überschrift" | headline }}

Das Ergebnis wäre:

<h1>Meine Überschrift</h1>

Weitere Informationen

Weitere Anregungen für die Erstellung von Liquid-Filtern kann der Quellcode der Standardfilter von Liquid liefern.