2011-11-17 27 views
12

estoy tratando de nido de estaHAML etiquetas de anidación

%h1 Admin Menu 
    %small logged in as: #{session[:username]} 

Para conseguir algo como esto

<h1>Admin Menu <small>logged in as: something</small></h1> 

Pero la única manera que puedo conseguir que se muestre sin disparar un error que está poniendo en el mismo nivel, digamos

%h1 Admin Menu 
    %small logged in as: #{session[:username]} 

que da salida:

<h1>Admin Menu</h1> 
<small>logged in as: something</small> 

Probaby es algo tonto, pero no tengo idea de por qué esto no funcionaría?

Respuesta

26

Haml solo permite anidar en línea si todo lo que se anidará está en línea. Así que usted puede hacer esto:

%h1 Admin Menu 

o esto:

%h1 
    Admin Menu 
    %small logged in as: #{session[:username]} 

pero no esto:

%h1 Admin Menu 
    %small logged in as: #{session[:username]} 

La primera forma realmente debe ser pensado como una abreviatura conveniente. Existe por lo que puede tomar algo como esto:

%li 
    One 
%li 
    Two 
%li 
    Three 

y acaba de decir:

%li One 
%li Two 
%li Three 
+0

Gracias Matt, tenías razón con el dinero :) – leopic

7

No lo he intentado, pero ¿no funcionará lo siguiente para usted?

%h1 
    Admin Menu 
    %small logged in as: #{session[:username]} 
+0

Gracias Swanand, funcionó :) – leopic

1

El otro truco es esto.

%h1 
    Admin Menu 
    %small 
    logged in as: 
    =session[:username] 

debido últimas 2 líneas se representan dentro de "pequeña" -tag

0

O usted podría utilizar CSS simple de hacer el truco, como:

%h1 
    Admin Menu 
    .small{ style: 'font-size: smaller;' } 
     logged in as: 
     = session[:username] 

esta manera se puede especificar otros atributos o el tamaño específico de la fuente.

+0

En este caso, la etiqueta era solo un ejemplo, pero me gustaría anidar otras etiquetas también, gracias por la consejo si. – leopic