Mark Needham

Thoughts on Software Development

Ruby/Haml: Maintaining white space/indentation in a <pre> tag

without comments

I’ve been writing a little web app in which I wanted to display cypher queries inside a <pre> tag which was then prettified using SyntaxHighlighter but I was having problems with how code on new lines was being displayed.

I had the following Haml code to display a query looking up Gareth Bale in a graph:

%pre{ :class => "brush: cypher; gutter: false; toolbar: false;"}
  START player = node:players('name:"Gareth Bale"') 
  RETURN player.name

When I rendered the page it looked like this:

Bale broken tiff

After a bit of googling I ended up on this Stack Overflow post which described the preserve helper which seems to do the job:

%pre{ :class => "brush: cypher; gutter: false; toolbar: false;"}
  = preserve do
    START player = node:players('name:"Gareth Bale"') 
    RETURN player.name

That part of the page now looks much better:

Bale fixed

Written by Mark Needham

March 2nd, 2013 at 10:19 pm

Posted in Ruby

Tagged with ,