[Templates] escaping \n in strings

Josh Rosenbaum josh@infogears.com
Wed, 14 Jun 2006 05:55:58 -0600


Womble wrote:
> The pages we're generating have PHP in them on occasion (yes, I know 
> this is sick and wrong but no one else here knows perl and none of them 
> will go to the effort of learning it), and sometimes we need the php to 
> spit out '\n', but TT2 keeps eating the \n and printing a new line.  I 
> tried escaping the \n with \\n (and \\\n and \\\\n) but that doesn't work.
> 
> The trouble I think is that the PHP fragment is a variable in the 
> template and, although the $'s and "'s are escaped and behaving, the \n 
> isn't, which doesn't make sense.
> 
> I assume no one has been sick enough to put PHP in their source files 
> before, so this hasn't been noticed?  Or am I just missing something 
> obvious?
> 
> Jess


Hmm that is interesting. I don't have time right now to check into this further (or search the mail list archives), but I just tested and found this to be true for double quotes. Single quotes behave correctly, though, so you can use them as a work around method.

Input:
-------------------
"\n": [% "\n" %]
"\\n": [% "\\n" %]
"\\\n": [% "\\\n" %]
'\n': [% '\n' %]
'\\n': [% '\\n' %]
-------------------


Output:
-------------------
"\n": 

"\\n": 

"\\\n": \

'\n': \n
'\\n': \n
-------------------

-- Josh