2012-09-20 3 views
15

Dans mon projet Ruby on Rails J'utilise HAML, je dois traduire quelque chose comme çaComment créer un point simple "." en HAML?

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

en HAML. Cela devrait ressembler à:

.divclass 
    foo 
    %a bar 
    .  

La période au début ne fonctionne pas car elle est utilisée par HAML. Alors, comment puis-je utiliser une période comme contenu?

Même avec la construction d'une travée autour de son ne fonctionne pas, encore une fois la période est considérée comme quelque chose de spécial.

Je pense qu'il existe un mécanisme d'échappement mais je ne le trouve pas.

+4

En HAML, comme la plupart des autres langues, les choses sont échappées avec un antislash. Ce devrait être la première chose que vous essayez en passant à une nouvelle langue. – meagar

+0

merci, exactement ce que je cherchais. – Calmon

+0

HAML est également bien documenté: http://haml.info/docs/yardoc/file.HAML_REFERENCE.html – mwolfetech

Répondre

26

Il se réfugiera avec \

comme celui-ci

\. 

Voir Escaping \ dans la référence HAML.

Mise à jour: L'utilisation de HAML succeed (comme dans this answer) est une meilleure solution si vous avez besoin d'un point à la fin de la phrase (pour éviter les espaces inutiles).

+1

Le problème ici est que dans son cas, il y aura un espace blanc entre l'étiquette et le point. Préférez la méthode 'reus' de @Jay –

+0

Jeremy F. Oui, vous avez raison. – khustochka

17

Une meilleure méthode:

%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

Vous avez également accès: filtre simple, comme ceci:

%p 
    :plain 
    . 
0

Je vais ajouter une autre option à l'aide Rails' intégré link_to assistant au lieu de créer manuellement le lien. Ensuite, vous pouvez tout simplement faire

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

Différentes solutions fonctionnent dans des endroits différents, mais je trouve que cela est tout à fait propre, surtout si elle est déjà en utilisant link_to ou mail_to etc.