2009-01-24 47 views
4

我真的很喜歡在Pylons和其他一些Python框架中使用的Mako模板系統,我唯一的抱怨是即使是一個簡單的繼承方案也會泄露多少WS。修剪Mako輸出

反正是有下面來完成,而不會產生如此巨大的差距WS ...或包裝我的代碼像我開始base.mako辦?

否則要抓住我試圖完成與下面。

基地是一種像對整個應用程序的所有視圖接口類,佈局僅僅是3-4個不同的佈局文件(表格,純CSS等),以及控制器/動作原型的想法是一個測試,以確定我的想法是理智的。

問題簡短摘要:如何刪除在我的Mako計劃中創建的WS?

更新:因爲它涉及到播種了我所有的真子文件與\的 http://www.makotemplates.org/docs/syntax.html#syntax_newline

/base.mako

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html> 
    <head><%def name="headtags()"></%def>${self.headtags()}</head> 
    <body> 
    <%def name="header()"></%def>${self.header()}${next.body()}<%def name="footer()"></%def>${self.footer()} 
    </body> 
</html> 

/layout.mako

<%inherit file="/base.mako"/> 
<%def name="headtags()"> 
    ${parent.headtags()} 
    <script src="http://ajax.googleapis.com/ajax/libs/prototype/1.6.0.3/prototype.js"></script> 
</%def> 
<%def name="header()"> 
    <h1>My Blogination</h1> 
</%def> 
<div id="content">${next.body()}</div> 
是不是一個解決方案

/controller/action.mako

<%inherit file="/layout.mako" /> 
<%def name="headtags()">  
    <title> Hello world, templating system is 1 percent done</title> 
    ${parent.headtags()} 
</%def> 
Hello ${c.name}! 

渲染輸出:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html> 
    <head>  
    <title> Hello world, templating system is 1 percent done</title> 

    <script src="http://ajax.googleapis.com/ajax/libs/prototype/1.6.0.3/prototype.js"></script> 


</head> 
    <body> 

    <h1>My Blogination</h1> 


<div id="content"> 

Hello Anonymous! 

</div> 

    </body> 
</html> 
+0

哇,剛剛意識到這個問題,多大了,這肯定是我最後的一個項目使用的prototype.js – David 2013-04-09 15:20:19

回答

2

找到我自己的答案 http://docs.makotemplates.org/en/latest/filtering.html

它仍然需要一些試驗和錯誤,但使用

t = TemplateLookup(directories=['/tmp'], default_filters=['trim']) 

大幅削減空白出血。額外的節省可以通過檢查編譯好的模板並尋找任何只是推「或」類似的寫入來找到。

+2

所以使用的是什麼技術來解決這個問題? – cmcginty 2010-09-07 01:44:04