[其他] mako模板也有问题

jasongreen 2009-03-27
使用django模板,发现功能很少,控制力不强,变量赋值很麻烦。

看了mako模板觉得不错,可是一用,发现 %for  %if 的表达式会导致程序多出一些换行

今天想实现
引用
% for menu in menus[1]
<%
css = ""
if(for.first):
css="first "
elif(for.last):
css="last "
if(menu==current_menu[1]):
css=css+"active"
%>
<li %if css:
class="${css}!"{% endif %}">

这样的功能
用django, css变量的赋值很麻烦,自己实现了assign但if块太大。
用mako,无故多了个换行
<li
       class="xxx"
自己写了个tag

引用
<%def name="when(test)"><%
if test:
return caller.body()
%>
</%def>
<%
css="aaa"
%>
<li <%self:if when="${css}">class="${css}"</%self:when>asdfasdf


如果mako可以实现 <%for> <%if>的tag,就比较好了。

duker 2009-03-27
其实django 模板系统可以自己定义 tag和 filter,这样基本上什么功能都能完成..
YES 2010-02-08
不知道为什么我的mako模板中的控制语句全部直接输出了。。。。
this is myfunc, x is 7 % for i in [1,2,3,4]: 7 % end for
YES 2010-02-08
<%def name="myfunc(x)">
    this is myfunc, x is ${x}
% for i in [1,2,3,4]:
${x}
% end for

</%def>

${myfunc(7)}
smalllixin 2010-04-20
mako是有这个问题比较烦,jinja2这方面做得比较好。
但是mako带来的这种空格在html中没有什么伤害,
如果真的想控制换行其实mako也提供了机制
在你的代码最后加一个\
%if something:\
should be connected.
Global site tag (gtag.js) - Google Analytics