Update READMEs

This commit is contained in:
Eloy Pérez 2022-05-16 11:36:12 +02:00
parent f10111baa0
commit 5c355a1171
11 changed files with 818 additions and 1048 deletions

View File

@ -40,15 +40,15 @@ diesen Server verwenden.
## Inhalt
- [Sinatra](#sinatra)
* [Inhalt](#inhalt)
* [Routen](#routen)
+ [Bedingungen](#bedingungen)
+ [Rückgabewerte](#rückgabewerte)
+ [Eigene Routen-Muster](#eigene-routen-muster)
* [Statische Dateien](#statische-dateien)
* [Views/Templates](#views-templates)
+ [Direkte Templates](#direkte-templates)
+ [Verfügbare Templatesprachen](#verfügbare-templatesprachen)
- [Inhalt](#inhalt)
- [Routen](#routen)
- [Bedingungen](#bedingungen)
- [Rückgabewerte](#rückgabewerte)
- [Eigene Routen-Muster](#eigene-routen-muster)
- [Statische Dateien](#statische-dateien)
- [Views/Templates](#viewstemplates)
- [Direkte Templates](#direkte-templates)
- [Verfügbare Templatesprachen](#verfügbare-templatesprachen)
- [Haml Templates](#haml-templates)
- [Erb Templates](#erb-templates)
- [Builder Templates](#builder-templates)
@ -65,63 +65,60 @@ diesen Server verwenden.
- [MediaWiki Templates](#mediawiki-templates)
- [CoffeeScript Templates](#coffeescript-templates)
- [Yajl Templates](#yajl-templates)
- [WLang Templates](#wlang-templates)
+ [Auf Variablen in Templates zugreifen](#auf-variablen-in-templates-zugreifen)
+ [Templates mit `yield` und verschachtelte Layouts](#templates-mit--yield--und-verschachtelte-layouts)
+ [Inline-Templates](#inline-templates)
+ [Benannte Templates](#benannte-templates)
+ [Dateiendungen zuordnen](#dateiendungen-zuordnen)
+ [Eine eigene Template-Engine hinzufügen](#eine-eigene-template-engine-hinzuf-gen)
+ [Eigene Methoden zum Aufsuchen von Templates verwenden](#eigene-methoden-zum-aufsuchen-von-templates-verwenden)
* [Filter](#filter)
* [Helfer](#helfer)
+ [Sessions verwenden](#sessions-verwenden)
- [Auf Variablen in Templates zugreifen](#auf-variablen-in-templates-zugreifen)
- [Templates mit `yield` und verschachtelte Layouts](#templates-mit-yield-und-verschachtelte-layouts)
- [Inline-Templates](#inline-templates)
- [Benannte Templates](#benannte-templates)
- [Dateiendungen zuordnen](#dateiendungen-zuordnen)
- [Eine eigene Template-Engine hinzufügen](#eine-eigene-template-engine-hinzufügen)
- [Eigene Methoden zum Aufsuchen von Templates verwenden](#eigene-methoden-zum-aufsuchen-von-templates-verwenden)
- [Filter](#filter)
- [Helfer](#helfer)
- [Sessions verwenden](#sessions-verwenden)
- [Sitzungseinstellungen](#sitzungseinstellungen)
- [Eigene Sitzungs-Middleware auswählen](#eigene-sitzungs-middleware-ausw-hlen)
+ [Anhalten](#anhalten)
+ [Weiterspringen](#weiterspringen)
+ [Eine andere Route ansteuern](#eine-andere-route-ansteuern)
+ [Body, Status-Code und Header setzen](#body--status-code-und-header-setzen)
+ [Response-Streams](#response-streams)
+ [Logger](#logger)
+ [Mime-Types](#mime-types)
+ [URLs generieren](#urls-generieren)
+ [Browser-Umleitung](#browser-umleitung)
+ [Cache einsetzen](#cache-einsetzen)
+ [Dateien versenden](#dateien-versenden)
+ [Das Request-Objekt](#das-request-objekt)
+ [Anhänge](#anhänge)
+ [Umgang mit Datum und Zeit](#umgang-mit-datum-und-zeit)
+ [Nachschlagen von Template-Dateien](#nachschlagen-von-template-dateien)
+ [Konfiguration](#konfiguration)
- [Eigene Sitzungs-Middleware auswählen](#eigene-sitzungs-middleware-auswählen)
- [Anhalten](#anhalten)
- [Weiterspringen](#weiterspringen)
- [Eine andere Route ansteuern](#eine-andere-route-ansteuern)
- [Body, Status-Code und Header setzen](#body-status-code-und-header-setzen)
- [Response-Streams](#response-streams)
- [Logger](#logger)
- [Mime-Types](#mime-types)
- [URLs generieren](#urls-generieren)
- [Browser-Umleitung](#browser-umleitung)
- [Cache einsetzen](#cache-einsetzen)
- [Dateien versenden](#dateien-versenden)
- [Das Request-Objekt](#das-request-objekt)
- [Anhänge](#anhänge)
- [Umgang mit Datum und Zeit](#umgang-mit-datum-und-zeit)
- [Nachschlagen von Template-Dateien](#nachschlagen-von-template-dateien)
- [Konfiguration](#konfiguration)
- [Einstellung des Angriffsschutzes](#einstellung-des-angriffsschutzes)
- [Mögliche Einstellungen](#m-gliche-einstellungen)
* [Umgebungen](#umgebungen)
* [Fehlerbehandlung](#fehlerbehandlung)
+ [Nicht gefunden](#nicht-gefunden)
+ [Fehler](#fehler)
* [Rack-Middleware](#rack-middleware)
* [Testen](#testen)
* [Sinatra::Base - Middleware, Bibliotheken und modulare Anwendungen](#sinatra--base---middleware--bibliotheken-und-modulare-anwendungen)
+ [Modularer vs. klassischer Stil](#modularer-vs-klassischer-stil)
+ [Eine modulare Applikation bereitstellen](#eine-modulare-applikation-bereitstellen)
+ [Eine klassische Anwendung mit einer config.ru verwenden](#eine-klassische-anwendung-mit-einer-configru-verwenden)
+ [Wann sollte eine config.ru-Datei verwendet werden?](#wann-sollte-eine-configru-datei-verwendet-werden-)
+ [Sinatra als Middleware nutzen](#sinatra-als-middleware-nutzen)
+ [Dynamische Applikationserstellung](#dynamische-applikationserstellung)
* [Geltungsbereich und Bindung](#geltungsbereich-und-bindung)
+ [Anwendungs- oder Klassen-Scope](#anwendungs--oder-klassen-scope)
+ [Anfrage- oder Instanz-Scope](#anfrage--oder-instanz-scope)
+ [Delegation-Scope](#delegation-scope)
* [Kommandozeile](#kommandozeile)
+ [Multi-threading](#multi-threading)
* [Systemanforderungen](#systemanforderungen)
* [Der neuste Stand (The Bleeding Edge)](#der-neuste-stand--the-bleeding-edge-)
+ [Mit Bundler](#mit-bundler)
+ [Eigenes Repository](#eigenes-repository)
+ [Gem erstellen](#gem-erstellen)
* [Versions-Verfahren](#versions-verfahren)
* [Mehr](#mehr)
- [Mögliche Einstellungen](#mögliche-einstellungen)
- [Umgebungen](#umgebungen)
- [Fehlerbehandlung](#fehlerbehandlung)
- [Nicht gefunden](#nicht-gefunden)
- [Fehler](#fehler)
- [Rack-Middleware](#rack-middleware)
- [Testen](#testen)
- [Sinatra::Base - Middleware, Bibliotheken und modulare Anwendungen](#sinatrabase---middleware-bibliotheken-und-modulare-anwendungen)
- [Modularer vs. klassischer Stil](#modularer-vs-klassischer-stil)
- [Eine modulare Applikation bereitstellen](#eine-modulare-applikation-bereitstellen)
- [Eine klassische Anwendung mit einer config.ru verwenden](#eine-klassische-anwendung-mit-einer-configru-verwenden)
- [Wann sollte eine config.ru-Datei verwendet werden?](#wann-sollte-eine-configru-datei-verwendet-werden)
- [Sinatra als Middleware nutzen](#sinatra-als-middleware-nutzen)
- [Dynamische Applikationserstellung](#dynamische-applikationserstellung)
- [Geltungsbereich und Bindung](#geltungsbereich-und-bindung)
- [Anwendungs- oder Klassen-Scope](#anwendungs--oder-klassen-scope)
- [Anfrage- oder Instanz-Scope](#anfrage--oder-instanz-scope)
- [Delegation-Scope](#delegation-scope)
- [Kommandozeile](#kommandozeile)
- [Multi-threading](#multi-threading)
- [Systemanforderungen](#systemanforderungen)
- [Der neuste Stand (The Bleeding Edge)](#der-neuste-stand-the-bleeding-edge)
- [Mit Bundler](#mit-bundler)
- [Versions-Verfahren](#versions-verfahren)
- [Mehr](#mehr)
## Routen
@ -989,29 +986,6 @@ var resource = {"foo":"bar","baz":"qux"};
present(resource);
```
#### WLang Templates
<table>
<tr>
<td>Abhängigkeit</td>
<td><a href="https://github.com/blambeau/wlang/">wlang</a></td>
</tr>
<tr>
<td>Dateierweiterung</td>
<td><tt>.wlang</tt></td>
</tr>
<tr>
<td>Beispiel</td>
<td><tt>wlang :index, :locals => { :key => 'value' }</tt></td>
</tr>
</table>
Ruby-Methoden in Wlang aufzurufen entspricht nicht den idiomatischen Vorgaben
von Wlang, es bietet sich deshalb an, `:locals` zu verwenden. Layouts, die
Wlang und `yield` verwenden, werden aber trotzdem unterstützt.
Rendert den eingebetteten Template-String.
### Auf Variablen in Templates zugreifen
Templates werden in demselben Kontext ausgeführt wie Routen. Instanzvariablen
@ -1069,8 +1043,7 @@ erb :admin_layout, :layout => :main_layout do
end
```
Zur Zeit nehmen folgende Renderer Blöcke an: `erb`, `haml`, `liquid`, `slim `
und `wlang`.
Zur Zeit nehmen folgende Renderer Blöcke an: `erb`, `haml`, `liquid` und `slim `
Das gleich gilt auch für die allgemeine `render` Methode.

View File

@ -38,88 +38,87 @@ Se recomienda ejecutar `gem install puma`, porque Sinatra lo utilizará si está
## Tabla de Contenidos
* [Sinatra](#sinatra)
* [Tabla de Contenidos](#tabla-de-contenidos)
* [Rutas](#rutas)
* [Condiciones](#condiciones)
* [Valores de Retorno](#valores-de-retorno)
* [Comparadores de Rutas Personalizados](#comparadores-de-rutas-personalizados)
* [Archivos Estáticos](#archivos-estáticos)
* [Vistas / Plantillas](#vistas--plantillas)
* [Plantillas Literales](#plantillas-literales)
* [Lenguajes de Plantillas Disponibles](#lenguajes-de-plantillas-disponibles)
* [Plantillas Haml](#plantillas-haml)
* [Plantillas Erb](#plantillas-erb)
* [Plantillas Builder](#plantillas-builder)
* [Plantillas Nokogiri](#plantillas-nokogiri)
* [Plantillas Liquid](#plantillas-liquid)
* [Plantillas Markdown](#plantillas-markdown)
* [Plantillas RDoc](#plantillas-rdoc)
* [Plantillas AsciiDoc](#plantillas-asciidoc)
* [Plantillas Radius](#plantillas-radius)
* [Plantillas Markaby](#plantillas-markaby)
* [Plantillas RABL](#plantillas-rabl)
* [Plantillas Slim](#plantillas-slim)
* [Plantillas Creole](#plantillas-creole)
* [Plantillas MediaWiki](#mediawiki-templates)
* [Plantillas CofeeScript](#plantillas-coffeescript)
* [Plantillas Yajl](#plantillas-yajl)
* [Plantillas Wlang](#plantillas-wlang)
* [Accediendo Variables en Plantillas](#accediendo-a-variables-en-plantillas)
* [Plantillas con `yield` y `layout` anidado](#plantillas-con-yield-y-layout-anidado)
* [Plantillas Inline](#plantillas-inline)
* [Plantillas Nombradas](#plantillas-nombradas)
* [Asociando Extensiones de Archivo](#asociando-extensiones-de-archivo)
* [Añadiendo Tu Propio Motor de Plantillas](#añadiendo-tu-propio-motor-de-plantillas)
* [Usando Lógica Personalizada para la Búsqueda en Plantillas](#usando-lógica-personalizada-para-la-búsqueda-en-plantillas)
* [Filtros](#filtros)
* [Helpers](#helpers)
* [Usando Sesiones](#usando-sesiones)
* [Secreto de Sesión](#secreto-de-sesión)
* [Configuración de Sesión](#configuración-de-sesión)
* [Escogiendo tu propio Middleware de Sesión](#escogiendo-tu-propio-middleware-de-sesión)
* [Interrupcion](#interrupción)
* [Paso](#paso)
* [Desencadenando Otra Ruta](#desencadenando-otra-ruta)
* [Configurando el Cuerpo, Código de Estado y los Encabezados](#configurando-el-cuerpo-código-de-estado-y-los-encabezados)
* [Streaming De Respuestas](#streaming-de-respuestas)
* [Logging](#logging)
* [Tipos Mime](#tipos-mime)
* [Generando URLs](#generando-urls)
* [Redirección del Navegador](#redirección-del-navegador)
* [Control del Cache](#control-del-cache)
* [Enviando Archivos](#enviando-archivos)
* [Accediendo al Objeto Request](#accediendo-al-objeto-request)
* [Archivos Adjuntos](#archivos-adjuntos)
* [Fecha y Hora](#fecha-y-hora)
* [Buscando los Archivos de las Plantillas](#buscando-los-archivos-de-las-plantillas)
* [Configuración](#configuración)
* [Configurando la Protección Contra Ataques](#configurando-la-protección-contra-ataques)
* [Configuraciones Disponibles](#configuraciones-disponibles)
* [Entornos](#entornos)
* [Manejo de Errores](#manejo-de-errores)
* [Not Found](#not-found)
* [Error](#error)
* [Rack Middleware](#rack-middleware)
* [Pruebas](#pruebas)
* [Sinatra::Base - Middleware, Librerías, y Aplicaciones Modulares](#sinatrabase---middleware-librerías-y-aplicaciones-modulares)
* [Estilo Modular vs Estilo Clásico](#estilo-modular-vs-clásico)
* [Sirviendo una Aplicación Modular](#sirviendo-una-aplicación-modular)
* [Usando una Aplicación de Estilo Clásico con config.ru](#usando-una-aplicación-clásica-con-un-archivo-configru)
* [¿Cuándo usar config.ru?](#cuándo-usar-configru)
* [Utilizando Sinatra como Middleware](#utilizando-sinatra-como-middleware)
* [Creación Dinámica de Aplicaciones](#creación-dinámica-de-aplicaciones)
* [Ámbitos y Ligaduras (Scopes and Binding)](#Ámbitos-y-ligaduras)
* [Alcance de una Aplicación/Clase](#Ámbito-de-aplicaciónclase)
* [Alcance de una Solicitud/Instancia](#Ámbito-de-peticióninstancia)
* [Alcance de Delegación](#Ámbito-de-delegación)
* [Línea de comandos](#línea-de-comandos)
* [Multi-threading](#multi-threading)
* [Requerimientos](#requerimientos)
* [A la Vanguardia](#a-la-vanguardia)
* [Usando bundler](#usando-bundler)
* [Versionado](#versionado)
* [Lecturas Recomendadas](#lecturas-recomendadas)
- [Sinatra](#sinatra)
- [Tabla de Contenidos](#tabla-de-contenidos)
- [Rutas](#rutas)
- [Condiciones](#condiciones)
- [Valores de Retorno](#valores-de-retorno)
- [Comparadores de Rutas Personalizados](#comparadores-de-rutas-personalizados)
- [Archivos Estáticos](#archivos-estáticos)
- [Vistas / Plantillas](#vistas--plantillas)
- [Plantillas Literales](#plantillas-literales)
- [Lenguajes de Plantillas Disponibles](#lenguajes-de-plantillas-disponibles)
- [Plantillas Haml](#plantillas-haml)
- [Plantillas Erb](#plantillas-erb)
- [Plantillas Builder](#plantillas-builder)
- [Plantillas Nokogiri](#plantillas-nokogiri)
- [Plantillas Liquid](#plantillas-liquid)
- [Plantillas Markdown](#plantillas-markdown)
- [Plantillas RDoc](#plantillas-rdoc)
- [Plantillas AsciiDoc](#plantillas-asciidoc)
- [Plantillas Radius](#plantillas-radius)
- [Plantillas Markaby](#plantillas-markaby)
- [Plantillas RABL](#plantillas-rabl)
- [Plantillas Slim](#plantillas-slim)
- [Plantillas Creole](#plantillas-creole)
- [MediaWiki Templates](#mediawiki-templates)
- [Plantillas CoffeeScript](#plantillas-coffeescript)
- [Plantillas Yajl](#plantillas-yajl)
- [Accediendo a Variables en Plantillas](#accediendo-a-variables-en-plantillas)
- [Plantillas con `yield` y `layout` anidado](#plantillas-con-yield-y-layout-anidado)
- [Plantillas Inline](#plantillas-inline)
- [Plantillas Nombradas](#plantillas-nombradas)
- [Asociando Extensiones de Archivo](#asociando-extensiones-de-archivo)
- [Añadiendo Tu Propio Motor de Plantillas](#añadiendo-tu-propio-motor-de-plantillas)
- [Usando Lógica Personalizada para la Búsqueda en Plantillas](#usando-lógica-personalizada-para-la-búsqueda-en-plantillas)
- [Filtros](#filtros)
- [Helpers](#helpers)
- [Usando Sesiones](#usando-sesiones)
- [Secreto de Sesión](#secreto-de-sesión)
- [Configuración de Sesión](#configuración-de-sesión)
- [Escogiendo tu Propio Middleware de Sesión](#escogiendo-tu-propio-middleware-de-sesión)
- [Interrupción](#interrupción)
- [Paso](#paso)
- [Desencadenando Otra Ruta](#desencadenando-otra-ruta)
- [Configurando el Cuerpo, Código de Estado y los Encabezados](#configurando-el-cuerpo-código-de-estado-y-los-encabezados)
- [Streaming De Respuestas](#streaming-de-respuestas)
- [Logging](#logging)
- [Tipos Mime](#tipos-mime)
- [Generando URLs](#generando-urls)
- [Redirección del Navegador](#redirección-del-navegador)
- [Control del Cache](#control-del-cache)
- [Enviando Archivos](#enviando-archivos)
- [Accediendo al objeto Request](#accediendo-al-objeto-request)
- [Archivos Adjuntos](#archivos-adjuntos)
- [Fecha y Hora](#fecha-y-hora)
- [Buscando los Archivos de las Plantillas](#buscando-los-archivos-de-las-plantillas)
- [Configuración](#configuración)
- [Configurando la Protección Contra Ataques](#configurando-la-protección-contra-ataques)
- [Configuraciones Disponibles](#configuraciones-disponibles)
- [Entornos](#entornos)
- [Manejo de Errores](#manejo-de-errores)
- [Not Found](#not-found)
- [Error](#error)
- [Rack Middleware](#rack-middleware)
- [Pruebas](#pruebas)
- [Sinatra::Base - Middleware, Librerías, y Aplicaciones Modulares](#sinatrabase---middleware-librerías-y-aplicaciones-modulares)
- [Estilo Modular vs. Clásico](#estilo-modular-vs-clásico)
- [Sirviendo una Aplicación Modular](#sirviendo-una-aplicación-modular)
- [Usando una Aplicación Clásica con un Archivo config.ru](#usando-una-aplicación-clásica-con-un-archivo-configru)
- [¿Cuándo usar config.ru?](#cuándo-usar-configru)
- [Utilizando Sinatra como Middleware](#utilizando-sinatra-como-middleware)
- [Creación Dinámica de Aplicaciones](#creación-dinámica-de-aplicaciones)
- [Ámbitos y Ligaduras](#ámbitos-y-ligaduras)
- [Ámbito de Aplicación/Clase](#ámbito-de-aplicaciónclase)
- [Ámbito de Petición/Instancia](#ámbito-de-peticióninstancia)
- [Ámbito de Delegación](#ámbito-de-delegación)
- [Línea de Comandos](#línea-de-comandos)
- [Multi-threading](#multi-threading)
- [Requerimientos](#requerimientos)
- [A la Vanguardia](#a-la-vanguardia)
- [Usando Bundler](#usando-bundler)
- [Versionado](#versionado)
- [Lecturas Recomendadas](#lecturas-recomendadas)
## Rutas
@ -993,26 +992,6 @@ var contenido = {"foo":"bar","baz":"qux"};
present(contenido);
```
#### Plantillas WLang
<table>
<tr>
<td>Dependencias</td>
<td><a href="https://github.com/blambeau/wlang/" title="wlang">wlang</a></td>
</tr>
<tr>
<td>Extensiones de Archivo</td>
<td><tt>.wlang</tt></td>
</tr>
<tr>
<td>Ejemplo</td>
<td><tt>wlang :index, :locals => { :clave => 'valor' }</tt></td>
</tr>
</table>
Como no vas a poder llamar a métodos de Ruby (excepto por `yield`) desde una
plantilla WLang, casi siempre vas a querer pasarle locales.
### Accediendo a Variables en Plantillas
Las plantillas son evaluadas dentro del mismo contexto que los manejadores de
@ -1071,7 +1050,7 @@ end
```
Actualmente, los siguientes métodos de renderizado aceptan un bloque: `erb`, `haml`,
`liquid`, `slim `, `wlang`. También el método general de `render` acepta un bloque.
`liquid`, `slim `. También el método general de `render` acepta un bloque.
### Plantillas Inline

View File

@ -39,87 +39,84 @@ Sinatra utilise le server Thin quand il est disponible.
## Table des matières
* [Sinatra](#sinatra)
* [Table des matières](#table-des-matières)
* [Routes](#routes)
* [Conditions](#conditions)
* [Valeurs de retour](#valeurs-de-retour)
* [Masques de route spécifiques](#masques-de-route-spécifiques)
* [Fichiers statiques](#fichiers-statiques)
* [Vues / Templates](#vues--templates)
* [Templates littéraux](#templates-littéraux)
* [Langages de template disponibles](#langages-de-template-disponibles)
* [Templates Haml](#templates-haml)
* [Templates Erb](#templates-erb)
* [Templates Builder](#templates-builder)
* [Templates Nokogiri](#templates-nokogiri)
* [Templates Liquid](#templates-liquid)
* [Templates Markdown](#templates-markdown)
* [Templates RDoc](#templates-rdoc)
* [Templates Asciidoc](#templates-asciidoc)
* [Templates Radius](#templates-radius)
* [Templates Markaby](#templates-markaby)
* [Templates RABL](#templates-rabl)
* [Templates Slim](#templates-slim)
* [Templates Creole](#templates-creole)
* [Templates MediaWiki](#templates-mediawiki)
* [Templates CoffeeScript](#templates-coffeescript)
* [Templates Yajl](#templates-yajl)
* [Templates WLang](#templates-wlang)
* [Accéder aux variables dans un Template](#accéder-aux-variables-dans-un-template)
* [Templates avec `yield` et layouts imbriqués](#templates-avec-yield-et-layouts-imbriqués)
* [Templates dans le fichier source](#templates-dans-le-fichier-source)
* [Templates nommés](#templates-nommés)
* [Associer des extensions de fichier](#associer-des-extensions-de-fichier)
* [Ajouter son propre moteur de rendu](#ajouter-son-propre-moteur-de-rendu)
* [Utiliser des règles personnalisées pour la recherche de templates](#utiliser-des-règles-personnalisées-pour-la-recherche-de-templates)
* [Filtres](#filtres)
* [Helpers](#helpers)
* [Utiliser les sessions](#utiliser-les-sessions)
* [Halt](#halt)
* [Passer](#passer)
* [Déclencher une autre route](#déclencher-une-autre-route)
* [Définir le corps, le code retour et les en-têtes](#définir-le-corps-le-code-retour-et-les-en-têtes)
* [Faire du streaming](#faire-du-streaming)
* [Journalisation (Logging)](#journalisation-logging)
* [Types Mime](#types-mime)
* [Former des URLs](#former-des-urls)
* [Redirection du navigateur](#redirection-du-navigateur)
* [Contrôle du cache](#contrôle-du-cache)
* [Envoyer des fichiers](#envoyer-des-fichiers)
* [Accéder à l'objet requête](#accéder-à-lobjet-requête)
* [Fichiers joints](#fichiers-joints)
* [Gérer Date et Time](#gérer-date-et-time)
* [Chercher les fichiers de templates](#chercher-les-fichiers-de-templates)
* [Configuration](#configuration)
* [Se protéger des attaques](#se-protéger-des-attaques)
* [Paramètres disponibles](#paramètres-disponibles)
* [Environnements](#environnements)
* [Gérer les erreurs](#gérer-les-erreurs)
* [NotFound](#notfound)
* [Error](#error)
* [Les Middlewares Rack](#les-middlewares-rack)
* [Tester](#tester)
* [Sinatra::Base - Les Middlewares, Bibliothèques, et Applications Modulaires](#sinatrabase---les-middlewares-bibliothèques-et-applications-modulaires)
* [Style modulaire vs. style classique](#style-modulaire-vs-style-classique)
* [Servir une application modulaire](#servir-une-application-modulaire)
* [Utiliser une application de style classique avec un fichier config.ru](#utiliser-une-application-de-style-classique-avec-un-fichier-configru)
* [Quand utiliser un fichier config.ru ?](#quand-utiliser-un-fichier-configru-)
* [Utiliser Sinatra comme Middleware](#utiliser-sinatra-comme-middleware)
* [Création dynamique d'applications](#création-dynamique-dapplications)
* [Contextes et Binding](#contextes-et-binding)
* [Contexte de l'application/classe](#contexte-de-lapplicationclasse)
* [Contexte de la requête/instance](#contexte-de-la-requêteinstance)
* [Le contexte de délégation](#le-contexte-de-délégation)
* [Ligne de commande](#ligne-de-commande)
* [Multi-threading](#multi-threading)
* [Configuration nécessaire](#configuration-nécessaire)
* [Essuyer les plâtres](#essuyer-les-plâtres)
* [Installer avec Bundler](#installer-avec-bundler)
* [Faire un clone local](#faire-un-clone-local)
* [Installer globalement](#installer-globalement)
* [Versions](#versions)
* [Mais encore](#mais-encore)
- [Sinatra](#sinatra)
- [Table des matières](#table-des-matières)
- [Routes](#routes)
- [Conditions](#conditions)
- [Valeurs de retour](#valeurs-de-retour)
- [Masques de route spécifiques](#masques-de-route-spécifiques)
- [Fichiers statiques](#fichiers-statiques)
- [Vues / Templates](#vues--templates)
- [Templates littéraux](#templates-littéraux)
- [Langages de template disponibles](#langages-de-template-disponibles)
- [Templates Haml](#templates-haml)
- [Templates Erb](#templates-erb)
- [Templates Builder](#templates-builder)
- [Templates Nokogiri](#templates-nokogiri)
- [Templates Liquid](#templates-liquid)
- [Templates Markdown](#templates-markdown)
- [Templates RDoc](#templates-rdoc)
- [Templates Asciidoc](#templates-asciidoc)
- [Templates Radius](#templates-radius)
- [Templates Markaby](#templates-markaby)
- [Templates RABL](#templates-rabl)
- [Templates Slim](#templates-slim)
- [Templates Creole](#templates-creole)
- [Templates MediaWiki](#templates-mediawiki)
- [Templates CoffeeScript](#templates-coffeescript)
- [Templates Yajl](#templates-yajl)
- [Accéder aux variables dans un Template](#accéder-aux-variables-dans-un-template)
- [Templates avec `yield` et layouts imbriqués](#templates-avec-yield-et-layouts-imbriqués)
- [Templates dans le fichier source](#templates-dans-le-fichier-source)
- [Templates nommés](#templates-nommés)
- [Associer des extensions de fichier](#associer-des-extensions-de-fichier)
- [Ajouter son propre moteur de rendu](#ajouter-son-propre-moteur-de-rendu)
- [Utiliser des règles personnalisées pour la recherche de templates](#utiliser-des-règles-personnalisées-pour-la-recherche-de-templates)
- [Filtres](#filtres)
- [Helpers](#helpers)
- [Utiliser les sessions](#utiliser-les-sessions)
- [Halt](#halt)
- [Passer](#passer)
- [Déclencher une autre route](#déclencher-une-autre-route)
- [Définir le corps, le code retour et les en-têtes](#définir-le-corps-le-code-retour-et-les-en-têtes)
- [Faire du streaming](#faire-du-streaming)
- [Journalisation (Logging)](#journalisation-logging)
- [Types Mime](#types-mime)
- [Former des URLs](#former-des-urls)
- [Redirection du navigateur](#redirection-du-navigateur)
- [Contrôle du cache](#contrôle-du-cache)
- [Envoyer des fichiers](#envoyer-des-fichiers)
- [Accéder à l'objet requête](#accéder-à-lobjet-requête)
- [Fichiers joints](#fichiers-joints)
- [Gérer Date et Time](#gérer-date-et-time)
- [Chercher les fichiers de templates](#chercher-les-fichiers-de-templates)
- [Configuration](#configuration)
- [Se protéger des attaques](#se-protéger-des-attaques)
- [Paramètres disponibles](#paramètres-disponibles)
- [Environnements](#environnements)
- [Gérer les erreurs](#gérer-les-erreurs)
- [NotFound](#notfound)
- [Error](#error)
- [Les Middlewares Rack](#les-middlewares-rack)
- [Tester](#tester)
- [Sinatra::Base - Les Middlewares, Bibliothèques, et Applications Modulaires](#sinatrabase---les-middlewares-bibliothèques-et-applications-modulaires)
- [Style modulaire vs. style classique](#style-modulaire-vs-style-classique)
- [Servir une application modulaire](#servir-une-application-modulaire)
- [Utiliser une application de style classique avec un fichier config.ru](#utiliser-une-application-de-style-classique-avec-un-fichier-configru)
- [Quand utiliser un fichier config.ru ?](#quand-utiliser-un-fichier-configru-)
- [Utiliser Sinatra comme Middleware](#utiliser-sinatra-comme-middleware)
- [Création dynamique d'applications](#création-dynamique-dapplications)
- [Contextes et Binding](#contextes-et-binding)
- [Contexte de l'application/classe](#contexte-de-lapplicationclasse)
- [Contexte de la requête/instance](#contexte-de-la-requêteinstance)
- [Le contexte de délégation](#le-contexte-de-délégation)
- [Ligne de commande](#ligne-de-commande)
- [Multi-threading](#multi-threading)
- [Configuration nécessaire](#configuration-nécessaire)
- [Essuyer les plâtres](#essuyer-les-plâtres)
- [Installer avec Bundler](#installer-avec-bundler)
- [Versions](#versions)
- [Mais encore](#mais-encore)
## Routes
@ -999,28 +996,6 @@ lobjet retourné.
var ressource = {"foo":"bar","baz":"qux"}; present(ressource);</pre>
```
#### Templates WLang
<table>
<tr>
<td>Dépendances</td>
<td><a href="https://github.com/blambeau/wlang/" title="wlang">wlang</a></td>
</tr>
<tr>
<td>Extensions de fichier</td>
<td><tt>.wlang</tt></td>
</tr>
<tr>
<td>Exemple</td>
<td><tt>wlang :index, :locals => { :key => 'value' }</tt></td>
</tr>
</table>
Lappel de code ruby au sein des templates nest pas idiomatique en wlang.
Lécriture de templates sans logique est encouragée, via le passage de variables
locales. Il est néanmoins possible décrire un layout en wlang et dy utiliser
`yield`.
### Accéder aux variables dans un Template
Un template est évalué dans le même contexte que l'endroit d'où il a été
@ -1079,7 +1054,7 @@ end
```
Actuellement, les méthodes de rendu qui acceptent un bloc sont : `erb`, `haml`,
`liquid`, `slim ` et `wlang`. La méthode générale `render` accepte elle aussi
`liquid` et `slim `. La méthode générale `render` accepte elle aussi
un bloc.

View File

@ -36,90 +36,89 @@ PumaがあればSinatraはこれを利用するので、`gem install puma`する
## 目次
* [Sinatra](#sinatra)
* [目次](#目次)
* [ルーティング(Routes)](#ルーティングroutes)
* [条件(Conditions)](#条件conditions)
* [戻り値(Return Values)](#戻り値return-values)
* [カスタムルーティングマッチャー(Custom Route Matchers)](#カスタムルーティングマッチャーcustom-route-matchers)
* [静的ファイル(Static Files)](#静的ファイルstatic-files)
* [ビュー / テンプレート(Views / Templates)](#ビュー--テンプレートviews--templates)
* [リテラルテンプレート(Literal Templates)](#リテラルテンプレートliteral-templates)
* [利用可能なテンプレート言語](#利用可能なテンプレート言語)
* [Haml テンプレート](#haml-テンプレート)
* [Erb テンプレート](#erb-テンプレート)
* [Builder テンプレート](#builder-テンプレート)
* [Nokogiri テンプレート](#nokogiri-テンプレート)
* [Liquid テンプレート](#liquid-テンプレート)
* [Markdown テンプレート](#markdown-テンプレート)
* [RDoc テンプレート](#rdoc-テンプレート)
* [AsciiDoc テンプレート](#asciidoc-テンプレート)
* [Radius テンプレート](#radius-テンプレート)
* [Markaby テンプレート](#markaby-テンプレート)
* [RABL テンプレート](#rabl-テンプレート)
* [Slim テンプレート](#slim-テンプレート)
* [Creole テンプレート](#creole-テンプレート)
* [MediaWiki テンプレート](#mediawiki-テンプレート)
* [CoffeeScript テンプレート](#coffeescript-テンプレート)
* [Yajl テンプレート](#yajl-テンプレート)
* [WLang テンプレート](#wlang-テンプレート)
* [テンプレート内での変数へのアクセス](#テンプレート内での変数へのアクセス)
* [`yield`を伴うテンプレートとネストしたレイアウト](#yieldを伴うテンプレートとネストしたレイアウト)
* [インラインテンプレート(Inline Templates)](#インラインテンプレートinline-templates)
* [名前付きテンプレート(Named Templates)](#名前付きテンプレートnamed-templates)
* [ファイル拡張子の関連付け](#ファイル拡張子の関連付け)
* [オリジナルテンプレートエンジンの追加](#オリジナルテンプレートエンジンの追加)
* [カスタムロジックを使用したテンプレートの探索](#カスタムロジックを使用したテンプレートの探索)
* [フィルタ(Filters)](#フィルタfilters)
* [ヘルパー(Helpers)](#ヘルパーhelpers)
* [セッションの使用](#セッションの使用)
* [セッション秘密鍵のセキュリティ](#セッション秘密鍵のセキュリティ)
* [セッションコンフィグ](#セッションコンフィグ)
* [自分で選んだセッションミドルウェアを使う](#自分で選んだセッションミドルウェアを使う)
* [停止(Halting)](#停止halting)
* [パッシング(Passing)](#パッシングpassing)
* [別ルーティングの誘発](#別ルーティングの誘発)
* [ボディ、ステータスコードおよびヘッダの設定](#ボディステータスコードおよびヘッダの設定)
* [ストリーミングレスポンス(Streaming Responses)](#ストリーミングレスポンスstreaming-responses)
* [ロギング(Logging)](#ロギングlogging)
* [MIMEタイプ(Mime Types)](#mimeタイプmime-types)
* [URLの生成](#urlの生成)
* [ブラウザリダイレクト(Browser Redirect)](#ブラウザリダイレクトbrowser-redirect)
* [キャッシュ制御(Cache Control)](#キャッシュ制御cache-control)
* [ファイルの送信](#ファイルの送信)
* [リクエストオブジェクトへのアクセス](#リクエストオブジェクトへのアクセス)
* [アタッチメント(Attachments)](#アタッチメントattachments)
* [日付と時刻の取り扱い](#日付と時刻の取り扱い)
* [テンプレートファイルの探索](#テンプレートファイルの探索)
* [コンフィギュレーション(Configuration)](#コンフィギュレーションconfiguration)
* [攻撃防御に対する設定](#攻撃防御に対する設定)
* [利用可能な設定](#利用可能な設定)
* [環境設定(Environments)](#環境設定environments)
* [エラーハンドリング(Error Handling)](#エラーハンドリングerror-handling)
* [Not Found](#not-found)
* [エラー(Error)](#エラーerror)
* [Rackミドルウェア(Rack Middleware)](#rackミドルウェアrack-middleware)
* [テスト(Testing)](#テストtesting)
* [Sinatra::Base - ミドルウェア、ライブラリおよびモジュラーアプリ](#sinatrabase---ミドルウェアライブラリおよびモジュラーアプリ)
* [モジュラースタイル vs クラッシックスタイル](#モジュラースタイル-vs-クラッシックスタイル)
* [モジュラーアプリケーションの提供](#モジュラーアプリケーションの提供)
* [config.ruを用いたクラッシックスタイルアプリケーションの使用](#configruを用いたクラッシックスタイルアプリケーションの使用)
* [config.ruはいつ使うのか](#configruはいつ使うのか)
* [Sinatraのミドルウェアとしての利用](#sinatraのミドルウェアとしての利用)
* [動的なアプリケーションの生成](#動的なアプリケーションの生成)
* [スコープとバインディング(Scopes and Binding)](#スコープとバインディングscopes-and-binding)
* [アプリケーション/クラスのスコープ](#アプリケーションクラスのスコープ)
* [リクエスト/インスタンスのスコープ](#リクエストインスタンスのスコープ)
* [デリゲートスコープ](#デリゲートスコープ)
* [コマンドライン](#コマンドライン)
* [マルチスレッド](#マルチスレッド)
* [必要環境](#必要環境)
* [最新開発版](#最新開発版)
* [Bundlerを使う場合](#bundlerを使う場合)
* [直接組み込む場合](#直接組み込む場合)
* [グローバル環境にインストールする場合](#グローバル環境にインストールする場合)
* [バージョニング(Versioning)](#バージョニングversioning)
* [参考文献](#参考文献)
- [Sinatra](#sinatra)
- [目次](#目次)
- [ルーティング(Routes)](#ルーティングroutes)
- [条件(Conditions)](#条件conditions)
- [戻り値(Return Values)](#戻り値return-values)
- [カスタムルーティングマッチャー(Custom Route Matchers)](#カスタムルーティングマッチャーcustom-route-matchers)
- [静的ファイル(Static Files)](#静的ファイルstatic-files)
- [ビュー / テンプレート(Views / Templates)](#ビュー--テンプレートviews--templates)
- [リテラルテンプレート(Literal Templates)](#リテラルテンプレートliteral-templates)
- [利用可能なテンプレート言語](#利用可能なテンプレート言語)
- [Haml テンプレート](#haml-テンプレート)
- [Erb テンプレート](#erb-テンプレート)
- [Builder テンプレート](#builder-テンプレート)
- [Nokogiri テンプレート](#nokogiri-テンプレート)
- [Liquid テンプレート](#liquid-テンプレート)
- [Markdown テンプレート](#markdown-テンプレート)
- [RDoc テンプレート](#rdoc-テンプレート)
- [AsciiDoc テンプレート](#asciidoc-テンプレート)
- [Radius テンプレート](#radius-テンプレート)
- [Markaby テンプレート](#markaby-テンプレート)
- [RABL テンプレート](#rabl-テンプレート)
- [Slim テンプレート](#slim-テンプレート)
- [Creole テンプレート](#creole-テンプレート)
- [MediaWiki テンプレート](#mediawiki-テンプレート)
- [CoffeeScript テンプレート](#coffeescript-テンプレート)
- [Yajl テンプレート](#yajl-テンプレート)
- [テンプレート内での変数へのアクセス](#テンプレート内での変数へのアクセス)
- [`yield`を伴うテンプレートとネストしたレイアウト](#yieldを伴うテンプレートとネストしたレイアウト)
- [インラインテンプレート(Inline Templates)](#インラインテンプレートinline-templates)
- [名前付きテンプレート(Named Templates)](#名前付きテンプレートnamed-templates)
- [ファイル拡張子の関連付け](#ファイル拡張子の関連付け)
- [オリジナルテンプレートエンジンの追加](#オリジナルテンプレートエンジンの追加)
- [カスタムロジックを使用したテンプレートの探索](#カスタムロジックを使用したテンプレートの探索)
- [フィルタ(Filters)](#フィルタfilters)
- [ヘルパー(Helpers)](#ヘルパーhelpers)
- [セッションの使用](#セッションの使用)
- [セッション秘密鍵のセキュリティ](#セッション秘密鍵のセキュリティ)
- [セッションコンフィグ](#セッションコンフィグ)
- [自分で選んだセッションミドルウェアを使う](#自分で選んだセッションミドルウェアを使う)
- [停止(Halting)](#停止halting)
- [パッシング(Passing)](#パッシングpassing)
- [別ルーティングの誘発](#別ルーティングの誘発)
- [ボディ、ステータスコードおよびヘッダの設定](#ボディステータスコードおよびヘッダの設定)
- [ストリーミングレスポンス(Streaming Responses)](#ストリーミングレスポンスstreaming-responses)
- [ロギング(Logging)](#ロギングlogging)
- [MIMEタイプ(Mime Types)](#mimeタイプmime-types)
- [URLの生成](#urlの生成)
- [ブラウザリダイレクト(Browser Redirect)](#ブラウザリダイレクトbrowser-redirect)
- [キャッシュ制御(Cache Control)](#キャッシュ制御cache-control)
- [ファイルの送信](#ファイルの送信)
- [リクエストオブジェクトへのアクセス](#リクエストオブジェクトへのアクセス)
- [アタッチメント(Attachments)](#アタッチメントattachments)
- [日付と時刻の取り扱い](#日付と時刻の取り扱い)
- [テンプレートファイルの探索](#テンプレートファイルの探索)
- [コンフィギュレーション(Configuration)](#コンフィギュレーションconfiguration)
- [攻撃防御に対する設定](#攻撃防御に対する設定)
- [利用可能な設定](#利用可能な設定)
- [環境設定(Environments)](#環境設定environments)
- [エラーハンドリング(Error Handling)](#エラーハンドリングerror-handling)
- [未検出(Not Found)](#未検出not-found)
- [エラー(Error)](#エラーerror)
- [Rackミドルウェア(Rack Middleware)](#rackミドルウェアrack-middleware)
- [テスト(Testing)](#テストtesting)
- [Sinatra::Base - ミドルウェア、ライブラリおよびモジュラーアプリ](#sinatrabase---ミドルウェアライブラリおよびモジュラーアプリ)
- [モジュラースタイル vs クラッシックスタイル](#モジュラースタイル-vs-クラッシックスタイル)
- [モジュラーアプリケーションの提供](#モジュラーアプリケーションの提供)
- [config.ruを用いたクラッシックスタイルアプリケーションの使用](#configruを用いたクラッシックスタイルアプリケーションの使用)
- [config.ruはいつ使うのか](#configruはいつ使うのか)
- [Sinatraのミドルウェアとしての利用](#sinatraのミドルウェアとしての利用)
- [動的なアプリケーションの生成](#動的なアプリケーションの生成)
- [スコープとバインディング(Scopes and Binding)](#スコープとバインディングscopes-and-binding)
- [アプリケーション/クラスのスコープ](#アプリケーションクラスのスコープ)
- [リクエスト/インスタンスのスコープ](#リクエストインスタンスのスコープ)
- [デリゲートスコープ](#デリゲートスコープ)
- [コマンドライン](#コマンドライン)
- [マルチスレッド](#マルチスレッド)
- [必要環境](#必要環境)
- [最新開発版](#最新開発版)
- [Bundlerを使う場合](#bundlerを使う場合)
- [直接組み込む場合](#直接組み込む場合)
- [グローバル環境にインストールする場合](#グローバル環境にインストールする場合)
- [バージョニング(Versioning)](#バージョニングversioning)
- [参考文献](#参考文献)
## ルーティング(Routes)
@ -907,25 +906,6 @@ json[:baz] = key
var resource = {"foo":"bar","baz":"qux"}; present(resource);
```
#### WLang テンプレート
<table>
<tr>
<td>依存</td>
<td><a href="https://github.com/blambeau/wlang/" title="wlang">wlang</a></td>
</tr>
<tr>
<td>ファイル拡張子</td>
<td><tt>.wlang</tt></td>
</tr>
<tr>
<td></td>
<td><tt>wlang :index, :locals => { :key => 'value' }</tt></td>
</tr>
</table>
WLang内でのRubyメソッドの呼び出しは一般的ではないので、ほとんどの場合にlocalsを指定する必要があるでしょう。しかしながら、WLangで書かれたレイアウトは`yield`をサポートしています。
### テンプレート内での変数へのアクセス
テンプレートはルーティングハンドラと同じコンテキストの中で評価されます。ルーティングハンドラでセットされたインスタンス変数はテンプレート内で直接使うことができます。
@ -980,7 +960,7 @@ end
```
現在、次のレンダリングメソッドがブロックを取れます: `erb`, `haml`,
`liquid`, `slim `, `wlang`
`liquid`, `slim `
また汎用の`render`メソッドもブロックを取れます。
### インラインテンプレート(Inline Templates)

View File

@ -34,87 +34,86 @@ thin이 설치되어 있을 경우 Sinatra는 thin을 통해 실행합니다.
## 목차
* [Sinatra](#sinatra)
* [목차](#목차)
* [라우터(Routes)](#라우터routes)
* [조건(Conditions)](#조건conditions)
* [반환값(Return Values)](#반환값return-values)
* [커스텀 라우터 매처(Custom Route Matchers)](#커스텀-라우터-매처custom-route-matchers)
* [정적 파일(Static Files)](#정적-파일static-files)
* [뷰 / 템플릿(Views / Templates)](#뷰--템플릿views--templates)
* [리터럴 템플릿(Literal Templates)](#리터럴-템플릿literal-templates)
* [가능한 템플릿 언어들(Available Template Languages)](#가능한-템플릿-언어들available-template-languages)
* [Haml 템플릿](#haml-템플릿)
* [Erb 템플릿](#erb-템플릿)
* [Builder 템플릿](#builder-템플릿)
* [Nokogiri 템플릿](#nokogiri-템플릿)
* [Liquid 템플릿](#liquid-템플릿)
* [Markdown 템플릿](#markdown-템플릿)
* [RDoc 템플릿](#rdoc-템플릿)
* [AsciiDoc 템플릿](#asciidoc-템플릿)
* [Radius 템플릿](#radius-템플릿)
* [Markaby 템플릿](#markaby-템플릿)
* [RABL 템플릿](#rabl-템플릿)
* [Slim 템플릿](#slim-템플릿)
* [Creole 템플릿](#creole-템플릿)
* [MediaWiki 템플릿](#mediawiki-템플릿)
* [CoffeeScript 템플릿](#coffeescript-템플릿)
* [Yajl 템플릿](#yajl-템플릿)
* [WLang 템플릿](#wlang-템플릿)
* [템플릿에서 변수에 접근하기](#템플릿에서-변수에-접근하기)
* [템플릿에서의 `yield` 와 중첩 레이아웃](#템플릿에서의-yield-와-중첩-레이아웃)
* [인라인 템플릿](#인라인-템플릿)
* [이름을 가지는 템플릿(Named Templates)](#이름을-가지는-템플릿named-templates)
* [파일 확장자 연결하기](#파일-확장자-연결하기)
* [나만의 고유한 템플릿 엔진 추가하기](#나만의-고유한-템플릿-엔진-추가하기)
* [템플릿 검사를 위한 커스텀 로직 사용하기](#템플릿-검사를-위한-커스텀-로직-사용하기)
* [필터(Filters)](#필터filters)
* [헬퍼(Helpers)](#헬퍼helpers)
* [세션(Sessions) 사용하기](#세션sessions-사용하기)
* [중단하기(Halting)](#중단하기halting)
* [넘기기(Passing)](#넘기기passing)
* [다른 라우터 부르기(Triggering Another Route)](#다른-라우터-부르기triggering-another-route)
* [본문, 상태 코드 및 헤더 설정하기](#본문-상태-코드-및-헤더-설정하기)
* [응답 스트리밍(Streaming Responses)](#응답-스트리밍streaming-responses)
* [로깅(Logging)](#로깅logging)
* [마임 타입(Mime Types)](#마임-타입mime-types)
* [URL 생성하기](#url-생성하기)
* [브라우저 재지정(Browser Redirect)](#브라우저-재지정browser-redirect)
* [캐시 컨트롤(Cache Control)](#캐시-컨트롤cache-control)
* [파일 전송하기(Sending Files)](#파일-전송하기sending-files)
* [요청 객체에 접근하기(Accessing the Request Object)](#요청-객체에-접근하기accessing-the-request-object)
* [첨부(Attachments)](#첨부attachments)
* [날짜와 시간 다루기](#날짜와-시간-다루기)
* [템플릿 파일 참조하기](#템플릿-파일-참조하기)
* [설정(Configuration)](#설정configuration)
* [공격 방어 설정하기(Configuring attack protection)](#공격-방어-설정하기configuring-attack-protection)
* [가능한 설정들(Available Settings)](#가능한-설정들available-settings)
* [환경(Environments)](#환경environments)
* [에러 처리(Error Handling)](#에러-처리error-handling)
* [찾을 수 없음(Not Found)](#찾을-수-없음not-found)
* [에러](#에러)
* [Rack 미들웨어(Rack Middleware)](#rack-미들웨어rack-middleware)
* [테스팅(Testing)](#테스팅testing)
* [Sinatra::Base - 미들웨어(Middleware), 라이브러리(Libraries), 그리고 모듈 앱(Modular Apps)](#sinatrabase---미들웨어middleware-라이브러리libraries-그리고-모듈-앱modular-apps)
* [모듈(Modular) vs. 전통적 방식(Classic Style)](#모듈modular-vs-전통적-방식classic-style)
* [모듈 애플리케이션(Modular Application) 제공하기](#모듈-애플리케이션modular-application-제공하기)
* [config.ru로 전통적 방식의 애플리케이션 사용하기](#configru로-전통적-방식의-애플리케이션-사용하기)
* [언제 config.ru를 사용할까?](#언제-configru를-사용할까)
* [Sinatra를 미들웨어로 사용하기](#sinatra를-미들웨어로-사용하기)
* [동적인 애플리케이션 생성(Dynamic Application Creation)](#동적인-애플리케이션-생성dynamic-application-creation)
* [범위(Scopes)와 바인딩(Binding)](#범위scopes와-바인딩binding)
* [애플리케이션/클래스 범위](#애플리케이션클래스-범위)
* [요청/인스턴스 범위](#요청인스턴스-범위)
* [위임 범위(Delegation Scope)](#위임-범위delegation-scope)
* [명령행(Command Line)](#명령행command-line)
* [다중 스레드(Multi-threading)](#다중-스레드multi-threading)
* [요구사항(Requirement)](#요구사항requirement)
* [최신(The Bleeding Edge)](#최신the-bleeding-edge)
* [Bundler를 사용하여](#bundler를-사용하여)
* [직접 하기(Roll Your Own)](#직접-하기roll-your-own)
* [전역으로 설치(Install Globally)](#전역으로-설치install-globally)
* [버저닝(Versioning)](#버저닝versioning)
* [더 읽을 거리(Further Reading)](#더-읽을-거리further-reading)
- [Sinatra](#sinatra)
- [목차](#목차)
- [라우터(Routes)](#라우터routes)
- [조건(Conditions)](#조건conditions)
- [반환값(Return Values)](#반환값return-values)
- [커스텀 라우터 매처(Custom Route Matchers)](#커스텀-라우터-매처custom-route-matchers)
- [정적 파일(Static Files)](#정적-파일static-files)
- [뷰 / 템플릿(Views / Templates)](#뷰--템플릿views--templates)
- [리터럴 템플릿(Literal Templates)](#리터럴-템플릿literal-templates)
- [가능한 템플릿 언어들(Available Template Languages)](#가능한-템플릿-언어들available-template-languages)
- [Haml 템플릿](#haml-템플릿)
- [Erb 템플릿](#erb-템플릿)
- [Builder 템플릿](#builder-템플릿)
- [Nokogiri 템플릿](#nokogiri-템플릿)
- [Liquid 템플릿](#liquid-템플릿)
- [Markdown 템플릿](#markdown-템플릿)
- [RDoc 템플릿](#rdoc-템플릿)
- [AsciiDoc 템플릿](#asciidoc-템플릿)
- [Radius 템플릿](#radius-템플릿)
- [Markaby 템플릿](#markaby-템플릿)
- [RABL 템플릿](#rabl-템플릿)
- [Slim 템플릿](#slim-템플릿)
- [Creole 템플릿](#creole-템플릿)
- [MediaWiki 템플릿](#mediawiki-템플릿)
- [CoffeeScript 템플릿](#coffeescript-템플릿)
- [Yajl 템플릿](#yajl-템플릿)
- [템플릿에서 변수에 접근하기](#템플릿에서-변수에-접근하기)
- [템플릿에서의 `yield` 와 중첩 레이아웃](#템플릿에서의-yield-와-중첩-레이아웃)
- [인라인 템플릿](#인라인-템플릿)
- [이름을 가지는 템플릿(Named Templates)](#이름을-가지는-템플릿named-templates)
- [파일 확장자 연결하기](#파일-확장자-연결하기)
- [나만의 고유한 템플릿 엔진 추가하기](#나만의-고유한-템플릿-엔진-추가하기)
- [템플릿 검사를 위한 커스텀 로직 사용하기](#템플릿-검사를-위한-커스텀-로직-사용하기)
- [필터(Filters)](#필터filters)
- [헬퍼(Helpers)](#헬퍼helpers)
- [세션(Sessions) 사용하기](#세션sessions-사용하기)
- [중단하기(Halting)](#중단하기halting)
- [넘기기(Passing)](#넘기기passing)
- [다른 라우터 부르기(Triggering Another Route)](#다른-라우터-부르기triggering-another-route)
- [본문, 상태 코드 및 헤더 설정하기](#본문-상태-코드-및-헤더-설정하기)
- [응답 스트리밍(Streaming Responses)](#응답-스트리밍streaming-responses)
- [로깅(Logging)](#로깅logging)
- [마임 타입(Mime Types)](#마임-타입mime-types)
- [URL 생성하기](#url-생성하기)
- [브라우저 재지정(Browser Redirect)](#브라우저-재지정browser-redirect)
- [캐시 컨트롤(Cache Control)](#캐시-컨트롤cache-control)
- [파일 전송하기(Sending Files)](#파일-전송하기sending-files)
- [요청 객체에 접근하기(Accessing the Request Object)](#요청-객체에-접근하기accessing-the-request-object)
- [첨부(Attachments)](#첨부attachments)
- [날짜와 시간 다루기](#날짜와-시간-다루기)
- [템플릿 파일 참조하기](#템플릿-파일-참조하기)
- [설정(Configuration)](#설정configuration)
- [공격 방어 설정하기(Configuring attack protection)](#공격-방어-설정하기configuring-attack-protection)
- [가능한 설정들(Available Settings)](#가능한-설정들available-settings)
- [환경(Environments)](#환경environments)
- [에러 처리(Error Handling)](#에러-처리error-handling)
- [찾을 수 없음(Not Found)](#찾을-수-없음not-found)
- [에러](#에러)
- [Rack 미들웨어(Middleware)](#rack-미들웨어middleware)
- [테스팅(Testing)](#테스팅testing)
- [Sinatra::Base - 미들웨어(Middleware), 라이브러리(Libraries), 그리고 모듈 앱(Modular Apps)](#sinatrabase---미들웨어middleware-라이브러리libraries-그리고-모듈-앱modular-apps)
- [모듈(Modular) vs. 전통적 방식(Classic Style)](#모듈modular-vs-전통적-방식classic-style)
- [모듈 애플리케이션(Modular Application) 제공하기](#모듈-애플리케이션modular-application-제공하기)
- [config.ru로 전통적 방식의 애플리케이션 사용하기](#configru로-전통적-방식의-애플리케이션-사용하기)
- [언제 config.ru를 사용할까?](#언제-configru를-사용할까)
- [Sinatra를 미들웨어로 사용하기](#sinatra를-미들웨어로-사용하기)
- [동적인 애플리케이션 생성(Dynamic Application Creation)](#동적인-애플리케이션-생성dynamic-application-creation)
- [범위(Scopes)와 바인딩(Binding)](#범위scopes와-바인딩binding)
- [애플리케이션/클래스 범위](#애플리케이션클래스-범위)
- [요청/인스턴스 범위](#요청인스턴스-범위)
- [위임 범위(Delegation Scope)](#위임-범위delegation-scope)
- [명령행(Command Line)](#명령행command-line)
- [다중 스레드(Multi-threading)](#다중-스레드multi-threading)
- [요구사항(Requirement)](#요구사항requirement)
- [최신(The Bleeding Edge)](#최신the-bleeding-edge)
- [Bundler를 사용하여](#bundler를-사용하여)
- [직접 하기(Roll Your Own)](#직접-하기roll-your-own)
- [전역으로 설치(Install Globally)](#전역으로-설치install-globally)
- [버저닝(Versioning)](#버저닝versioning)
- [더 읽을 거리(Further Reading)](#더-읽을-거리further-reading)
## 라우터(Routes)
@ -914,27 +913,6 @@ var resource = {"foo":"bar","baz":"qux"};
present(resource);
```
#### WLang 템플릿
<table>
<tr>
<td>의존성</td>
<td><a href="https://github.com/blambeau/wlang/" title="WLang">WLang</a></td>
</tr>
<tr>
<td>파일 확장자</td>
<td><tt>.wlang</tt></td>
</tr>
<tr>
<td>예제</td>
<td><tt>wlang :index, :locals => { :key => 'value' }</tt></td>
</tr>
</table>
WLang 템플릿에서는 루비 메서드를 사용하는게 일반적이지 않기
때문에, 거의 대부분의 경우 locals를 전달합니다. 그래도
WLang으로 쓰여진 레이아웃과 `yield`는 지원합니다.
### 템플릿에서 변수에 접근하기
템플릿은 라우터 핸들러와 같은 맥락(context)에서 평가됩니다. 라우터
@ -991,7 +969,7 @@ erb :admin_layout, :layout => :main_layout do
end
```
현재, `erb`, `haml`, `liquid`, `slim `, `wlang`는 블럭을 지원합니다.
현재, `erb`, `haml`, `liquid`, `slim `는 블럭을 지원합니다.
일반적인 `render` 메소드도 블럭을 지원합니다.
### 인라인 템플릿

View File

@ -38,88 +38,87 @@ View at: [http://localhost:4567](http://localhost:4567)
## ഉള്ളടക്കം
* [സിനാട്ര](#sinatra)
* [ഉള്ളടക്കം](#table-of-contents)
* [റൂട്സ്](#routes)
* [കണ്ടിഷൻസ്](#conditions)
* [റിട്ടേൺ വാല്യൂസ്](#return-values)
* [കസ്റ്റമ് റൂട്ട് മടീച്ചേഴ്സ് ](#custom-route-matchers)
* [സ്റ്റാറ്റിക് files](#static-files)
* [വ്യൂസ് / ടെംപ്ലേറ്റ്സ്](#views--templates)
* [ലിറ്ററൽ ടെംപ്ലേറ്റ്സ് ](#literal-templates)
* [ലഭ്യമായ ടെംപ്ലേറ്റ്സ് ഭാഷകൾ ](#available-template-languages)
* [Haml ടെംപ്ലേറ്റ്സ്](#haml-templates)
* [Erb ടെംപ്ലേറ്റ്സ്](#erb-templates)
* [Builder ടെംപ്ലേറ്റ്സ്](#builder-templates)
* [nokogiri ടെംപ്ലേറ്റ്സ്](#nokogiri-templates)
* [Liquid ടെംപ്ലേറ്റ്സ്](#liquid-templates)
* [Markdown ടെംപ്ലേറ്റ്സ്](#markdown-templates)
* [RDoc ടെംപ്ലേറ്റ്സ്](#rdoc-templates)
* [AsciiDoc ടെംപ്ലേറ്റ്സ്](#asciidoc-templates)
* [Radius ടെംപ്ലേറ്റ്സ്](#radius-templates)
* [Markaby ടെംപ്ലേറ്റ്സ്](#markaby-templates)
* [RABL ടെംപ്ലേറ്റ്സ്](#rabl-templates)
* [Slim ടെംപ്ലേറ്റ്സ്](#slim-templates)
* [Creole ടെംപ്ലേറ്റ്സ്](#creole-templates)
* [MediaWiki ടെംപ്ലേറ്റ്സ്](#mediawiki-templates)
* [CoffeeScript ടെംപ്ലേറ്റ്സ്](#coffeescript-templates)
* [Yajl ടെംപ്ലേറ്റ്സ്](#yajl-templates)
* [WLang ടെംപ്ലേറ്റ്സ്](#wlang-templates)
* [വാരിയബിൾസിനെ എടുക്കാൻ സഹായിക്കുന്ന ടെംപ്ലേറ്റ്സ്](#accessing-variables-in-templates)
* [Templates with `yield` and nested layouts](#templates-with-yield-and-nested-layouts)
* [Inline ടെംപ്ലേറ്റ്സ്](#inline-templates)
* [പേരുള്ള ടെംപ്ലേറ്റ്സ്](#named-templates)
* [Associating File Extensions](#associating-file-extensions)
* [നിങ്ങളുടെ സ്വന്തം ടെമ്പ്ലേറ്റ് എങ്ങിനെ ഉണ്ടാക്കാൻ സഹായിക്കുന്നു ](#adding-your-own-template-engine)
* [Using Custom Logic for Template Lookup](#using-custom-logic-for-template-lookup)
* [Filters](#filters)
* [Helpers](#helpers)
* [സെഷൻസ് ഉപയോഗിക്കുന്നു ](#using-sessions)
* [രഹസ്യമായി സെഷൻസ് സംരക്ഷിക്കുക ](#session-secret-security)
* [Session Config](#session-config)
* [സെഷൻ middlewate തിരഞ്ഞെടുക്കുക](#choosing-your-own-session-middleware)
* [ഹാൾട് ചെയ്യുക ](#halting)
* [Passing](#passing)
* [മറ്റൊരു റൂട്ട് ട്രിഗർ ചെയ്യുക ](#triggering-another-route)
* [Setting Body, Status Code and Headers](#setting-body-status-code-and-headers)
* [Streaming Responses](#streaming-responses)
* [Logging](#logging)
* [Mime Types](#mime-types)
* [ URLs Generating](#generating-urls)
* [Browser റീഡിറക്ട് ചെയ്യുക ](#browser-redirect)
* [Cache Control](#cache-control)
* [Sending Files](#sending-files)
* [Accessing the Request Object](#accessing-the-request-object)
* [അറ്റാച്മെന്റ്സ് ](#attachments)
* [ദിവസവും സമയവും ഡീൽ ചെയ്യക ](#dealing-with-date-and-time)
* [Template Files നോക്കുന്നു ](#looking-up-template-files)
* [Configuration](#configuration)
* [Configuring attack protection](#configuring-attack-protection)
* [Available Settings](#available-settings)
* [Environments](#environments)
* [ കൈകാര്യം ചെയ്യുക ](#error-handling)
* [കണ്ടെത്താൻ ആയില്ല ](#not-found)
* [തെറ്റ്](#error)
* [Rack Middleware](#rack-middleware)
* [ടെസ്റ്റ് ചെയ്യുക ](#testing)
* [Sinatra::Base - Middleware, Libraries, and Modular Apps](#sinatrabase---middleware-libraries-and-modular-apps)
* [Modular vs. Classic Style](#modular-vs-classic-style)
* [Serving a Modular Application](#serving-a-modular-application)
* [Using a Classic Style Application with a config.ru](#using-a-classic-style-application-with-a-configru)
* [When to use a config.ru?](#when-to-use-a-configru)
* [Using Sinatra as Middleware](#using-sinatra-as-middleware)
* [Dynamic Application Creation](#dynamic-application-creation)
* [Scopes and Binding](#scopes-and-binding)
* [Application/Class Scope](#applicationclass-scope)
* [Request/Instance Scope](#requestinstance-scope)
* [Delegation Scope](#delegation-scope)
* [Command Line](#command-line)
* [Multi-threading](#multi-threading)
* [ആവശ്യങ്ങൾ ](#requirement)
* [The Bleeding Edge](#the-bleeding-edge)
* [With Bundler](#with-bundler)
* [വേർഷൻ ചെയ്യുക ](#versioning)
* [Further Reading](#further-reading)
- [സിനാട്ര](#സിനാട്ര)
- [ഉള്ളടക്കം](#ഉള്ളടക്കം)
- [Routes](#routes)
- [കണ്ടിഷൻസ്](#കണ്ടിഷൻസ്)
- [Return Values](#return-values)
- [Custom Route Matchers](#custom-route-matchers)
- [Static Files](#static-files)
- [Views / Templates](#views--templates)
- [Literal Templates](#literal-templates)
- [Available Template Languages](#available-template-languages)
- [Haml Templates](#haml-templates)
- [Erb Templates](#erb-templates)
- [Builder Templates](#builder-templates)
- [Nokogiri Templates](#nokogiri-templates)
- [Liquid Templates](#liquid-templates)
- [Markdown Templates](#markdown-templates)
- [RDoc Templates](#rdoc-templates)
- [AsciiDoc Templates](#asciidoc-templates)
- [Radius Templates](#radius-templates)
- [Markaby Templates](#markaby-templates)
- [RABL Templates](#rabl-templates)
- [Slim Templates](#slim-templates)
- [Creole Templates](#creole-templates)
- [MediaWiki Templates](#mediawiki-templates)
- [CoffeeScript Templates](#coffeescript-templates)
- [Yajl Templates](#yajl-templates)
- [Accessing Variables in Templates](#accessing-variables-in-templates)
- [Templates with `yield` and nested layouts](#templates-with-yield-and-nested-layouts)
- [Inline Templates](#inline-templates)
- [Named Templates](#named-templates)
- [Associating File Extensions](#associating-file-extensions)
- [Adding Your Own Template Engine](#adding-your-own-template-engine)
- [Using Custom Logic for Template Lookup](#using-custom-logic-for-template-lookup)
- [Filters](#filters)
- [Helpers](#helpers)
- [Using Sessions](#using-sessions)
- [Session Secret Security](#session-secret-security)
- [Session Config](#session-config)
- [Choosing Your Own Session Middleware](#choosing-your-own-session-middleware)
- [Halting](#halting)
- [Passing](#passing)
- [Triggering Another Route](#triggering-another-route)
- [Setting Body, Status Code and Headers](#setting-body-status-code-and-headers)
- [Streaming Responses](#streaming-responses)
- [Logging](#logging)
- [Mime Types](#mime-types)
- [Generating URLs](#generating-urls)
- [Browser Redirect](#browser-redirect)
- [Cache Control](#cache-control)
- [Sending Files](#sending-files)
- [Accessing the Request Object](#accessing-the-request-object)
- [Attachments](#attachments)
- [Dealing with Date and Time](#dealing-with-date-and-time)
- [Looking Up Template Files](#looking-up-template-files)
- [Configuration](#configuration)
- [Configuring attack protection](#configuring-attack-protection)
- [Available Settings](#available-settings)
- [Environments](#environments)
- [Error Handling](#error-handling)
- [Not Found](#not-found)
- [Error](#error)
- [Rack Middleware](#rack-middleware)
- [Testing](#testing)
- [Sinatra::Base - Middleware, Libraries, and Modular Apps](#sinatrabase---middleware-libraries-and-modular-apps)
- [Modular vs. Classic Style](#modular-vs-classic-style)
- [Serving a Modular Application](#serving-a-modular-application)
- [Using a Classic Style Application with a config.ru](#using-a-classic-style-application-with-a-configru)
- [When to use a config.ru?](#when-to-use-a-configru)
- [Using Sinatra as Middleware](#using-sinatra-as-middleware)
- [Dynamic Application Creation](#dynamic-application-creation)
- [Scopes and Binding](#scopes-and-binding)
- [Application/Class Scope](#applicationclass-scope)
- [Request/Instance Scope](#requestinstance-scope)
- [Delegation Scope](#delegation-scope)
- [Command Line](#command-line)
- [Multi-threading](#multi-threading)
- [Requirement](#requirement)
- [The Bleeding Edge](#the-bleeding-edge)
- [With Bundler](#with-bundler)
- [Versioning](#versioning)
- [Further Reading](#further-reading)
## Routes
@ -964,27 +963,6 @@ var resource = {"foo":"bar","baz":"qux"};
present(resource);
```
#### WLang Templates
<table>
<tr>
<td>Dependency</td>
<td><a href="https://github.com/blambeau/wlang" title="WLang">WLang</a></td>
</tr>
<tr>
<td>File Extension</td>
<td><tt>.wlang</tt></td>
</tr>
<tr>
<td>Example</td>
<td><tt>wlang :index, :locals => { :key => 'value' }</tt></td>
</tr>
</table>
Since calling ruby methods is not idiomatic in WLang, you almost always
want to pass locals to it. Layouts written in WLang and `yield` are
supported, though.
### Accessing Variables in Templates
Templates are evaluated within the same context as route handlers. Instance
@ -1043,7 +1021,7 @@ end
```
Currently, the following rendering methods accept a block: `erb`, `haml`,
`liquid`, `slim `, `wlang`. Also the general `render` method accepts a block.
`liquid`, `slim `. Also the general `render` method accepts a block.
### Inline Templates

186
README.md
View File

@ -40,88 +40,87 @@ pick up if available.
## Table of Contents
* [Sinatra](#sinatra)
* [Table of Contents](#table-of-contents)
* [Routes](#routes)
* [Conditions](#conditions)
* [Return Values](#return-values)
* [Custom Route Matchers](#custom-route-matchers)
* [Static Files](#static-files)
* [Views / Templates](#views--templates)
* [Literal Templates](#literal-templates)
* [Available Template Languages](#available-template-languages)
* [Haml Templates](#haml-templates)
* [Erb Templates](#erb-templates)
* [Builder Templates](#builder-templates)
* [Nokogiri Templates](#nokogiri-templates)
* [Liquid Templates](#liquid-templates)
* [Markdown Templates](#markdown-templates)
* [RDoc Templates](#rdoc-templates)
* [AsciiDoc Templates](#asciidoc-templates)
* [Radius Templates](#radius-templates)
* [Markaby Templates](#markaby-templates)
* [RABL Templates](#rabl-templates)
* [Slim Templates](#slim-templates)
* [Creole Templates](#creole-templates)
* [MediaWiki Templates](#mediawiki-templates)
* [CoffeeScript Templates](#coffeescript-templates)
* [Yajl Templates](#yajl-templates)
* [WLang Templates](#wlang-templates)
* [Accessing Variables in Templates](#accessing-variables-in-templates)
* [Templates with `yield` and nested layouts](#templates-with-yield-and-nested-layouts)
* [Inline Templates](#inline-templates)
* [Named Templates](#named-templates)
* [Associating File Extensions](#associating-file-extensions)
* [Adding Your Own Template Engine](#adding-your-own-template-engine)
* [Using Custom Logic for Template Lookup](#using-custom-logic-for-template-lookup)
* [Filters](#filters)
* [Helpers](#helpers)
* [Using Sessions](#using-sessions)
* [Session Secret Security](#session-secret-security)
* [Session Config](#session-config)
* [Choosing Your Own Session Middleware](#choosing-your-own-session-middleware)
* [Halting](#halting)
* [Passing](#passing)
* [Triggering Another Route](#triggering-another-route)
* [Setting Body, Status Code and Headers](#setting-body-status-code-and-headers)
* [Streaming Responses](#streaming-responses)
* [Logging](#logging)
* [Mime Types](#mime-types)
* [Generating URLs](#generating-urls)
* [Browser Redirect](#browser-redirect)
* [Cache Control](#cache-control)
* [Sending Files](#sending-files)
* [Accessing the Request Object](#accessing-the-request-object)
* [Attachments](#attachments)
* [Dealing with Date and Time](#dealing-with-date-and-time)
* [Looking Up Template Files](#looking-up-template-files)
* [Configuration](#configuration)
* [Configuring attack protection](#configuring-attack-protection)
* [Available Settings](#available-settings)
* [Environments](#environments)
* [Error Handling](#error-handling)
* [Not Found](#not-found)
* [Error](#error)
* [Rack Middleware](#rack-middleware)
* [Testing](#testing)
* [Sinatra::Base - Middleware, Libraries, and Modular Apps](#sinatrabase---middleware-libraries-and-modular-apps)
* [Modular vs. Classic Style](#modular-vs-classic-style)
* [Serving a Modular Application](#serving-a-modular-application)
* [Using a Classic Style Application with a config.ru](#using-a-classic-style-application-with-a-configru)
* [When to use a config.ru?](#when-to-use-a-configru)
* [Using Sinatra as Middleware](#using-sinatra-as-middleware)
* [Dynamic Application Creation](#dynamic-application-creation)
* [Scopes and Binding](#scopes-and-binding)
* [Application/Class Scope](#applicationclass-scope)
* [Request/Instance Scope](#requestinstance-scope)
* [Delegation Scope](#delegation-scope)
* [Command Line](#command-line)
* [Multi-threading](#multi-threading)
* [Requirement](#requirement)
* [The Bleeding Edge](#the-bleeding-edge)
* [With Bundler](#with-bundler)
* [Versioning](#versioning)
* [Further Reading](#further-reading)
- [Sinatra](#sinatra)
- [Table of Contents](#table-of-contents)
- [Routes](#routes)
- [Conditions](#conditions)
- [Return Values](#return-values)
- [Custom Route Matchers](#custom-route-matchers)
- [Static Files](#static-files)
- [Views / Templates](#views--templates)
- [Literal Templates](#literal-templates)
- [Available Template Languages](#available-template-languages)
- [Haml Templates](#haml-templates)
- [Erb Templates](#erb-templates)
- [Builder Templates](#builder-templates)
- [Nokogiri Templates](#nokogiri-templates)
- [Liquid Templates](#liquid-templates)
- [Markdown Templates](#markdown-templates)
- [RDoc Templates](#rdoc-templates)
- [AsciiDoc Templates](#asciidoc-templates)
- [Radius Templates](#radius-templates)
- [Markaby Templates](#markaby-templates)
- [RABL Templates](#rabl-templates)
- [Slim Templates](#slim-templates)
- [Creole Templates](#creole-templates)
- [MediaWiki Templates](#mediawiki-templates)
- [CoffeeScript Templates](#coffeescript-templates)
- [Yajl Templates](#yajl-templates)
- [Accessing Variables in Templates](#accessing-variables-in-templates)
- [Templates with `yield` and nested layouts](#templates-with-yield-and-nested-layouts)
- [Inline Templates](#inline-templates)
- [Named Templates](#named-templates)
- [Associating File Extensions](#associating-file-extensions)
- [Adding Your Own Template Engine](#adding-your-own-template-engine)
- [Using Custom Logic for Template Lookup](#using-custom-logic-for-template-lookup)
- [Filters](#filters)
- [Helpers](#helpers)
- [Using Sessions](#using-sessions)
- [Session Secret Security](#session-secret-security)
- [Session Config](#session-config)
- [Choosing Your Own Session Middleware](#choosing-your-own-session-middleware)
- [Halting](#halting)
- [Passing](#passing)
- [Triggering Another Route](#triggering-another-route)
- [Setting Body, Status Code, and Headers](#setting-body-status-code-and-headers)
- [Streaming Responses](#streaming-responses)
- [Logging](#logging)
- [Mime Types](#mime-types)
- [Generating URLs](#generating-urls)
- [Browser Redirect](#browser-redirect)
- [Cache Control](#cache-control)
- [Sending Files](#sending-files)
- [Accessing the Request Object](#accessing-the-request-object)
- [Attachments](#attachments)
- [Dealing with Date and Time](#dealing-with-date-and-time)
- [Looking Up Template Files](#looking-up-template-files)
- [Configuration](#configuration)
- [Configuring attack protection](#configuring-attack-protection)
- [Available Settings](#available-settings)
- [Environments](#environments)
- [Error Handling](#error-handling)
- [Not Found](#not-found)
- [Error](#error)
- [Rack Middleware](#rack-middleware)
- [Testing](#testing)
- [Sinatra::Base - Middleware, Libraries, and Modular Apps](#sinatrabase---middleware-libraries-and-modular-apps)
- [Modular vs. Classic Style](#modular-vs-classic-style)
- [Serving a Modular Application](#serving-a-modular-application)
- [Using a Classic Style Application with a config.ru](#using-a-classic-style-application-with-a-configru)
- [When to use a config.ru?](#when-to-use-a-configru)
- [Using Sinatra as Middleware](#using-sinatra-as-middleware)
- [Dynamic Application Creation](#dynamic-application-creation)
- [Scopes and Binding](#scopes-and-binding)
- [Application/Class Scope](#applicationclass-scope)
- [Request/Instance Scope](#requestinstance-scope)
- [Delegation Scope](#delegation-scope)
- [Command Line](#command-line)
- [Multi-threading](#multi-threading)
- [Requirement](#requirement)
- [The Bleeding Edge](#the-bleeding-edge)
- [With Bundler](#with-bundler)
- [Versioning](#versioning)
- [Further Reading](#further-reading)
## Routes
@ -991,27 +990,6 @@ var resource = {"foo":"bar","baz":"qux"};
present(resource);
```
#### WLang Templates
<table>
<tr>
<td>Dependency</td>
<td><a href="https://github.com/blambeau/wlang" title="WLang">WLang</a></td>
</tr>
<tr>
<td>File Extension</td>
<td><tt>.wlang</tt></td>
</tr>
<tr>
<td>Example</td>
<td><tt>wlang :index, :locals => { :key => 'value' }</tt></td>
</tr>
</table>
Since calling ruby methods is not idiomatic in WLang, you almost always
want to pass locals to it. Layouts written in WLang and `yield` are
supported, though.
### Accessing Variables in Templates
Templates are evaluated within the same context as route handlers. Instance
@ -1070,7 +1048,7 @@ end
```
Currently, the following rendering methods accept a block: `erb`, `haml`,
`liquid`, `slim `, `wlang`. Also, the general `render` method accepts a block.
`liquid`, `slim `. Also, the general `render` method accepts a block.
### Inline Templates

View File

@ -36,90 +36,88 @@ którego Sinatra użyje jeżeli będzie dostępny.
## Spis treści
* [Sinatra](#sinatra)
* [Spis treści](#table-of-contents)
* [Scieżki](#routes)
* [Warunki](#conditions)
* [Zwracane wartości](#return-values)
* [Niestandardowe dopasowanie scieżki](#custom-route-matchers)
* [Pliki statyczne](#static-files)
* [Widoki / Szablony](#views--templates)
* [Szablony](#literal-templates)
* [Dostępne języki szablonu](#available-template-languages)
* [Szablony Haml](#haml-templates)
* [Szblony Erb](#erb-templates)
* [Szblony Builder](#builder-templates)
* [Szablony Nokogiri](#nokogiri-templates)
* [Szablony Less](#less-templates)
* [Szablony Liquid](#liquid-templates)
* [Szablony Markdown](#markdown-templates)
* [Szablony RDoc](#rdoc-templates)
* [Szablony AsciiDoc](#asciidoc-templates)
* [Szablony Radius](#radius-templates)
* [Szablony Markaby](#markaby-templates)
* [Szablony RABL](#rabl-templates)
* [Szablony Slim](#slim-templates)
* [Szablony Creole](#creole-templates)
* [Szablony MediaWiki](#mediawiki-templates)
* [Szablony CoffeeScript](#coffeescript-templates)
* [Szablony Stylus](#stylus-templates)
* [Szablony Yajl](#yajl-templates)
* [Szablony WLang](#wlang-templates)
* [Dostępność zmiennych w szblonach](#accessing-variables-in-templates)
* [Szablony z `yield` i szablony zagnieżdżone](#templates-with-yield-and-nested-layouts)
* [Szablony liniowe](#inline-templates)
* [Szablony nazwane](#named-templates)
* [Kojarzenie rozszerzen plików](#associating-file-extensions)
* [Dodawnie własngo silnika szablonu](#adding-your-own-template-engine)
* [Korzystanie z niestandardowej logiki do wyszukiwania szablonu](#using-custom-logic-for-template-lookup)
* [Filtry](#filters)
* [Pomocnicy](#helpers)
* [Używanie sesji](#using-sessions)
* [Sekretne zabezpieczenia sesji](#session-secret-security)
* [Konfiguracja sesji](#session-config)
* [Wybór własnego oprogramowania Middleware](#choosing-your-own-session-middleware)
* [Halting](#halting)
* [Passing](#passing)
* [Triggering Another Route](#triggering-another-route)
* [Setting Body, Status Code and Headers](#setting-body-status-code-and-headers)
* [Streaming Responses](#streaming-responses)
* [Logging](#logging)
* [Mime Types](#mime-types)
* [Generating URLs](#generating-urls)
* [Browser Redirect](#browser-redirect)
* [Cache Control](#cache-control)
* [Sending Files](#sending-files)
* [Accessing the Request Object](#accessing-the-request-object)
* [Attachments](#attachments)
* [Dealing with Date and Time](#dealing-with-date-and-time)
* [Looking Up Template Files](#looking-up-template-files)
* [Configuration](#configuration)
* [Configuring attack protection](#configuring-attack-protection)
* [Available Settings](#available-settings)
* [Environments](#environments)
* [Error Handling](#error-handling)
* [Not Found](#not-found)
* [Error](#error)
* [Rack Middleware](#rack-middleware)
* [Testing](#testing)
* [Sinatra::Base - Middleware, Libraries, and Modular Apps](#sinatrabase---middleware-libraries-and-modular-apps)
* [Modular vs. Classic Style](#modular-vs-classic-style)
* [Serving a Modular Application](#serving-a-modular-application)
* [Using a Classic Style Application with a config.ru](#using-a-classic-style-application-with-a-configru)
* [When to use a config.ru?](#when-to-use-a-configru)
* [Using Sinatra as Middleware](#using-sinatra-as-middleware)
* [Dynamic Application Creation](#dynamic-application-creation)
* [Scopes and Binding](#scopes-and-binding)
* [Application/Class Scope](#applicationclass-scope)
* [Request/Instance Scope](#requestinstance-scope)
* [Delegation Scope](#delegation-scope)
* [Command Line](#command-line)
* [Multi-threading](#multi-threading)
* [Requirement](#requirement)
* [The Bleeding Edge](#the-bleeding-edge)
* [With Bundler](#with-bundler)
* [Versioning](#versioning)
* [Further Reading](#further-reading)
- [Sinatra](#sinatra)
- [Spis treści](#spis-treści)
- [Scieżki](#scieżki)
- [Conditions](#conditions)
- [Return Values](#return-values)
- [Custom Route Matchers](#custom-route-matchers)
- [Static Files](#static-files)
- [Views / Templates](#views--templates)
- [Literal Templates](#literal-templates)
- [Available Template Languages](#available-template-languages)
- [Haml Templates](#haml-templates)
- [Erb Templates](#erb-templates)
- [Builder Templates](#builder-templates)
- [Nokogiri Templates](#nokogiri-templates)
- [Liquid Templates](#liquid-templates)
- [Markdown Templates](#markdown-templates)
- [RDoc Templates](#rdoc-templates)
- [AsciiDoc Templates](#asciidoc-templates)
- [Radius Templates](#radius-templates)
- [Markaby Templates](#markaby-templates)
- [RABL Templates](#rabl-templates)
- [Slim Templates](#slim-templates)
- [Creole Templates](#creole-templates)
- [MediaWiki Templates](#mediawiki-templates)
- [CoffeeScript Templates](#coffeescript-templates)
- [Stylus Templates](#stylus-templates)
- [Yajl Templates](#yajl-templates)
- [Accessing Variables in Templates](#accessing-variables-in-templates)
- [Templates with `yield` and nested layouts](#templates-with-yield-and-nested-layouts)
- [Inline Templates](#inline-templates)
- [Named Templates](#named-templates)
- [Associating File Extensions](#associating-file-extensions)
- [Adding Your Own Template Engine](#adding-your-own-template-engine)
- [Using Custom Logic for Template Lookup](#using-custom-logic-for-template-lookup)
- [Filters](#filters)
- [Helpers](#helpers)
- [Using Sessions](#using-sessions)
- [Session Secret Security](#session-secret-security)
- [Session Config](#session-config)
- [Choosing Your Own Session Middleware](#choosing-your-own-session-middleware)
- [Halting](#halting)
- [Passing](#passing)
- [Triggering Another Route](#triggering-another-route)
- [Setting Body, Status Code, and Headers](#setting-body-status-code-and-headers)
- [Streaming Responses](#streaming-responses)
- [Logging](#logging)
- [Mime Types](#mime-types)
- [Generating URLs](#generating-urls)
- [Browser Redirect](#browser-redirect)
- [Cache Control](#cache-control)
- [Sending Files](#sending-files)
- [Accessing the Request Object](#accessing-the-request-object)
- [Attachments](#attachments)
- [Dealing with Date and Time](#dealing-with-date-and-time)
- [Looking Up Template Files](#looking-up-template-files)
- [Configuration](#configuration)
- [Configuring attack protection](#configuring-attack-protection)
- [Available Settings](#available-settings)
- [Environments](#environments)
- [Error Handling](#error-handling)
- [Not Found](#not-found)
- [Error](#error)
- [Rack Middleware](#rack-middleware)
- [Testing](#testing)
- [Sinatra::Base - Middleware, Libraries, and Modular Apps](#sinatrabase---middleware-libraries-and-modular-apps)
- [Modular vs. Classic Style](#modular-vs-classic-style)
- [Serving a Modular Application](#serving-a-modular-application)
- [Using a Classic Style Application with a config.ru](#using-a-classic-style-application-with-a-configru)
- [When to use a config.ru?](#when-to-use-a-configru)
- [Using Sinatra as Middleware](#using-sinatra-as-middleware)
- [Dynamic Application Creation](#dynamic-application-creation)
- [Scopes and Binding](#scopes-and-binding)
- [Application/Class Scope](#applicationclass-scope)
- [Request/Instance Scope](#requestinstance-scope)
- [Delegation Scope](#delegation-scope)
- [Command Line](#command-line)
- [Wielowątkowość](#wielowątkowość)
- [Wymagania](#wymagania)
- [The Bleeding Edge](#the-bleeding-edge)
- [With Bundler](#with-bundler)
- [Versioning](#versioning)
- [Further Reading](#further-reading)
## Scieżki
@ -1027,27 +1025,6 @@ var resource = {"foo":"bar","baz":"qux"};
present(resource);
```
#### WLang Templates
<table>
<tr>
<td>Dependency</td>
<td><a href="https://github.com/blambeau/wlang" title="WLang">WLang</a></td>
</tr>
<tr>
<td>File Extension</td>
<td><tt>.wlang</tt></td>
</tr>
<tr>
<td>Example</td>
<td><tt>wlang :index, :locals => { :key => 'value' }</tt></td>
</tr>
</table>
Since calling ruby methods is not idiomatic in WLang, you almost always
want to pass locals to it. Layouts written in WLang and `yield` are
supported, though.
### Accessing Variables in Templates
Templates are evaluated within the same context as route handlers. Instance
@ -1106,7 +1083,7 @@ end
```
Currently, the following rendering methods accept a block: `erb`, `haml`,
`liquid`, `slim `, `wlang`. Also, the general `render` method accepts a block.
`liquid`, `slim `. Also, the general `render` method accepts a block.
### Inline Templates

View File

@ -48,88 +48,99 @@ disponível, o Sinatra irá utilizá-la.
## Conteúdo
* [Sinatra](#sinatra)
* [Conteúdo](#conteúdo)
* [Rotas](#rotas)
* [Condições](#condições)
* [Valores Retornados](#valores-retornados)
* [Validadores de rota personalizados](#validadores-de-rota-personalizados)
* [Arquivos estáticos](#arquivos-estáticos)
* [Views / Templates](#views--templates)
* [Literal Templates](#literal-templates)
* [Linguagens de template disponíveis](#linguagens-de-template-disponíveis)
* [Haml Templates](#haml-templates)
* [Erb Templates](#erb-templates)
* [Builder Templates](#builder-templates)
* [Nokogiri Templates](#nokogiri-templates)
* [Liquid Templates](#liquid-templates)
* [Markdown Templates](#markdown-templates)
* [RDoc Templates](#rdoc-templates)
* [AsciiDoc Templates](#asciidoc-templates)
* [Radius Templates](#radius-templates)
* [Markaby Templates](#markaby-templates)
* [RABL Templates](#rabl-templates)
* [Slim Templates](#slim-templates)
* [Creole Templates](#creole-templates)
* [MediaWiki Templates](#mediawiki-templates)
* [CoffeeScript Templates](#coffeescript-templates)
* [Yajl Templates](#yajl-templates)
* [WLang Templates](#wlang-templates)
* [Acessando Variáveis nos Templates](#acessando-variáveis-nos-templates)
* [Templates com `yield` e layouts aninhados](#templates-com-yield-e-layouts-aninhados)
* [Templates Inline](#templates-inline)
* [Templates Nomeados](#templates-nomeados)
* [Associando extensões de arquivos](#associando-extensões-de-arquivos)
* [Adicionando seu Próprio Engine de Template](#adicionando-seu-próprio-engine-de-template)
* [Customizando lógica para encontrar templates](#customizando-lógica-para-encontrar-templates)
* [Filtros](#filtros)
* [Helpers](#helpers)
* [Utilizando Sessões](#utilizando-sessões)
* [Segurança Secreta da Sessão](#segurança-secreta-da-sessão)
* [Configuração da Sessão](#configuração-da-sessão)
* [Escolhande Seu Próprio Middleware de Sessão](#escolhendo-middleware-de-sessão)
* [Halting](#halting)
* [Passing](#passing)
* [Desencadeando Outra Rota](#desencadeando-outra-rota)
* [Definindo Corpo, Código de Status e Cabeçalhos](#definindo-corpo-codigo-de-status-cabeçalhos)
* [Transmitindo Respostas](#transmitindo-respostas)
* [Usando Logs](#usando-logs)
* [Tipos Mime](#tipos-mime)
* [Gerando URLS](#gerando-urls)
* [Redirecionamento do Navegador](#redirecionamento-do-navagador)
* [Controle de Cache](#controle-de-cache)
* [Enviando Arquivos](#enviando-arquivos)
* [Acessando o Objeto de Requisição](#acessando-o-objeto-de-requisição)
* [Anexos](#anexos)
* [Trabalhando com Data e Hora](#trabalhando-com-data-e-hora)
* [Procurando Arquivos de Modelo](#procurando-arquivos-de-modelo)
* [Configuração](#configuração)
* [Configurando proteção a ataques](#configurando-proteção-a-ataques)
* [Configurações Disponíveis](#configurações-disponíveis)
* [Ambientes](#ambientes)
* [Tratamento de Erros](#tratamento-de-erros)
* [Não Encontrado](#não-encontrado)
* [Erro](#erro)
* [Rack Middleware](#rack-middleware)
* [Testando](#testando)
* [Sinatra::Base - Middleware, Bibliotecas e Aplicações Modulares](#sinatrabase-middleware-bibliotecas-e-aplicações-modulares)
* [Modular vs. Estilo Clássico](#modular-vs-estilo-clássico)
* [Servindo uma Aplicação Modular](#servindo-uma-aplicação-modular)
* [Usando uma Aplicação de Estilo Clássico com um config.ru](#usando-uma-aplicação-de-estilo-clássico-com-um-configru)
* [Quando usar um config.ru?](#quando-usar-um-configru)
* [Usando Sinatra como Middleware](#usando-sinatra-como-middleware)
* [Criação de Aplicações Dinâmicas](#criação-de-aplicações-dinamicas)
* [Escopos e Ligação](#escopos-e-ligação)
* [Escopo de Aplicação/Classe](#escopo-de-aplicação-classe)
* [Escopo de Instância/Requisição](#escopo-de-instância-requisição)
* [Escopo de Delegação](#escopo-de-delegação)
* [Linha de comando](#linha-de-comando)
* [Multi-threading](#multi-threading)
* [Requerimentos](#requerimentos)
* [A última versão](#a-última-versão)
* [Com Bundler](#com-bundler)
* [Versionando](#versionando)
* [Mais](#mais)
- [Sinatra](#sinatra)
- [Conteúdo](#conteúdo)
- [Rotas](#rotas)
- [Condições](#condições)
- [Retorno de valores](#retorno-de-valores)
- [Validadores de Rota Personalizados](#validadores-de-rota-personalizados)
- [Arquivos estáticos](#arquivos-estáticos)
- [Views / Templates](#views--templates)
- [Literal Templates](#literal-templates)
- [Linguagens de template disponíveis](#linguagens-de-template-disponíveis)
- [Haml Templates](#haml-templates)
- [Erb Templates](#erb-templates)
- [Builder Templates](#builder-templates)
- [Nokogiri Templates](#nokogiri-templates)
- [Liquid Templates](#liquid-templates)
- [Markdown Templates](#markdown-templates)
- [RDoc Templates](#rdoc-templates)
- [AsciiDoc Templates](#asciidoc-templates)
- [Radius Templates](#radius-templates)
- [Markaby Templates](#markaby-templates)
- [RABL Templates](#rabl-templates)
- [Slim Templates](#slim-templates)
- [Creole Templates](#creole-templates)
- [MediaWiki Templates](#mediawiki-templates)
- [CoffeeScript Templates](#coffeescript-templates)
- [Yajl Templates](#yajl-templates)
- [Acessando Variáveis nos Templates](#acessando-variáveis-nos-templates)
- [Templates com `yield` e layouts aninhados](#templates-com-yield-e-layouts-aninhados)
- [Templates Inline](#templates-inline)
- [Templates Nomeados](#templates-nomeados)
- [Associando Extensões de Arquivos](#associando-extensões-de-arquivos)
- [Adicionando seu Próprio Engine de Template](#adicionando-seu-próprio-engine-de-template)
- [Customizando Lógica para Encontrar Templates](#customizando-lógica-para-encontrar-templates)
- [Filtros](#filtros)
- [Helpers](#helpers)
- [Utilizando Sessões](#utilizando-sessões)
- [Segredo Seguro da Sessão](#segredo-seguro-da-sessão)
- [Configuração de Sessão](#configuração-de-sessão)
- [Escolhendo Seu Próprio Middleware de Sessão](#escolhendo-seu-próprio-middleware-de-sessão)
- [Parando](#parando)
- [Passing](#passing)
- [Desencadeando Outra Rota](#desencadeando-outra-rota)
- [Definindo Corpo, Código de Status e Cabeçalhos](#definindo-corpo-código-de-status-e-cabeçalhos)
- [Transmitindo Respostas](#transmitindo-respostas)
- [Usando Logs](#usando-logs)
- [Tipos Mime](#tipos-mime)
- [Gerando URLs](#gerando-urls)
- [Redirecionamento do Browser](#redirecionamento-do-browser)
- [Controle de Cache](#controle-de-cache)
- [Enviando Arquivos](#enviando-arquivos)
- [Acessando o Objeto da Requisição](#acessando-o-objeto-da-requisição)
- [Anexos](#anexos)
- [Trabalhando com Data e Hora](#trabalhando-com-data-e-hora)
- [Pesquisando por Arquivos de Template](#pesquisando-por-arquivos-de-template)
- [Configuração](#configuração)
- [Transmitindo Respostas](#transmitindo-respostas-1)
- [Usando Logs](#usando-logs-1)
- [Tipos Mime](#tipos-mime-1)
- [Gerando URLs](#gerando-urls-1)
- [Redirecionamento do Browser](#redirecionamento-do-browser-1)
- [Controle de Cache](#controle-de-cache-1)
- [Enviando Arquivos](#enviando-arquivos-1)
- [Acessando o Objeto da Requisção](#acessando-o-objeto-da-requisção)
- [Anexos](#anexos-1)
- [Trabalhando com Data e Hora](#trabalhando-com-data-e-hora-1)
- [Pesquisando por Arquivos de Template](#pesquisando-por-arquivos-de-template-1)
- [Configuração](#configuração-1)
- [Configurando proteção a ataques](#configurando-proteção-a-ataques)
- [Configurações Disponíveis](#configurações-disponíveis)
- [Ambientes](#ambientes)
- [Tratamento de Erros](#tratamento-de-erros)
- [Não Encontrado](#não-encontrado)
- [Erro](#erro)
- [Rack Middleware](#rack-middleware)
- [Testando](#testando)
- [Sinatra::Base - Middleware, Bibliotecas e aplicativos modulares](#sinatrabase---middleware-bibliotecas-e-aplicativos-modulares)
- [Estilo Clássico vs. Modular](#estilo-clássico-vs-modular)
- [Servindo uma Aplicação Modular:](#servindo-uma-aplicação-modular)
- [Usando uma Aplicação de Estilo Clássico com um config.ru:](#usando-uma-aplicação-de-estilo-clássico-com-um-configru)
- [Quando usar um config.ru?](#quando-usar-um-configru)
- [Usando Sinatra como Middleware](#usando-sinatra-como-middleware)
- [Criação de Aplicações Dinâmicas](#criação-de-aplicações-dinâmicas)
- [Escopos e Ligação](#escopos-e-ligação)
- [Escopo de Aplicação/Classe](#escopo-de-aplicaçãoclasse)
- [Escopo de Instância/Requisição](#escopo-de-instânciarequisição)
- [Escopo de Delegação](#escopo-de-delegação)
- [Linha de Comando](#linha-de-comando)
- [Multi-threading](#multi-threading)
- [Requerimentos](#requerimentos)
- [A última versão](#a-última-versão)
- [Com Bundler](#com-bundler)
- [Versionando](#versionando)
- [Mais](#mais)
## Rotas
@ -1034,29 +1045,6 @@ var resource = {"foo":"bar","baz":"qux"};
present(resource);
```
#### WLang Templates
<table>
<tr>
<td>Dependência</td>
<td>
<a href="https://github.com/blambeau/wlang/" title="WLang">WLang</a>
</td>
</tr>
<tr>
<td>Extensão do Arquivo</td>
<td><tt>.wlang</tt></td>
</tr>
<tr>
<td>Exemplo</td>
<td><tt>wlang :index, :locals => { :key => 'value' }</tt></td>
</tr>
</table>
Já que você não pode chamar o Ruby (exceto pelo método
`yield`) pelo template WLang,
você quase sempre precisará passar o `locals` para ele.
## Acessando Variáveis nos Templates
Templates são avaliados dentro do mesmo contexto como manipuladores de
@ -1116,7 +1104,7 @@ end
```
Atualmente os métodos listados aceitam blocos: `erb`, `haml`,
`liquid`, `slim `, `wlang`. E o método geral `render` também aceita blocos.
`liquid`, `slim `. E o método geral `render` também aceita blocos.
### Templates Inline

View File

@ -66,7 +66,6 @@ ruby myapp.rb
- [MediaWiki шаблоны](#mediawiki-шаблоны)
- [CoffeeScript шаблоны](#coffeescript-шаблоны)
- [Yajl шаблоны](#yajl-шаблоны)
- [WLang шаблоны](#wlang-шаблоны)
- [Доступ к переменным в шаблонах](#доступ-к-переменным-в-шаблонах)
- [Шаблоны с `yield` и вложенные лэйауты](#шаблоны-с-yield-и-вложенные-лэйауты)
- [Включённые шаблоны](#включённые-шаблоны)
@ -996,27 +995,6 @@ var resource = {"foo":"bar","baz":"qux"};
present(resource);
```
#### WLang шаблоны
<table>
<tr>
<td>Зависимости</td>
<td><a href="https://github.com/blambeau/wlang" title="WLang">WLang</a></td>
</tr>
<tr>
<td>Расширения файлов</td>
<td><tt>.wlang</tt></td>
</tr>
<tr>
<td>Пример</td>
<td><tt>wlang :index, :locals => { :key => 'value' }</tt></td>
</tr>
</table>
Так как в WLang шаблонах невозможно вызывать методы из Ruby напрямую (за
исключением `yield`), то вы почти всегда будете передавать в шаблон локальные
переменные. Лэйауты также могут быть описаны при помощи WLang.
### Доступ к переменным в шаблонах
Шаблоны интерпретируются в том же контексте, что и обработчики маршрутов.
@ -1075,7 +1053,7 @@ end
```
В настоящее время следующие методы шаблонизаторов
принимают блок: `erb`, `haml`, `liquid`, `slim `, `wlang`. Кроме того,
принимают блок: `erb`, `haml`, `liquid`, `slim `. Кроме того,
общий метод построения шаблонов `render` также принимает блок.
### Включённые шаблоны

View File

@ -33,87 +33,93 @@ ruby myapp.rb
## 目录
* [Sinatra](#sinatra)
* [目录](#目录)
* [路由](#路由)
* [条件](#条件)
* [返回值](#返回值)
* [自定义路由匹配器](#自定义路由匹配器)
* [静态文件](#静态文件)
* [视图 / 模板](#视图--模板)
* [字面量模板](#字面量模板)
* [可选的模板语言](#可选的模板语言)
* [Haml 模板](#haml-模板)
* [Erb 模板](#erb-模板)
* [Builder 模板](#builder-模板)
* [Nokogiri 模板](#nokogiri-模板)
* [Liquid 模板](#liquid-模板)
* [Markdown 模板](#markdown-模板)
* [RDoc 模板](#rdoc-模板)
* [AsciiDoc 模板](#asciidoc-模板)
* [Radius 模板](#radius-模板)
* [Markaby 模板](#markaby-模板)
* [RABL 模板](#rabl-模板)
* [Slim 模板](#slim-模板)
* [Creole 模板](#creole-模板)
* [MediaWiki 模板](#mediawiki-模板)
* [CoffeeScript 模板](#coffeescript-模板)
* [Yajl 模板](#yajl-模板)
* [WLang 模板](#wlang-模板)
* [在模板中访问变量](#在模板中访问变量)
* [带 `yield` 的模板和嵌套布局](#带-yield-的模板和嵌套布局)
* [内联模板](#内联模板)
* [具名模板](#具名模板)
* [关联文件扩展名](#关联文件扩展名)
* [添加自定义模板引擎](#添加自定义模板引擎)
* [自定义模板查找逻辑](#自定义模板查找逻辑)
* [过滤器](#过滤器)
* [辅助方法](#辅助方法)
* [使用会话](#使用会话)
* [中断请求](#中断请求)
* [传递请求](#传递请求)
* [触发另一个路由](#触发另一个路由)
* [设置响应主体、状态码和响应首部](#设置响应主体状态码和响应首部)
* [响应的流式传输](#响应的流式传输)
* [日志](#日志)
* [媒体类型](#媒体类型)
* [生成 URL](#生成-url)
* [浏览器重定向](#浏览器重定向)
* [缓存控制](#缓存控制)
* [发送文件](#发送文件)
* [访问请求对象](#访问请求对象)
* [附件](#附件)
* [处理日期和时间](#处理日期和时间)
* [查找模板文件](#查找模板文件)
* [配置](#配置)
* [配置攻击防护](#配置攻击防护)
* [可选的设置](#可选的设置)
* [环境](#环境)
* [错误处理](#错误处理)
* [未找到](#未找到)
* [错误](#错误)
* [Rack 中间件](#rack-中间件)
* [测试](#测试)
* [Sinatra::Base - 中间件、库和模块化应用](#sinatrabase---中间件库和模块化应用)
* [模块化风格 vs. 经典风格](#模块化风格-vs-经典风格)
* [运行一个模块化应用](#运行一个模块化应用)
* [使用 config.ru 运行经典风格的应用](#使用-configru-运行经典风格的应用)
* [何时使用 config.ru](#何时使用-configru)
* [把 Sinatra 当作中间件使用](#把-sinatra-当作中间件使用)
* [创建动态应用](#创建动态应用)
* [作用域和绑定](#作用域和绑定)
* [应用/类作用域](#应用类作用域)
* [请求/实例作用域](#请求实例作用域)
* [代理作用域](#代理作用域)
* [命令行](#命令行)
* [多线程](#多线程)
* [必要条件](#必要条件)
* [紧跟前沿](#紧跟前沿)
* [通过 Bundler 使用 Sinatra](#通过-bundler-使用-sinatra)
* [使用自己本地的 Sinatra](#使用自己本地的-sinatra)
* [全局安装](#全局安装)
* [版本](#版本)
* [更多资料](#更多资料)
- [Sinatra](#sinatra)
- [目录](#目录)
- [路由](#路由)
- [条件](#条件)
- [返回值](#返回值)
- [自定义路由匹配器](#自定义路由匹配器)
- [静态文件](#静态文件)
- [视图 / 模板](#视图--模板)
- [字面量模板](#字面量模板)
- [可选的模板语言](#可选的模板语言)
- [Haml 模板](#haml-模板)
- [Erb 模板](#erb-模板)
- [Builder 模板](#builder-模板)
- [Nokogiri 模板](#nokogiri-模板)
- [Liquid 模板](#liquid-模板)
- [Markdown 模板](#markdown-模板)
- [RDoc 模板](#rdoc-模板)
- [AsciiDoc 模板](#asciidoc-模板)
- [Radius 模板](#radius-模板)
- [Markaby 模板](#markaby-模板)
- [RABL 模板](#rabl-模板)
- [Slim 模板](#slim-模板)
- [Creole 模板](#creole-模板)
- [MediaWiki 模板](#mediawiki-模板)
- [CoffeeScript 模板](#coffeescript-模板)
- [Yajl 模板](#yajl-模板)
- [在模板中访问变量](#在模板中访问变量)
- [带 `yield` 的模板和嵌套布局](#带-yield-的模板和嵌套布局)
- [内联模板](#内联模板)
- [具名模板](#具名模板)
- [关联文件扩展名](#关联文件扩展名)
- [添加自定义模板引擎](#添加自定义模板引擎)
- [自定义模板查找逻辑](#自定义模板查找逻辑)
- [过滤器](#过滤器)
- [辅助方法](#辅助方法)
- [使用会话](#使用会话)
- [会话加密](#会话加密)
- [生成密钥](#生成密钥)
- [生成密钥(小贴士)](#生成密钥小贴士)
- [从环境变量使用密钥](#从环境变量使用密钥)
- [应用的密钥配置](#应用的密钥配置)
- [会话配置](#会话配置)
- [选择你自己的会话中间件](#选择你自己的会话中间件)
- [中断请求](#中断请求)
- [传递请求](#传递请求)
- [触发另一个路由](#触发另一个路由)
- [设置响应主体、状态码和响应首部](#设置响应主体状态码和响应首部)
- [响应的流式传输](#响应的流式传输)
- [日志](#日志)
- [媒体类型](#媒体类型)
- [生成 URL](#生成-url)
- [浏览器重定向](#浏览器重定向)
- [缓存控制](#缓存控制)
- [发送文件](#发送文件)
- [访问请求对象](#访问请求对象)
- [附件](#附件)
- [处理日期和时间](#处理日期和时间)
- [查找模板文件](#查找模板文件)
- [配置](#配置)
- [配置攻击防护](#配置攻击防护)
- [可选的设置](#可选的设置)
- [环境](#环境)
- [错误处理](#错误处理)
- [未找到](#未找到)
- [错误](#错误)
- [Rack 中间件](#rack-中间件)
- [测试](#测试)
- [Sinatra::Base - 中间件、库和模块化应用](#sinatrabase---中间件库和模块化应用)
- [模块化风格 vs. 经典风格](#模块化风格-vs-经典风格)
- [运行一个模块化应用](#运行一个模块化应用)
- [使用 config.ru 运行经典风格的应用](#使用-configru-运行经典风格的应用)
- [何时使用 config.ru](#何时使用-configru)
- [把 Sinatra 当作中间件使用](#把-sinatra-当作中间件使用)
- [创建动态应用](#创建动态应用)
- [作用域和绑定](#作用域和绑定)
- [应用/类作用域](#应用类作用域)
- [请求/实例作用域](#请求实例作用域)
- [代理作用域](#代理作用域)
- [命令行](#命令行)
- [多线程](#多线程)
- [必要条件](#必要条件)
- [紧跟前沿](#紧跟前沿)
- [通过 Bundler 使用 Sinatra](#通过-bundler-使用-sinatra)
- [使用自己本地的 Sinatra](#使用自己本地的-sinatra)
- [全局安装](#全局安装)
- [版本](#版本)
- [更多资料](#更多资料)
## 路由
@ -913,26 +919,6 @@ var resource = {"foo":"bar","baz":"qux"};
present(resource);
```
#### WLang 模板
<table>
<tr>
<td>依赖项</td>
<td><a href="https://github.com/blambeau/wlang/" title="WLang">WLang</a></td>
</tr>
<tr>
<td>文件扩展名</td>
<td><tt>.wlang</tt></td>
</tr>
<tr>
<td>例子</td>
<td><tt>wlang :index, :locals => { :key => 'value' }</tt></td>
</tr>
</table>
因为在 WLang 中调用 Ruby 方法不符合语言习惯,你几乎总是需要传递 locals 给 WLang 木板。
然而,可以用 WLang 编写布局文件,也可以在 WLang 中使用 `yield` 方法。
### 在模板中访问变量
模板的求值发生在路由处理器内部的上下文中。模板可以直接访问路由处理器中设置的实例变量。
@ -986,7 +972,7 @@ erb :admin_layout, :layout => :main_layout do
end
```
当前,以下的渲染方法接受一个代码块:`erb`、`haml`、`liquid`、`slim ` 和 `wlang`
当前,以下的渲染方法接受一个代码块:`erb`、`haml`、`liquid``slim `
通用的 `render` 方法也接受。
### 内联模板