Diese Präsentation wurde erfolgreich gemeldet.
Wir verwenden Ihre LinkedIn Profilangaben und Informationen zu Ihren Aktivitäten, um Anzeigen zu personalisieren und Ihnen relevantere Inhalte anzuzeigen. Sie können Ihre Anzeigeneinstellungen jederzeit ändern.

Liquid - Templating on Rails

1.756 Aufrufe

Veröffentlicht am

Veröffentlicht in: Technologie, Business
  • Als Erste(r) kommentieren

  • Gehören Sie zu den Ersten, denen das gefällt!

Liquid - Templating on Rails

  1. 1. Templating on Rails Stefan Sprenger d.k.d Internet Service GmbH
  2. 2. Agenda • Templating • Warum? • Liquid • Markup • in Rails integrieren • ohne Rails?
  3. 3. Templating
  4. 4. Warum?
  5. 5. Hauptgründe • nicht jeder kann programmieren • einfacher zu bearbeiten • sieht schöner aus
  6. 6. Entwickler vs. Designer
  7. 7. Entwickler • will Aufgaben abgeben • Zugriff auf Objekte begrenzen • möchte Kontrolle behalten • Template-Engine sollte leicht integrierbar sein
  8. 8. Designer • möchte sein Layout administrieren • kann HTML • kennt sich nicht mit Rails aus • es sollte leicht erlernbar sein
  9. 9. Was bringt Rails mit?
  10. 10. Nichts.
  11. 11. Und was ist mit ERB?
  12. 12. Verletzt Anforderungen.
  13. 13. Liquid
  14. 14. Liquid • Template Engine • eigene mächtige Markup-Sprache • als Gem und Plugin verfügbar • seit 2006 aktiv in Entwicklung
  15. 15. Wann sollte ich Liquid nutzen?
  16. 16. 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
  17. 17. Wer nutzt Liquid? • Shopify • Mephisto • Palani • ... und viele andere
  18. 18. Markup
  19. 19. Markup • Output Markup • Tag Markup
  20. 20. Markup <h1>Produktverzeichnis</h1> <ul> <li>Raumschiff</li> <li>Rennwagen</li> </ul>
  21. 21. Markup Output <h1>{{ title }}</h1> <ul> {% for product in products %} Tag <li>{{ product.name }}</li> {% endfor %} </ul>
  22. 22. Markup - Tags • Bedingungen • Schleifen • Fallunterscheidung • Zyklen • aber auch erweiterbar...
  23. 23. Markup - Filter {% for product in products %} Filter {{ product.name | upcase }} {% endfor %}
  24. 24. Markup - Filter • auf Output-Markup anwendbar • Liquid liefert Filter mit • leicht erweiterbar • Liquid greift auf Rails-Helper zu
  25. 25. Liquid in Rails integrieren
  26. 26. 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
  27. 27. Vorbereitungen • im Model Zugriffsrechte definieren class Product < ActiveRecord::Base liquid_methods :name end
  28. 28. Implementierung • Parsing und Rendering sind voneinander getrennt t = Liquid::Template.parse(“Hallo {{ usergroup }}!“) t.render( ‘usergroup‘ => ‘Rails Usergroup‘ ) String => "Hallo Rails Usergroup!"
  29. 29. Funktioniert Liquid auch ohne Rails?
  30. 30. Ja.
  31. 31. gem install liquid
  32. 32. Vorbereitungen • Klasse muss to_liquid-Methode haben class Book def initialize(title) @title = title end def to_liquid Hash { ‘title‘ => @title } end end
  33. 33. 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"
  34. 34. Mehr Informationen • www.liquidmarkup.org • http://github.com/tobi/liquid/ • Railscast #118
  35. 35. Q&A
  36. 36. Danke.

×