So I'm playing with Mako on Pyramid and I'm trying to do inline if statements.
<li>${'<a href="#">Opinions</a></li>' if whichnav == 'opinions' else 'Opinions'}
Outputs:
<li><a href="#"&g开发者_C百科t;Opinions</a></li>
Whereas:
% if whichnav =='opinions':
<li><a href="#">Opinions</a></li>
% else:
<li>Opinions</li>
% endif
Outputs correctly without escaping the HTML characters:
<li><a href="#">Opinions</a></li>
I want to make my code as clean as possible so inline if statements are preferable, but I don't understand why HTML characters are escaped whereas using % they are not. Thanks!
Looks like your HTML is being escaped. What happens if you change your inline if
to this:
${'<a href="#">Opinions</a></li>' if whichnav == 'opinions' else 'Opinions' | n}
(Edit: Put the | n
to disable the filtering AFTER the conditional).
精彩评论