2012-09-20 28 views
15

En mi Ruby on Rails proyecto utilizo HAML, necesito traducir algo como esto¿Cómo hago un punto simple "." en HAML?

<div>foo <a>bar</a>.<div> 

en HAML. Debería verse así:

.divclass 
    foo 
    %a bar 
    .  

El período de inicio no funciona porque es utilizado por HAML. Entonces, ¿cómo puedo usar un período como contenido?

Incluso con la construcción de un lapso alrededor de su no funciona, de nuevo el período se toma como algo especial.

Creo que hay un mecanismo de escape pero no puedo encontrarlo.

+4

En HAML, al igual que con la mayoría de otros idiomas, las cosas se escapan con una barra invertida. Debería ser lo primero que intente al pasar a un nuevo idioma. – meagar

+0

gracias, exactamente lo que estaba buscando. – Calmon

+0

HAML también está bien documentado: http://haml.info/docs/yardoc/file.HAML_REFERENCE.html – mwolfetech

Respuesta

26

que se le escape con \

como esto

\. 

Ver Escaping \ en la referencia HAML.

Actualización: El uso de succeed (como en this answer) es una mejor solución si necesita un punto en el final de la frase (para evitar espacios en blanco innecesarios) HAML.

+1

El problema aquí es que en su caso habrá un espacio en blanco entre la etiqueta a y el punto. Prefiere el método de "éxito" de @Jay –

+0

Jeremy F. Sí, tienes razón. – khustochka

17

Un método mejor:

%p 
    This sentence ends with a link which is *just* before a period 
    = succeed "." do 
    %a{:href => "#"} link 
    But the period wasn't included with the link and there was no space before the period. 
1

También tienen acceso a la: filtro de llanura, como esto:

%p 
    :plain 
    . 
0

voy a añadir otra opción utilizando rieles integrado en un link_to ayudante en lugar de crear manualmente el enlace. A continuación, puede hacerlo simplemente

%p 
    This sentence ends with a link which is *just* before a period 
    #{ link_to "link", "#" }. 

Diferentes soluciones trabajarán en diferentes lugares, pero me parece que esto es bastante limpio, sobre todo si ya está usando link_to o mail_to etc.

Cuestiones relacionadas