2016-01-19 1 views
2

Étant donné que je ne souhaite pas que l'une de mes lignes soit plus large que 80 colonnes, je souhaite diviser la dernière ligne en deux lignes. L'ajout d'une virgule à la fin de la ligne fonctionne comme suggéré here, mais la virgule apparaît à l'intérieur de la chaîne. Existe-t-il une façon agréable et propre de le faire avec HAML? Je veux que tout soit caché à l'intérieur de 80 colonnes comme ils sont sur la gauche de cette capture d'écran.Chaîne multiligne dans HAML

enter image description here

+1

Si ce sont des Textes que vous voudrez peut-être traduire ultérieurement, vous pouvez aussi utiliser I18n maintenant. Alors vous n'avez pas de tels problèmes. – Raffael

+0

Vous pouvez également enregistrer votre chaîne dans une variable locale dans le modèle de vue à l'aide d'un bloc ': ruby'. – Raffael

+0

Merci, vous avez raison de dire que je pourrais aussi bien regarder I18n maintenant. Je ne pense pas que ma première application de rails finira jamais comme je continue à rencontrer une autre gemme pour incorporer ou une autre meilleure pratique (pas que ceci soit une mauvaise chose!) –

Répondre

10

Haml has support for multiline sequences comme celui-ci en utilisant le caractère |:

- if object.errors.any? 
    %section.form_error_message 
    %h4.form_error_message__title 
     = "#{pluralize(object.errors.size, 'errors')} prevented this form from | 
     submitting. Please fix these errors and try again."     | 

Dans ce cas, vous ne avez pas vraiment besoin de ce bien, vous pouvez utiliser interpolation directement en texte clair, vous n'avez pas besoin le =:

- if object.errors.any? 
    %section.form_error_message 
    %h4.form_error_message__title 
     #{pluralize(object.errors.size, 'errors')} prevented this form from 
     submitting. Please fix these errors and try again. 

(la sortie de ce sera légèrement différent, comme wi ll inclura la nouvelle ligne. Vous ne devriez pas remarquer cela dans le HTML rendu, sauf si vous êtes par exemple. . A l'intérieur <pre> balises)

+0

Doux! Je ne savais pas que vous pouviez interpoler le code Ruby à l'intérieur du texte brut. –

0
%div First line | 
    and second line | 

rendra:

<div>First line and second line</div> 

Si vous ne voulez même pas un tag:

First line | 
and second line | 

va émettre:

First line and second line 

Vous peut utiliser l'outil de commande haml, par exemple copiez le code puis pbpaste | haml sur macOS, ou avec un fichier cat file.haml | haml.