From 70bdfc72182131ea578b44df917b0f954dc51239 Mon Sep 17 00:00:00 2001 From: burningTyger Date: Tue, 7 Jun 2011 16:37:26 +0200 Subject: [PATCH] update README.de.rdoc --- README.de.rdoc | 494 ++++++++++++++----------------------------------- 1 file changed, 143 insertions(+), 351 deletions(-) diff --git a/README.de.rdoc b/README.de.rdoc index f519acca..70f6ee8a 100644 --- a/README.de.rdoc +++ b/README.de.rdoc @@ -227,420 +227,213 @@ werden: set :views, File.dirname(__FILE__) + '/templates' -Eine wichtige Sache, die man sich hierbei merken sollte, ist, dass man immer -mit Symbols auf Templates verweisen sollte, auch wenn sich ein Template in -einem Unterordner befindet (in diesen Fall :'subdir/template'). +Es ist zu beachten, dass immer mit Symbolen auf Templates verwiesen werden +muss, auch dann, wenn sie sich in einem Unterordner befinden: + + haml :'unterverzeichnis/template' + Rendering-Methoden rendern jeden String direkt. -=== Haml-Templates +=== Verfügbare Templatesprachen -Das +haml+-Gem wird benötigt, um Haml-Templates rendern zu können: +Einige Sprachen haben mehrere Implementierungen. Um festzulegen, welche +verwendet wird (und dann auch Thread-sicher ist), verwendet man am besten zu +Beginn ein 'require': - # haml muss eingebunden werden - require 'haml' + require 'rdiscount' # oder require 'bluecloth' + get('/') { markdown :index } - get '/' do - haml :index - end +=== Haml Templates -Dieser Code rendert ./views/index.haml. +Abhängigkeit:: {haml}[http://haml-lang.com/] +Dateierweiterungs:: .haml +Beispiel:: haml :index, :format => :html5 -{Haml-Optionen}[http://haml-lang.com/docs/yardoc/file.HAML_REFERENCE.html#options] -können global durch die Sinatra-Konfiguration gesetzt werden, -siehe {Optionen und Konfiguration}[http://www.sinatrarb.com/configuration.html], -und individuell überschrieben werden. +=== Erb Templates - set :haml, :format => :html5 # Standard-Haml-Format ist :xhtml +Abhängigkeit:: {erubis}[http://www.kuwata-lab.com/erubis/] oder + erb (included in Ruby) +Dateierweiterungs:: .erb, .rhtml oder .erubis + (nur Erubis) +Beispiel:: erb :index - get '/' do - haml :index, :format => :html4 # überschrieben - end +=== Builder Templates -=== Erb-Templates +Abhängigkeit:: {builder}[http://builder.rubyforge.org/] +Dateierweiterungs:: .builder +Beispiel:: builder { |xml| xml.em "Hallo" } - # erb muss eingebunden werden - require 'erb' +Nimmt ebenso einen Block für Inline-Templates entgegen (siehe Beispiel). - get '/' do - erb :index - end +=== Nokogiri Templates -Dieser Code rendert ./views/index.erb. +Abhängigkeit:: {nokogiri}[http://nokogiri.org/] +Dateierweiterungs:: .nokogiri +Beispiel:: nokogiri { |xml| xml.em "Hallo" } -=== Erubis +Nimmt ebenso einen Block für Inline-Templates entgegen (siehe Beispiel). -Das +erubis+-Gem wird benötigt, um Erubis-Templates rendern zu können: +=== Sass Templates - # erbubis muss eingebunden werden - require 'erubis' +Abhängigkeit:: {sass}[http://sass-lang.com/] +Dateierweiterungs:: .sass +Beispiel:: sass :stylesheet, :style => :expanded - get '/' do - erubis :index - end +=== SCSS Templates -Dieser Code rendert ./views/index.erubis. +Abhängigkeit:: {sass}[http://sass-lang.com/] +Dateierweiterungs:: .scss +Beispiel:: scss :stylesheet, :style => :expanded -Es ist auch möglich, Erb durch Erubis zu ersetzen: +=== Less Templates - require 'erubis' - Tilt.register :erb, Tilt[:erubis] - - get '/' do - erb :index - end +Abhängigkeit:: {less}[http://www.lesscss.org/] +Dateierweiterungs:: .less +Beispiel:: less :stylesheet -Dieser Code rendert ebenfalls ./views/index.erb. +=== Liquid Templates -=== Builder-Templates +Abhängigkeit:: {liquid}[http://www.liquidmarkup.org/] +Dateierweiterungs:: .liquid +Beispiel:: liquid :index, :locals => { :key => 'Wert' } -Das +builder+-Gem wird benötigt, um Builder-Templates rendern zu können: +Da man aus dem Liquid-Template heraus keine Ruby-Methoden aufrufen kann +(ausgenommen +yield+), wird man üblicherweise locals verwenden wollen, mit +denen man Variablen weitergibt. - # builder muss eingebunden werden - require 'builder' +=== Markdown Templates - get '/' do - builder :index - end +Abhängigkeit:: {rdiscount}[https://github.com/rtomayko/rdiscount], + {redcarpet}[https://github.com/tanoku/redcarpet], + {bluecloth}[http://deveiate.org/projects/BlueCloth], + {kramdown}[http://kramdown.rubyforge.org/] *oder* + {maruku}[http://maruku.rubyforge.org/] +Dateierweiterungs:: .markdown, .mkd und .md +Beispiel:: markdown :index, :layout_engine => :erb -Dieser Code rendert ./views/index.builder. +Da man aus den Markdown-Templates heraus keine Ruby-Methoden aufrufen und auch +keine locals verwenden kann, wird man Markdown üblicherweise in Kombination mit +anderen Renderern verwenden wollen: -=== Nokogiri-Templates + erb :overview, :locals => { :text => markdown(:einfuehrung) } -Das +nokogiri+-Gem wird benötigt, um Nokogiri-Templates rendern zu können: +Beachte, dass man die +markdown+-Methode auch aus anderen Templates heraus +aufrufen kann: - # nokogiri muss eingebunden werden - require 'nokogiri' + %h1 Gruß von Haml! + %p= markdown(:Grüsse) - get '/' do - nokogiri :index - end +Da man Ruby nicht von Markdown heraus aufrufen kann, können auch Layouts nicht +in Markdown geschrieben werden. Es ist aber möglich, einen Renderer für die +Templates zu verwenden und einen anderen für das Layout, indem die +:layout_engine-Option verwendet wird. -Dieser Code rendert ./views/index.nokogiri. +=== Textile Templates -=== Sass-Templates +Abhängigkeit:: {RedCloth}[http://redcloth.org/] +Dateierweiterungs:: .textile +Beispiel:: textile :index, :layout_engine => :erb -Das +sass+-Gem wird benötigt, um Sass-Templates rendern zu können: +Da man aus dem Textile-Template heraus keine Ruby-Methoden aufrufen und auch +keine locals verwenden kann, wird man Textile üblicherweise in Kombination mit +anderen Renderern verwenden wollen: - # sass muss eingebunden werden - require 'sass' + erb :overview, :locals => { :text => textile(:einfuehrung) } - get '/stylesheet.css' do - sass :stylesheet - end +Beachte, dass man die +textile+-Methode auch aus anderen Templates heraus +aufrufen kann: -Dieser Code rendert ./views/stylesheet.sass. + %h1 Gruß von Haml! + %p= textile(:Grüsse) -{Sass-Optionen}[http://sass-lang.com/docs/yardoc/file.SASS_REFERENCE.html#options] -können global durch die Sinatra-Konfiguration gesetzt werden, siehe -{Optionen und Konfiguration}[http://www.sinatrarb.com/configuration.html], -und individuell überschrieben werden. +Da man Ruby nicht von Textile heraus aufrufen kann, können auch Layouts nicht +in Textile geschrieben werden. Es ist aber möglich, einen Renderer für die +Templates zu verwenden und einen anderen für das Layout, indem die +:layout_engine-Option verwendet wird. - set :sass, :style => :compact # Standard Sass-Style ist :nested +=== RDoc Templates - get '/stylesheet.css' do - sass :stylesheet, :style => :expanded # überschrieben - end +Abhängigkeit:: {rdoc}[http://rdoc.rubyforge.org/] +Dateierweiterungs:: .rdoc +Beispiel:: textile :README, :layout_engine => :erb -=== SCSS-Templates +Da man aus dem RDoc-Template heraus keine Ruby-Methoden aufrufen und auch +keine locals verwenden kann, wird man RDoc üblicherweise in Kombination mit +anderen Renderern verwenden wollen: -Das +sass+-Gem wird benötigt, um SCSS-Templates rendern zu können: + erb :overview, :locals => { :text => rdoc(:einfuehrung) } - # sass muss eingebunden werden - require 'sass' +Beachte, dass man die +rdoc+-Methode auch aus anderen Templates heraus +aufrufen kann: - get '/stylesheet.css' do - scss :stylesheet - end + %h1 Gruß von Haml! + %p= rdoc(:Grüße) -Dieser Code rendert ./views/stylesheet.scss. +Da man Ruby nicht von RDoc heraus aufrufen kann, können auch Layouts nicht +in RDoc geschrieben werden. Es ist aber möglich, einen Renderer für die +Templates zu verwenden und einen anderen für das Layout, indem die +:layout_engine-Option verwendet wird. -{SCSS-Optionen}[http://sass-lang.com/docs/yardoc/file.SASS_REFERENCE.html#options] -können global durch die Sinatra-Konfiguration gesetzt werden, siehe -{Optionen und Konfiguration}[http://www.sinatrarb.com/configuration.html], und -individuell überschrieben werden. +=== Radius Templates - set :scss, :style => :compact # Standard-SCSS-Style ist :nested +Abhängigkeit:: {radius}[http://radius.rubyforge.org/] +Dateierweiterungs:: .radius +Beispiel:: radius :index, :locals => { :key => 'Wert' } - get '/stylesheet.css' do - scss :stylesheet, :style => :expanded # überschrieben - end +Da man aus dem Radius-Template heraus keine Ruby-Methoden aufrufen kann, wird +man üblicherweise locals verwenden wollen, mit denen man Variablen weitergibt. -=== Less-Templates +=== Markaby Templates -Das +less+-Gem wird benötigt, um Less-Templates rendern zu können: +Abhängigkeit:: {markaby}[http://markaby.github.com/] +Dateierweiterungs:: .mab +Beispiel:: markaby { h1 "Willkommen!" } - # less muss eingebunden werden - require 'less' +Nimmt ebenso einen Block für Inline-Templates entgegen (siehe Beispiel). - get '/stylesheet.css' do - less :stylesheet - end +=== Slim Templates -Dieser Code rendert ./views/stylesheet.less. +Abhängigkeit:: {slim}[http://slim-lang.com/] +Dateierweiterungs:: .slim +Beispiel:: slim :index -=== Liquid-Templates +=== Creole Templates -Das +liquid+-Gem wird benötigt, um Liquid-Templates rendern zu können: +Abhängigkeit:: {creole}[https://github.com/minad/creole] +Dateierweiterungs:: .creole +Beispiel:: creole :wiki, :layout_engine => :erb - # liquid muss eingebunden werden - require 'liquid' +Da man aus dem Creole-Template heraus keine Ruby-Methoden aufrufen und auch +keine locals verwenden kann, wird man Creole üblicherweise in Kombination mit +anderen Renderern verwenden wollen: - get '/' do - liquid :index - end + erb :overview, :locals => { :text => creole(:einfuehrung) } -Dieser Code rendert ./views/index.liquid. +Beachte, dass man die +creole+-Methode auch aus anderen Templates heraus +aufrufen kann: -Da aus Liquid-Templates heraus keine Methoden (abgesehen von +yield+) -aufgerufen werden können, ist es möglich, +locals+ zu übergeben: + %h1 Gruß von Haml! + %p= creole(:Grüße) - liquid :index, :locals => { :key => 'value' } +Da man Ruby nicht von Creole heraus aufrufen kann, können auch Layouts nicht +in Creole geschrieben werden. Es ist aber möglich, einen Renderer für die +Templates zu verwenden und einen anderen für das Layout, indem die +:layout_engine-Option verwendet wird. -=== Markdown-Templates +=== CoffeeScript Templates -Das +rdiscount+-Gem wird benötigt, um Markdown-Templates rendern zu können: +Abhängigkeit:: {coffee-script}[https://github.com/josh/ruby-coffee-script] + und eine {Möglichkeit JavaScript auszuführen}[https://github.com/sstephenson/execjs/blob/master/README.md#readme] +Dateierweiterungs:: .coffee +Beispiel:: coffee :index - # rdiscount muss eingebunden werden - require "rdiscount" - - get '/' do - markdown :index - end - -Dieser Code rendert ./views/index.markdown (+md+ und +mkd+ sind -ebenfalls zulässige Dateiendungen). - -Da es weder möglich ist, Methoden aufzurufen, noch +locals+ zu übergeben, ist -es am sinnvollsten, Markdown in Kombination mit einer anderen Template-Engine -zu nutzen: - - erb :overview, :locals => { :text => markdown(:introduction) } - -Es ist auch möglich, die +markdown+-Methode aus anderen Templates heraus -aufzurufen: - - %h1 Hallo von Haml! - %p= markdown(:greetings) - -Da man Ruby aus Markdown heraus nicht aufrufen kann, ist es nicht möglich, -Layouts zu verwenden, die in Markdown geschrieben sind. Es ist aber möglich, -einen anderen Renderer für das Template zu verwenden als für das Layout, indem -man die :layout_engine-Option angibt: - - get '/' do - markdown :index, :layout_engine => :erb - end - -Das wird ./views/index.md mit ./views/layout.erb als Layout -rendern. - -Denk daran, dass solche Einstellungen auch global gesetzt werden können: - - set :markdown, :layout_engine => :haml, :layout => :post - - get '/' do - markdown :index - end - -Das wird ./views/index.md (und jedes andere Markdown-Template) mit -./views/post.haml als Layout rendern. - -Ebenso ist es möglich, Markdown mit BlueCloth anstelle von RDiscount zu parsen: - - require 'bluecloth' - - Tilt.register 'markdown', BlueClothTemplate - Tilt.register 'mkd', BlueClothTemplate - Tilt.register 'md', BlueClothTemplate - - get '/' do - markdown :index - end - -Das sollte ./views/index.md mit BlueCloth rendern. - -=== Textile-Templates - -Das +redcloth+-Gem wird benötigt, um Textile-Templates rendern zu können: - - # redcloth muss eingebunden werden - require "redcloth" - - get '/' do - textile :index - end - -Dieser Code rendert ./views/index.textile. - -Da es weder möglich ist, Methoden aufzurufen, noch +locals+ zu übergeben, ist -es sinnvoll, Textile in Kombination mit einer anderen Template-Engine zu -nutzen: - - erb :overview, :locals => { :text => textile(:introduction) } - -Es ist auch möglich, die +textile+-Methode aus anderen Templates heraus -aufzurufen: - - %h1 Hallo von Haml! - %p= textile(:greetings) - -Da man Ruby aus Textile heraus nicht aufrufen kann, ist es nicht möglich, -Layouts zu verwenden, die in Textile geschrieben sind. Es ist aber möglich, -einen anderen Renderer für das Template zu verwenden als für das Layout, indem -man die :layout_engine-Option angibt: - - get '/' do - textile :index, :layout_engine => :erb - end - -Das wird ./views/index.textile mit ./views/layout.erb als -Layout rendern. - -Denk daran, dass solche Einstellungen auch global gesetzt werden können: - - set :textile, :layout_engine => :haml, :layout => :post - - get '/' do - textile :index - end - -Das wird ./views/index.textile (und jedes andere Markdown-Template) -mit ./views/post.haml als Layout rendern. - -=== RDoc-Templates - -Das +rdoc+-Gem wird benötigt, um RDoc-Templates rendern zu können: - - # rdoc/markup/to_html muss eingebunden werden - require "rdoc/markup/to_html" - - get '/' do - rdoc :index - end - -Dieser Code rendert ./views/index.rdoc. - -Da es weder möglich ist, Methoden aufzurufen, noch +locals+ zu übergeben, ist -es sinnvoll, RDoc in Kombination mit einer anderen Template-Engine zu nutzen: - - erb :overview, :locals => { :text => rdoc(:introduction) } - -Es ist auch möglich, die +rdoc+-Methode aus anderen Templates heraus -aufzurufen: - - %h1 Hallo von Haml! - %p= rdoc(:greetings) - -Da man Ruby aus RDoc heraus nicht aufrufen kann, ist es nicht möglich, Layouts -zu verwenden, die in RDoc geschrieben sind. Es ist aber möglich, einen anderen -Renderer für das Template zu verwenden als für das Layout, indem man die -:layout_engine option angibt: - - get '/' do - rdoc :index, :layout_engine => :erb - end - -Das wird ./views/index.rdoc mit ./views/layout.erb als Layout -rendern. - -Denk daran, dass solche Einstellungen auch global gesetzt werden können: - - set :rdoc, :layout_engine => :haml, :layout => :post - - get '/' do - rdoc :index - end - -Das wird ./views/index.rdoc (und jedes andere Markdown-Template) mit -./views/post.haml als Layout rendern. - -=== Radius-Templates - -Das +radius+-Gem wird benötigt, um Radius-Templates rendern zu können: - - # radius muss eingebunden werden - require 'radius' - - get '/' do - radius :index - end - -Dieser Code rendert ./views/index.radius. - -Da aus Radius-Templates heraus keine Methoden (abgesehen von +yield+) -aufgerufen werden können, es es möglich, +locals+ zu übergeben: - - radius :index, :locals => { :key => 'value' } - -=== Markaby-Templates - -Das +markaby+-Gem wird benötigt, um Markaby-Templates rendern zu können: - - # markaby muss eingebunden werden - require 'markaby' - - get '/' do - markaby :index - end - -Dieser Code rendert ./views/index.mab. - -=== Slim-Templates - -Das +slim+-Gem wird benötigt, um Slim-Templates rendern zu können: - - # slim muss eingebunden werden - require 'slim' - - get '/' do - slim :index - end - -Dieser Code rendert ./views/index.slim. - -=== Creole-Templates - -Das +creole+-Gem wird benötigt, um Creole-Templates rendern zu können: - - # creole muss eingebunden werden - require 'creole' - - get '/' do - creole :index - end - -Dieser Code rendert ./views/index.creole. - -=== CoffeeScript-Templates - -Das coffee-script-Gem und mindestens eine der folgenden Optionen -werden benötigt, um JavaScript auf dem Server ausführen zu können: - -* +node+ (von Node.js) befindet sich im Pfad -* du bist unter OS X -* +therubyracer+ gem/library - -Siehe auch http://github.com/josh/ruby-coffee-script für eine vollständige -Liste aller Optionen. - -Nun können CoffeeScript-Templates in der Applikation gerendert werden: - - # coffee-script muss eingebunden werden - require 'coffee-script' - - get '/application.js' do - coffee :application - end - -Dieser Code rendert ./views/application.coffee. - -=== Inline-Templates +=== Eingebettete Templates get '/' do haml '%div.title Hallo Welt' end -Rendert den Inline-Template-String. +Rendert den eingebetteten Template-String. === Auf Variablen in Templates zugreifen @@ -1622,7 +1415,7 @@ Oder über eine config.ru-Datei, die es erlaubt, einen beliebigen Rack-Handler zu verwenden: # config.ru - require 'mein_app' + require './mein_app' run MeineApp Starte: @@ -1642,7 +1435,7 @@ Schreibe eine Anwendungsdatei: sowie eine dazugehörige config.ru-Datei: - require 'app' + require './app' run Sinatra::Application === Wann sollte eine config.ru-Datei verwendet werden? @@ -1874,7 +1667,7 @@ Release von Sinatra 1.4.0 mit kleinen Bugfixes versorgt werden wird. Weiterhin werden wir auf kommende Ruby-Versionen ein Auge haben. -Die nachfolgend aufgeführten Ruby-Implementationen werden offiziell nicht von +Die nachfolgend aufgeführten Ruby-Implementierungen werden offiziell nicht von Sinatra unterstützt, funktionieren aber normalerweise: * Ältere Versionen von JRuby und Rubinius @@ -1990,4 +1783,3 @@ SemVer und SemVerTag. * API Dokumentation für die {aktuelle Version}[http://rubydoc.info/gems/sinatra] oder für {HEAD}[http://rubydoc.info/github/sinatra/sinatra] auf http://rubydoc.info -