2010-09-24 45 views
32

En HTML, puede hacer algo como estoetiqueta en línea en haml

<p> 
    Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent eget 
    aliquet odio. Fusce id quam eu augue sollicitudin imperdiet eu ac eros. 
    <em>Etiam nec nisi lorem</em>, ac venenatis ipsum. In sollicitudin, 
    lectus eget varius tincidunt, felis sapien porta eros, non 
    pellentesque dui quam vitae tellus. 
</p> 

Es agradable, ya que el párrafo de texto todavía se ve como un párrafo en el marcado. En haml, parece esto

 
%p 
    Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent eget 
    aliquet odio. Fusce id quam eu augue sollicitudin imperdiet eu ac eros. 
    %em Etiam nec nisi lorem 
    , ac venenatis ipsum. In sollicitudin, 
    lectus eget varius tincidunt, felis sapien porta eros, non 
    pellentesque dui quam vitae tellus. 

¿Hay alguna manera de alinear totalmente una etiqueta en haml?

+5

Me encanta cómo el SO hilighter simplemente no sabe qué hacer con ese bloque de haml –

+0

Esto haría una buena solicitud de función. Lo que realmente queremos escribir es algo así como: '% p I% em {love} you. –

+0

posible duplicado de [Elementos de Haml múltiples en la misma línea] (http://stackoverflow.com/questions/2437168/multiple-haml) -elements-on-same-line) –

Respuesta

56

Haml sobresale por el marcado estructural, pero en realidad no está destinado al marcado en línea. Leído: Haml Sucks for Content. Sólo hay que poner etiquetas en línea como HTML:

.content 
    %p 
    Lorem ipsum <em>dolor</em> sit amet. 

O bien utilizar un filter:

.content 
    :markdown 
    Lorem ipsum *dolor* sit amet. 
+1

Pensé que podría ser eso, solo quería asegurarme de que no me faltaba nada. Usar el descuento para ese tipo de contenido es realmente una gran idea también –

+0

La nueva versión de haml solucionó este problema. Ahora puede escribir, por ejemplo:% h1 title de la página. De la [documentación de haml] (http://haml.info/docs/yardoc/file.REFERENCE.html): tenga en cuenta que las etiquetas HTML se pasan sin modificaciones también. Si tiene algo de HTML que no desea convertir a Haml, o está convirtiendo un archivo línea por línea, puede simplemente incluirlo tal como está. – Simonini

9

Puede HTML en línea en cualquier HAML haciendo

%p!= "Lorem ipsum <em>dolor</em> sit amet" 

La = significa operador que lo el lado derecho regresa será enviado.

18

Sé que esto es viejo. Pero pensé que publicaría esto en caso de que alguien aterrice aquí. También puede hacer este tipo de cosas en haml (¿Y tal vez más de lo que el OP estaba buscando?).

%p Here is some text I want to #{content_tag(:em, "emphasize!")}, and here the word #{content_tag(:strong, "BOLD")} is in bold. and #{link_to("click here", "url")} for a link. 

útil para aquellas situaciones en las que se realizan en varias líneas agrega espacios no desea POR EJEMPLO Cuando tienes un enlace al final de una oración, y no quieres ese espacio estúpido entre el enlace y el punto. (O, como en el ejemplo de la OP, habría un espacio entre el y la coma.

Pero no se deje llevar como lo hice en el ejemplo :)

+0

¿Qué sucede si quiero agregar una clase a un lapso de tiempo? Como .red – chrisjlee

+0

Eso sería así: # {content_tag (: em, "emphasis!", Class: "red")} –

+0

¡Gracias! Esto era exactamente lo que estaba buscando :) – DavidVII

3

como un híbrido de estos agradables respuestas por otros, creo que puede definir un método de Ayuda en su application_helper.rb para algunas marcas en línea que usaría con frecuencia. No necesita mezclar HTML con HAML, ni tiene que escribir mucho.

En su ayudante;

def em(text) 
    content_tag(:em, text) 
end 

#def em(text) 
# "<em>#{text}</em>".html_safe 
#end 

En su haml;

 
%p 
    Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent eget 
    aliquet odio. Fusce id quam eu augue sollicitudin imperdiet eu ac eros. 
    #{em 'Etiam nec nisi lorem'}, ac venenatis ipsum. In sollicitudin, 
    lectus eget varius tincidunt, felis sapien porta eros, non 
    pellentesque dui quam vitae tellus. 
0

Se trata de la sangría:

%p 
    Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent eget aliquet odio. Fusce id quam eu augue sollicitudin imperdiet eu ac eros. 

    %em 
    Etiam nec nisi lorem, ac venenatis ipsum. In sollicitudin, lectus eget varius tincidunt, felis sapien porta eros, non pellentesque dui quam vitae tellus. 
Cuestiones relacionadas