SlideShare ist ein Scribd-Unternehmen logo
Templating on Rails

         Stefan Sprenger
  d.k.d Internet Service GmbH
Agenda
• Templating
  •   Warum?
• Liquid
  •   Markup
  •   in Rails integrieren
  •   ohne Rails?
Templating
Warum?
Hauptgründe


• nicht jeder kann programmieren
• einfacher zu bearbeiten
• sieht schöner aus
Entwickler
    vs.


Designer
Entwickler

• will Aufgaben abgeben
• Zugriff auf Objekte begrenzen
• möchte Kontrolle behalten
• Template-Engine sollte leicht
  integrierbar sein
Designer

• möchte sein Layout administrieren
• kann HTML
• kennt sich nicht mit Rails aus
• es sollte leicht erlernbar sein
Was bringt
Rails mit?
Nichts.
Und was ist mit ERB?
Verletzt Anforderungen.
Liquid
Liquid

• Template Engine
• eigene mächtige Markup-Sprache
• als Gem und Plugin verfügbar
• seit 2006 aktiv in Entwicklung
Wann sollte ich
Liquid nutzen?
Wann sollte ich Liquid nutzen?
Ich will..
    •   Benutzern ermöglichen ihr Layout zu
        administrieren
    •   die Zugriffe regeln
    •   Templates in der Datenbank speichern
    •   Liquid auch für E-Mails nutzen
Wer nutzt Liquid?

•   Shopify
•   Mephisto
•   Palani
•   ... und viele andere
Markup
Markup



• Output Markup
• Tag Markup
Markup


<h1>Produktverzeichnis</h1>
<ul>
 <li>Raumschiff</li>
 <li>Rennwagen</li>
</ul>
Markup

                                 Output
<h1>{{ title }}</h1>
<ul>
 {% for product in products %}   Tag
   <li>{{ product.name }}</li>
 {% endfor %}
</ul>
Markup - Tags

• Bedingungen
• Schleifen
• Fallunterscheidung
• Zyklen
• aber auch erweiterbar...
Markup - Filter


{% for product in products %}
                                Filter
  {{ product.name | upcase }}
{% endfor %}
Markup - Filter

• auf Output-Markup anwendbar
• Liquid liefert Filter mit
• leicht erweiterbar
• Liquid greift auf Rails-Helper zu
Liquid in
Rails integrieren
Möglichkeiten

• als Ersatz für ERB
  •   *.liquid-Dateien in app/views/
• „Liquid-Partials“
  •   Partielles Rendern von Liquid-Markup
  •   z.B. für größere Texte
Vorbereitungen
• im Model Zugriffsrechte
  definieren


  class Product < ActiveRecord::Base
    liquid_methods :name
  end
Implementierung
• Parsing und Rendering sind
  voneinander getrennt

  t = Liquid::Template.parse(“Hallo {{ usergroup }}!“)

  t.render( ‘usergroup‘ => ‘Rails Usergroup‘ )

                                                   String
  => "Hallo Rails Usergroup!"
Funktioniert Liquid
 auch ohne Rails?
Ja.
gem install liquid
Vorbereitungen

•   Klasse muss to_liquid-Methode haben

    class Book

      def initialize(title)
        @title = title
      end

      def to_liquid             Hash
        { ‘title‘ => @title }
      end

    end
Implementierung

require 'rubygems'
require 'liquid'
require 'book'

book = Book.new('Metaprogramming Ruby')
t = Liquid::Template.parse('Es heißt {{ book.title }}')

puts t.render('book' => book)
=> "Es heißt Metaprogramming Ruby"
Mehr Informationen


• www.liquidmarkup.org
• http://github.com/tobi/liquid/
• Railscast #118
Q&A
Danke.

Weitere ähnliche Inhalte

Andere mochten auch

Brochure Raderadvies En Raderbeheer
Brochure Raderadvies En RaderbeheerBrochure Raderadvies En Raderbeheer
Brochure Raderadvies En Raderbeheerroyschippers
 
DERECHO AGARIO INSTITUCIONES QUE LO COMPONEN
 DERECHO AGARIO INSTITUCIONES QUE LO COMPONEN DERECHO AGARIO INSTITUCIONES QUE LO COMPONEN
DERECHO AGARIO INSTITUCIONES QUE LO COMPONEN
La Mivi Noguera
 
Vách Ngăn Vệ Sinh MFC
Vách Ngăn Vệ Sinh MFCVách Ngăn Vệ Sinh MFC
Vách Ngăn Vệ Sinh MFC
Van Phong
 
Dgb5 2 4
Dgb5 2 4Dgb5 2 4
Dgb5 2 4
José Lopez
 
Instrumen pai thn 1
Instrumen pai thn 1Instrumen pai thn 1
Instrumen pai thn 1
Asmah Hassan
 
Präsentation ÖWork_Shop März 2013
Präsentation ÖWork_Shop März 2013Präsentation ÖWork_Shop März 2013
Präsentation ÖWork_Shop März 2013
Austrian National Tourist Office
 
Octubre
OctubreOctubre
Octubre
Vanescc
 
Brandschutz | weyer spezial
Brandschutz | weyer spezialBrandschutz | weyer spezial
Brandschutz | weyer spezial
weyer gruppe
 
Leitfaden Netzwerke KnüPfen
Leitfaden Netzwerke KnüPfenLeitfaden Netzwerke KnüPfen
Leitfaden Netzwerke KnüPfenguest97b99cc
 
Unterricht an der Kalaidos FH, Zürich
Unterricht an der Kalaidos FH, ZürichUnterricht an der Kalaidos FH, Zürich
Unterricht an der Kalaidos FH, ZürichAtizo AG
 
Stipendium präsentation
Stipendium präsentationStipendium präsentation
Stipendium präsentationMochibon
 
Butterflies
ButterfliesButterflies
Butterflieswings
 
Gegendarstellung IOERT vs DEGRO Artikel - Neue Techniken ermöglichen kürzere ...
Gegendarstellung IOERT vs DEGRO Artikel - Neue Techniken ermöglichen kürzere ...Gegendarstellung IOERT vs DEGRO Artikel - Neue Techniken ermöglichen kürzere ...
Gegendarstellung IOERT vs DEGRO Artikel - Neue Techniken ermöglichen kürzere ...
Björn Behrendt
 
Web-2.0-Forschung der KWARC-Gruppe
Web-2.0-Forschung der KWARC-GruppeWeb-2.0-Forschung der KWARC-Gruppe
Web-2.0-Forschung der KWARC-Gruppe
Christoph Lange
 
Trends im IT Outsourcing 2010
Trends im IT Outsourcing 2010Trends im IT Outsourcing 2010
Trends im IT Outsourcing 2010Ralf Pawlowitz
 
Tanatalogia generalidades
Tanatalogia generalidadesTanatalogia generalidades
Tanatalogia generalidades
Gina Colin
 
IT auf Grossbaustellen - IT Betrieb
IT auf Grossbaustellen  - IT BetriebIT auf Grossbaustellen  - IT Betrieb
IT auf Grossbaustellen - IT Betrieb
mmi-consult
 
Ambiente word de sebastian xD
Ambiente word de sebastian xDAmbiente word de sebastian xD
Ambiente word de sebastian xD
jsduartec2008
 
EL COMPAS SIMPLE
EL COMPAS SIMPLEEL COMPAS SIMPLE

Andere mochten auch (20)

Brochure Raderadvies En Raderbeheer
Brochure Raderadvies En RaderbeheerBrochure Raderadvies En Raderbeheer
Brochure Raderadvies En Raderbeheer
 
DERECHO AGARIO INSTITUCIONES QUE LO COMPONEN
 DERECHO AGARIO INSTITUCIONES QUE LO COMPONEN DERECHO AGARIO INSTITUCIONES QUE LO COMPONEN
DERECHO AGARIO INSTITUCIONES QUE LO COMPONEN
 
Vách Ngăn Vệ Sinh MFC
Vách Ngăn Vệ Sinh MFCVách Ngăn Vệ Sinh MFC
Vách Ngăn Vệ Sinh MFC
 
Dgb5 2 4
Dgb5 2 4Dgb5 2 4
Dgb5 2 4
 
Dehnhard, I., Weiland, P. (2011, März). Toolbasierte Datendokumentation in de...
Dehnhard, I., Weiland, P. (2011, März). Toolbasierte Datendokumentation in de...Dehnhard, I., Weiland, P. (2011, März). Toolbasierte Datendokumentation in de...
Dehnhard, I., Weiland, P. (2011, März). Toolbasierte Datendokumentation in de...
 
Instrumen pai thn 1
Instrumen pai thn 1Instrumen pai thn 1
Instrumen pai thn 1
 
Präsentation ÖWork_Shop März 2013
Präsentation ÖWork_Shop März 2013Präsentation ÖWork_Shop März 2013
Präsentation ÖWork_Shop März 2013
 
Octubre
OctubreOctubre
Octubre
 
Brandschutz | weyer spezial
Brandschutz | weyer spezialBrandschutz | weyer spezial
Brandschutz | weyer spezial
 
Leitfaden Netzwerke KnüPfen
Leitfaden Netzwerke KnüPfenLeitfaden Netzwerke KnüPfen
Leitfaden Netzwerke KnüPfen
 
Unterricht an der Kalaidos FH, Zürich
Unterricht an der Kalaidos FH, ZürichUnterricht an der Kalaidos FH, Zürich
Unterricht an der Kalaidos FH, Zürich
 
Stipendium präsentation
Stipendium präsentationStipendium präsentation
Stipendium präsentation
 
Butterflies
ButterfliesButterflies
Butterflies
 
Gegendarstellung IOERT vs DEGRO Artikel - Neue Techniken ermöglichen kürzere ...
Gegendarstellung IOERT vs DEGRO Artikel - Neue Techniken ermöglichen kürzere ...Gegendarstellung IOERT vs DEGRO Artikel - Neue Techniken ermöglichen kürzere ...
Gegendarstellung IOERT vs DEGRO Artikel - Neue Techniken ermöglichen kürzere ...
 
Web-2.0-Forschung der KWARC-Gruppe
Web-2.0-Forschung der KWARC-GruppeWeb-2.0-Forschung der KWARC-Gruppe
Web-2.0-Forschung der KWARC-Gruppe
 
Trends im IT Outsourcing 2010
Trends im IT Outsourcing 2010Trends im IT Outsourcing 2010
Trends im IT Outsourcing 2010
 
Tanatalogia generalidades
Tanatalogia generalidadesTanatalogia generalidades
Tanatalogia generalidades
 
IT auf Grossbaustellen - IT Betrieb
IT auf Grossbaustellen  - IT BetriebIT auf Grossbaustellen  - IT Betrieb
IT auf Grossbaustellen - IT Betrieb
 
Ambiente word de sebastian xD
Ambiente word de sebastian xDAmbiente word de sebastian xD
Ambiente word de sebastian xD
 
EL COMPAS SIMPLE
EL COMPAS SIMPLEEL COMPAS SIMPLE
EL COMPAS SIMPLE
 

Ähnlich wie Liquid - Templating on Rails

Grails im Überblick und in der Praxis
Grails im Überblick und in der PraxisGrails im Überblick und in der Praxis
Grails im Überblick und in der Praxis
Tobias Kraft
 
Ruby und Rails für .NET Entwickler
Ruby und Rails für .NET EntwicklerRuby und Rails für .NET Entwickler
Ruby und Rails für .NET Entwickler
NETUserGroupBern
 
Ruby on Rails in a metro session
Ruby on Rails in a metro sessionRuby on Rails in a metro session
Ruby on Rails in a metro sessionVirttoo org
 
Perl Renaissance Reloaded
Perl Renaissance ReloadedPerl Renaissance Reloaded
Perl Renaissance Reloaded
Gregor Goldbach
 
Webinar - ABAP CDS Views
Webinar - ABAP CDS ViewsWebinar - ABAP CDS Views
Webinar - ABAP CDS Views
Cadaxo GmbH
 
2007 - Basta!: Nach soa kommt soc
2007 - Basta!: Nach soa kommt soc2007 - Basta!: Nach soa kommt soc
2007 - Basta!: Nach soa kommt soc
Daniel Fisher
 
Ruby On Rails Einführung
Ruby On Rails EinführungRuby On Rails Einführung
Ruby On Rails Einführung
Reinhold Weber
 
Blank Template für Joomla!
Blank Template für Joomla!Blank Template für Joomla!
Blank Template für Joomla!
Alexander Schmidt
 
Developer Best Practices (Robotic Enterprise Framework REF) – Anwendung und d...
Developer Best Practices (Robotic Enterprise Framework REF) – Anwendung und d...Developer Best Practices (Robotic Enterprise Framework REF) – Anwendung und d...
Developer Best Practices (Robotic Enterprise Framework REF) – Anwendung und d...
Cristina Vidu
 
Ist GraphQL das bessere REST
Ist GraphQL das bessere RESTIst GraphQL das bessere REST
Ist GraphQL das bessere REST
Martin Abraham
 
HTML5 - presentation at W3C-Tag 2009
HTML5 - presentation at W3C-Tag 2009HTML5 - presentation at W3C-Tag 2009
HTML5 - presentation at W3C-Tag 2009
Felix Sasaki
 
Reif? Scala für Enterprise-Applikationen
Reif? Scala für Enterprise-ApplikationenReif? Scala für Enterprise-Applikationen
Reif? Scala für Enterprise-Applikationen
adesso AG
 
FMK2015: FrameWork Konzepte in FileMaker Pro by Wolfgang Wunderlich
FMK2015: FrameWork Konzepte in FileMaker Pro by Wolfgang WunderlichFMK2015: FrameWork Konzepte in FileMaker Pro by Wolfgang Wunderlich
FMK2015: FrameWork Konzepte in FileMaker Pro by Wolfgang Wunderlich
Verein FM Konferenz
 
chapter zürich rpa best practices
chapter zürich rpa best practiceschapter zürich rpa best practices
chapter zürich rpa best practices
Cristina Vidu
 
PHP5 und Oracle
PHP5 und OraclePHP5 und Oracle
PHP5 und Oracle
Mayflower GmbH
 
Moderner Webentwicklungs-Workflow
Moderner Webentwicklungs-WorkflowModerner Webentwicklungs-Workflow
Moderner Webentwicklungs-Workflow
PLUSPOL interactive GbR
 
AOUG 2019 Oracle Centrally Managed Users 18c / 19c
AOUG 2019 Oracle Centrally Managed Users 18c / 19cAOUG 2019 Oracle Centrally Managed Users 18c / 19c
AOUG 2019 Oracle Centrally Managed Users 18c / 19c
Stefan Oehrli
 
Drupal Austria Roadshow in Klagenfurt
Drupal Austria Roadshow in KlagenfurtDrupal Austria Roadshow in Klagenfurt
Drupal Austria Roadshow in Klagenfurt
dasjo
 
FMK2015: The Power of JavaScript by Marcel Moré
FMK2015: The Power of JavaScript by Marcel MoréFMK2015: The Power of JavaScript by Marcel Moré
FMK2015: The Power of JavaScript by Marcel Moré
Verein FM Konferenz
 

Ähnlich wie Liquid - Templating on Rails (20)

Grails im Überblick und in der Praxis
Grails im Überblick und in der PraxisGrails im Überblick und in der Praxis
Grails im Überblick und in der Praxis
 
Ruby und Rails für .NET Entwickler
Ruby und Rails für .NET EntwicklerRuby und Rails für .NET Entwickler
Ruby und Rails für .NET Entwickler
 
Ruby on Rails in a metro session
Ruby on Rails in a metro sessionRuby on Rails in a metro session
Ruby on Rails in a metro session
 
Perl Renaissance Reloaded
Perl Renaissance ReloadedPerl Renaissance Reloaded
Perl Renaissance Reloaded
 
Webinar - ABAP CDS Views
Webinar - ABAP CDS ViewsWebinar - ABAP CDS Views
Webinar - ABAP CDS Views
 
2007 - Basta!: Nach soa kommt soc
2007 - Basta!: Nach soa kommt soc2007 - Basta!: Nach soa kommt soc
2007 - Basta!: Nach soa kommt soc
 
Ruby On Rails Einführung
Ruby On Rails EinführungRuby On Rails Einführung
Ruby On Rails Einführung
 
Ruby on Rails SS09 06
Ruby on Rails SS09 06Ruby on Rails SS09 06
Ruby on Rails SS09 06
 
Blank Template für Joomla!
Blank Template für Joomla!Blank Template für Joomla!
Blank Template für Joomla!
 
Developer Best Practices (Robotic Enterprise Framework REF) – Anwendung und d...
Developer Best Practices (Robotic Enterprise Framework REF) – Anwendung und d...Developer Best Practices (Robotic Enterprise Framework REF) – Anwendung und d...
Developer Best Practices (Robotic Enterprise Framework REF) – Anwendung und d...
 
Ist GraphQL das bessere REST
Ist GraphQL das bessere RESTIst GraphQL das bessere REST
Ist GraphQL das bessere REST
 
HTML5 - presentation at W3C-Tag 2009
HTML5 - presentation at W3C-Tag 2009HTML5 - presentation at W3C-Tag 2009
HTML5 - presentation at W3C-Tag 2009
 
Reif? Scala für Enterprise-Applikationen
Reif? Scala für Enterprise-ApplikationenReif? Scala für Enterprise-Applikationen
Reif? Scala für Enterprise-Applikationen
 
FMK2015: FrameWork Konzepte in FileMaker Pro by Wolfgang Wunderlich
FMK2015: FrameWork Konzepte in FileMaker Pro by Wolfgang WunderlichFMK2015: FrameWork Konzepte in FileMaker Pro by Wolfgang Wunderlich
FMK2015: FrameWork Konzepte in FileMaker Pro by Wolfgang Wunderlich
 
chapter zürich rpa best practices
chapter zürich rpa best practiceschapter zürich rpa best practices
chapter zürich rpa best practices
 
PHP5 und Oracle
PHP5 und OraclePHP5 und Oracle
PHP5 und Oracle
 
Moderner Webentwicklungs-Workflow
Moderner Webentwicklungs-WorkflowModerner Webentwicklungs-Workflow
Moderner Webentwicklungs-Workflow
 
AOUG 2019 Oracle Centrally Managed Users 18c / 19c
AOUG 2019 Oracle Centrally Managed Users 18c / 19cAOUG 2019 Oracle Centrally Managed Users 18c / 19c
AOUG 2019 Oracle Centrally Managed Users 18c / 19c
 
Drupal Austria Roadshow in Klagenfurt
Drupal Austria Roadshow in KlagenfurtDrupal Austria Roadshow in Klagenfurt
Drupal Austria Roadshow in Klagenfurt
 
FMK2015: The Power of JavaScript by Marcel Moré
FMK2015: The Power of JavaScript by Marcel MoréFMK2015: The Power of JavaScript by Marcel Moré
FMK2015: The Power of JavaScript by Marcel Moré
 

Liquid - Templating on Rails