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.