CoffeeScript String Interpolation with HTML Escaping

Coffescript supports ruby-style string interpolation inside double quotes.

author = "Wittgenstein"
quote  = "A picture is a fact. -- #{ author }"

# A picture is a fact. -- Wittgenstein

As the string interpolation is not limited to simple variable substitution, it's easy to define an escaping function and use it inside the string interpolation

escape = (s) -> (''+s).replace(/&/g, '&').replace(/</g, '<')
        .replace(/>/g, '>').replace(/"/g, '"')
        .replace(/'/g, ''').replace(/\//g,'/')

author = '<blink>Wittgenstein</blink>'
quote  = "A picture is a fact. -- #{ escape author }"

#A picture is a fact. -- <blink>Wittgenstein</blink>