2015-06-02 4 views
3

Я пытаюсь форматировать простую фразу, которая звучит так:Как избавиться от лишних пробелов в html, созданных Haml & Ruby?

want

Когда мой Haml выглядит следующим образом:

%a{:href => "link", :target=> '_blank'} x, 
    %a{:href => "link", :target=> '_blank'} y, 
    and 
    %a{:href => "link", :target=> '_blank'} z. 

я получаю

undesired link on comma

Когда мой haml выглядит несколько иначе:

%a{:href => "link", :target=> '_blank'} x 
    , 
    %a{:href => "link", :target=> '_blank'} y 
    , and 
    %a{:href => "link", :target=> '_blank'} z 
    . 

Я получаю

enter image description here

... и пространства выглядят неправильно.

Как я могу заставить его выглядеть так, как я хочу?

Я хочу, чтобы это выглядело как

want

... с запятые и период не будучи ссылки и не странные лишние пробелы.

+0

попробуйте его, используя тег link_to, добавленный ответ для этого же –

+0

Знаете ли вы, что это трюк? [Удаление пробелов] (http://haml.info/docs/yardoc/file.REFERENCE.html#whitespace_removal__and_). – zwippie

+0

Вы действительно хотите запятую после y? Запятая и «и» не имеет смысла –

ответ

-1

EDIT из-за моего непонимания я дал вам не правильное решение, это может быть то, что вам нужно:

Вы должны использовать

успеха

из haml helper:

= succeed ',' do 
%a{:href => "link", :target=> '_blank'}x 
= succeed ',' do 
%a{:href => "link", :target=> '_blank'}y 
= succeed '.' do 
%a{:href => "link", :target=> '_blank'}z 
+0

.. но тогда запятые будут ссылками, верно? Я не хочу, чтобы они были ссылками. – pixelfairy

+0

oh wait ... без пробела после скобки. Попытка. – pixelfairy

+0

Мне все еще нужны запятые, чтобы не быть ссылками, и единственный способ сделать это, что я знаю, - это поставить их на следующую строку .., которая добавляет пространства вокруг них. – pixelfairy

0

Попробуйте это, я надеюсь, что это поможет

= link_to "x", "Your-url", target: "_blank" 
, 
= link_to "y", "Your-url", target: "_blank" 
= "and" 
= link_to "z", "Your-url", target: "_blank" 
+0

Спасибо, но, к сожалению, когда я это пробую. Я все еще получаю нежелательное пространство перед запятой. – pixelfairy

+0

щелкните правой кнопкой мыши на любом элементе ссылки и проверьте его в браузере и проверьте ширину тега –

0

Вы можете попробовать следующее, а

= "<a href='link' target='_blank'>x</a>, <a href='link' target='_blank'>y</a> and <a href='link' target='_blank'>z</a>".html_safe 
+0

Спасибо! Я сохраню вариант вставки html для завтра. Если я не могу заставить haml сделать это с помощью инструкций @teoreda, я попробую это. – pixelfairy

0

Попробуйте написать ссылку, как:

= ("#{link_to('x', 'link', target: '_blank')}, #{link_to('y', 'link', target: '_blank')}, and #{link_to('z', 'link', target: '_blank')}.").html_safe 

Также вы можете заменить «ссылку ', чтобы связать как root_path, и он будет работать нормально.

0

Я имел аналогичные вопросы, вы можете попробовать Helpers#succeed

например

= succeed ',' do 
    %a{:href=>"link"}x 
= succeed ',' do 
    %a{:href=>"link"}y 
+0

Я дал это решение раньше ... Вы должны прочитать другие решения, прежде чем отвечать ... – teoreda

+1

Вы редактировали свое старое, совершенно другое заданное решение, когда я вводил это решение. Не мог бы знать :) – SirLenz0rlot

+0

Вы правы! :-) – teoreda

Смежные вопросы