Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Haml: Control whitespace around text

In my Rails template, I'd like to accomplish final HTML to this effect using HAML:

I will first <a href="http://example.com">link somewhere</a>, then render this half of the sentence if a condition is met 

The template that comes close:

I will first = link_to 'link somewhere', 'http://example.com' - if @condition   , then render this half of the sentence if a condition is met 

You may, however, note that this produces a space between the link and the comma. Is there any practical way to avoid this whitespace? I know there's syntax to remove whitespace around tags, but can this same syntax be applied to just text? I really don't like the solution of extra markup to accomplish this.

like image 899
Matchu Avatar asked Aug 21 '09 11:08

Matchu


1 Answers

A better way to do this has been introduced via Haml's helpers:

surround

= surround '(', ')' do   %a{:href => "food"} chicken 
Produces:
(<a href='food'>chicken</a>) 

succeed:

click = succeed '.' do   %a{:href=>"thing"} here 
Produces:
click <a href='thing'>here</a>. 

precede:

= precede '*' do   %span.small Not really 
Produces:
*<span class='small'>Not really</span> 

To answer the original question:

I will first = succeed ',' do   = link_to 'link somewhere', 'http://example.com' - if @condition   then render this half of the sentence if a condition is met 
Produces:
I will first <a href="http://example.com">link somewhere</a>, then render this half of the sentence if a condition is met 
like image 86
Ryenski Avatar answered Oct 12 '22 23:10

Ryenski