SlideShare una empresa de Scribd logo
1 de 36
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.

Más contenido relacionado

Destacado

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 COMPONENLa 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 MFCVan Phong
 
Instrumen pai thn 1
Instrumen pai thn 1Instrumen pai thn 1
Instrumen pai thn 1Asmah Hassan
 
Brandschutz | weyer spezial
Brandschutz | weyer spezialBrandschutz | weyer spezial
Brandschutz | weyer spezialweyer 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-GruppeChristoph 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 generalidadesGina Colin
 
IT auf Grossbaustellen - IT Betrieb
IT auf Grossbaustellen  - IT BetriebIT auf Grossbaustellen  - IT Betrieb
IT auf Grossbaustellen - IT Betriebmmi-consult
 
Ambiente word de sebastian xD
Ambiente word de sebastian xDAmbiente word de sebastian xD
Ambiente word de sebastian xDjsduartec2008
 

Destacado (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
 

Similar a 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 PraxisTobias 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 EntwicklerNETUserGroupBern
 
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 ReloadedGregor Goldbach
 
Webinar - ABAP CDS Views
Webinar - ABAP CDS ViewsWebinar - ABAP CDS Views
Webinar - ABAP CDS ViewsCadaxo GmbH
 
2007 - Basta!: Nach soa kommt soc
2007 - Basta!: Nach soa kommt soc2007 - Basta!: Nach soa kommt soc
2007 - Basta!: Nach soa kommt socDaniel Fisher
 
Ruby On Rails Einführung
Ruby On Rails EinführungRuby On Rails Einführung
Ruby On Rails EinführungReinhold Weber
 
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 RESTMartin Abraham
 
HTML5 - presentation at W3C-Tag 2009
HTML5 - presentation at W3C-Tag 2009HTML5 - presentation at W3C-Tag 2009
HTML5 - presentation at W3C-Tag 2009Felix Sasaki
 
Reif? Scala für Enterprise-Applikationen
Reif? Scala für Enterprise-ApplikationenReif? Scala für Enterprise-Applikationen
Reif? Scala für Enterprise-Applikationenadesso 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 WunderlichVerein FM Konferenz
 
chapter zürich rpa best practices
chapter zürich rpa best practiceschapter zürich rpa best practices
chapter zürich rpa best practicesCristina Vidu
 
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 / 19cStefan Oehrli
 
Drupal Austria Roadshow in Klagenfurt
Drupal Austria Roadshow in KlagenfurtDrupal Austria Roadshow in Klagenfurt
Drupal Austria Roadshow in Klagenfurtdasjo
 
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
 

Similar a 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