论坛首页 编程语言技术论坛

Rails简洁的模板系统Malline

浏览 9151 次
精华帖 (0) :: 良好帖 (1) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2008-09-14  

      前段时间听说rails的模板系统不如django好用,其实rails也有一个比较简洁且好用的模板系统Malline http://www.malline.org/ 。Malline 是专门为Rails框架而设计的模板系统,它从模板系统 Makeaby 获取的灵感,Malline不是嵌入式模板系统,也不是新的语言模板系统,而是使用纯Ruby语言编写模板代码。接触伊始就觉得这个模版真的很棒,下面是根据它的doc做的一个step by step过程。

 

首先把Malline作为插件进行安装:

ruby script/plugin install http://svn.malline.org/stable/malline

 

最后在 config/environment.rb中加入 require 'malline/rails' , 这就算安装完毕了。

 

根据doc测试了2个例子,注意直接把.rhtml文件换为.mn文件即可,rails会直接渲染.mn文件,首先是Malline大大简化了html标签的写法,而且支持嵌套,比如:

 

div do
    span 'text'
    div 'foo' do
        span 'bar', :style => 'color: red'
    end
end

编译成:
 <div>
    <span>text</span>
    <div>
        foo<span style="color: red">bar</span>
    </div>
</div>
 

 


 你可以像erb模板那样向block里面输入一个变量,并在以后使用它,比如:

 

@foo = capture do
    div do
        img :src => '/images/image.png', :alt => 'nice image'
        br
        span.caption 'Taken at the location of the event'
    end
end
编译成:
<div>
    <img src="/images/image.png" alt="nice image"/><br/>
    <span class="caption">Taken at the location of the event</span>
</div>

 

 

      以上是我试验的两个例子,更多可以参见 http://www.malline.org/features ,绝对让你爽个够,而且在下载下来的插件里面包含了大量的测试例子。另外想说明的是,你可以在一个系统里面混用erb模板和malline模板,甚至可以在malline模板里面引用erb模板,比如你已经有一个_one.rhtml的模板,那么在.mn中加入<%= render :partial => 'one' %>也是可行的。

   发表时间:2008-09-14  
楼主是否有用过Haml?我初步看来这个模板系统类似Haml,但是没有Haml简洁,至少思路一致,但是Haml可以帮助你省略小一半的代码行数,易于维护(美工的噩梦...程序员的福音...)
0 请登录后投票
   发表时间:2008-09-14  
lgn21st 写道
楼主是否有用过Haml?我初步看来这个模板系统类似Haml,但是没有Haml简洁,至少思路一致,但是Haml可以帮助你省略小一半的代码行数,易于维护(美工的噩梦...程序员的福音...)

 

 

写道
简单的表现往往意味着复杂的后台处理,事实也的确如此,因为HAML相比RHTML要进行更多的处理,因此HAML 很难做到比RHTML更快,所以问题的关键就在于你能不能承受由此造成的性能下降 

需要考虑到问题是,在复杂度 性能 功能这几者间寻找一个平衡点。

 

 

0 请登录后投票
   发表时间:2008-09-14  
haml已经2.0.3了,解析速度不怎么慢。以前有预言2.0版的跟erb在性能上的差距在5-10%。比写erb方便,省事不少。要美工改什么东西的话,一般让美工访问连接后去取html,之后就是转换后再插到haml中去。
不管怎么说,是不会再用回erb了。
0 请登录后投票
   发表时间:2008-09-15  
火星叔叔马丁 写道
我和lgn21st一个观点

程序员的福音 美工的噩梦

 

 这就看程序和美工如何分工了, 美工=设计图片/flash+css+layout 足够了吧?

 

程序只需要在动态显示的部分写标签,所以我一直认为程序需要懂点美工的活,懂点div+css是大有裨益的。

 

据我的经验,把整个view交给美工不大现实,事实上美工也可以不必熟悉tag

0 请登录后投票
   发表时间:2008-09-15  
你们这种做法是合理的,一般美工给出个大致的页面,剩下的活可能就直接给程序了,不可能为了修改一个比如高度或者宽度的问题,还要拿给美工再修改,这样影响效率。

短时间熟悉div+css对于candidate也是一种必须的快速学习能力,何况仅仅是熟悉……
0 请登录后投票
   发表时间:2008-09-15  
liuqiang 写道
你们这种做法是合理的,一般美工给出个大致的页面,剩下的活可能就直接给程序了,不可能为了修改一个比如高度或者宽度的问题,还要拿给美工再修改,这样影响效率。

短时间熟悉div+css对于candidate也是一种必须的快速学习能力,何况仅仅是熟悉……

压根就不懂css的飘过……
我们公司都是这么做的,开发人员不懂css,调整style的活必须由美工来完成。他们不懂程序,需要告诉他们怎么改。有时候效率确实很低
0 请登录后投票
   发表时间:2008-09-15  
刑天战士 写道
liuqiang 写道
你们这种做法是合理的,一般美工给出个大致的页面,剩下的活可能就直接给程序了,不可能为了修改一个比如高度或者宽度的问题,还要拿给美工再修改,这样影响效率。

短时间熟悉div+css对于candidate也是一种必须的快速学习能力,何况仅仅是熟悉……

压根就不懂css的飘过……
我们公司都是这么做的,开发人员不懂css,调整style的活必须由美工来完成。他们不懂程序,需要告诉他们怎么改。有时候效率确实很低

 

 先别急着飘,你肯定是了解css的,你可说过你天天操作dom的哦,我不信你能天天无视style

 

你们其实可以这样,美工定义css,开发人员调用就可以了

0 请登录后投票
   发表时间:2008-09-15  
liuqiang 写道

刑天战士 写道

liuqiang 写道
你们这种做法是合理的,一般美工给出个大致的页面,剩下的活可能就直接给程序了,不可能为了修改一个比如高度或者宽度的问题,还要拿给美工再修改,这样影响效率。

短时间熟悉div+css对于candidate也是一种必须的快速学习能力,何况仅仅是熟悉&hellip;&hellip;


压根就不懂css的飘过&hellip;&hellip;
我们公司都是这么做的,开发人员不懂css,调整style的活必须由美工来完成。他们不懂程序,需要告诉他们怎么改。有时候效率确实很低


先别急着飘,你肯定是了解css的,你可说过你天天操作dom的哦,我不信你能天天无视style


你们其实可以这样,美工定义css,开发人员调用就可以了


美工定义class或者style?很多情况下是这样的,老板要求员工先别管样式,做个样子出来看看,做完了发现太难看,让美工改,美工不会改,于是程序员教……因为,在现实情况下这只是个Holy Grail
0 请登录后投票
   发表时间:2008-09-16  
性能如何,大规模应用的情况下,会不会使得的性能大量下降? 有没有内嵌的cache机制?
0 请登录后投票
论坛首页 编程语言技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics