haml удалить пробел перед точкой после добавления рельсов link_to, mail_to - PullRequest
5 голосов
/ 29 февраля 2012

Я пишу текст в хамле:

Blab bla for any questions contact us on me@foo.com.

, поэтому хамл выглядит как

%p
  Blab bla for any questions contact us on
  = mail_to 'me@foo.com'
  .   

note.это точка в ascii, я также могу заменить эту строку на = '.' (строка рендеринга точки)

, но отображаемый текст выглядит как

Blab bla for any questions contact us on me@foo.com .

разница в том, что пробел перед точкойв конце

решение, которое я придумал и работает:

%p
  Blab bla for any questions contact us on
  = mail_to('me@foo.com') + '.'

просто я ищу лучшую практику :) thx

Ответы [ 3 ]

10 голосов
/ 29 февраля 2012

Я бы использовал это:

%p
  Blab bla for any questions contact us on #{mail_to('me@foo.com')}.

Также см. FAQ Haml :

Выражение структуры документа и выражение встроенного форматированиядве очень разные проблемы.Haml в основном предназначен для структуры, поэтому лучший способ справиться с форматированием - оставить его для других языков, предназначенных для него.

В этом случае вам не нужен другой язык, просто интерполируйтефункция.

5 голосов
/ 29 февраля 2012

Если вы должны использовать нотацию ==, для строки с mail_to вы сможете делать то, что хотите, например:

== #{mail_to 'me@foo.com'}.

Нотация == выполняет интерполяцию длявся строка.

4 голосов
/ 10 марта 2014

HAML имеет кучу помощников , чтобы легко разрешать такие ситуации.succeed решает проблему задней точки.

= succeed '.' do
   = link_to t('info.terms'), info_path(:terms)
...