Haml: Control whitespace around text

haml, ruby-on-rails

Solution

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

Problem

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.

Original source