2009-02-06 54 views
69

我偶然发现了HAML,这是一种有趣而美丽的方式来标记内容并为HTML编写模板。是否有与Python和Django一起使用的HAML实现

由于我使用Python和Django来开发我的Web开发需求,因此我想查看是否存在可用于替换Django的HAML(或某些类似概念 - 不必完全相同)的Python实现模板引擎。

回答

21

我想看看GHRML,Haml为Genshi。作者承认,它基本上是Haml for Python,并且大部分语法都是相同的(并且它在Django中起作用)。下面是一些GHRML只是向你展示他们是如何接近:

%html 
    %head 
    %title Hello World 
    %style{'type': 'text/css'} 
     body { font-family: sans-serif; } 
    %script{'type': 'text/javascript', 'src': 'foo.js'} 

    %body 
    #header 
     %h1 Hello World 
    %ul.navigation 
     %li[for item in navigation] 
     %a{'href': item.href} $item.caption 

    #contents 
     Hello World! 
+2

该链接返回404.项目是不是放弃了吗? – 2010-01-22 05:59:11

+0

同上。该页面也为我返回错误。 – 2010-05-05 11:41:00

+1

Borken链接,可以更新吗? – arbales 2010-07-23 17:16:19

4

这实际上并没有回答你的问题,但HAML,SASS的CSS组件,可以与任何框架自由使用。我现在正在使用Django。

+0

Sudhir你能告诉我你是如何设置的吗?安装使用“gem install”,所以我猜你已经下载了源代码并以其他方式安装了它?详情请! =] – 2011-12-14 04:32:22

+1

这并不复杂......我使用的是Compass框架 - 它带有一个自动将.scss文件编译为.css的监视程序。看看http://compass-style.org/ – 2011-12-18 09:51:05

36

您可能会感兴趣的SHPAML:

http://shpaml.com/

我积极维护它。它是一个简单的预处理程序,所以它不受任何其他工具如Genshi的束缚。我碰巧在Django中使用它,所以有一点Django支持,但它不应该干扰大多数其他用例。

3

我不确定GHRML位的状态是什么,因为我只是最近正在研究它。无法找到它的回购,原来的开发人员没有时间了,而且维护工作也是由对该项目感兴趣的其他人拿起的。任何额外的信息将是有帮助的。

不幸的是,这些事情,我开始写我自己的HAML风格处理器;)

http://dasacc22.wordpress.com/2010/05/03/python-implementation-of-haml/

这绝不适合生产使用的那一刻(其字面为期4天的婴儿现在但是在这4天内就会挤满60多个小时),但任何感兴趣的人都可以在这里查看。它具有一系列已经实现的功能,可以作为玩具使用,并且在下周清理代码库时,我希望能够替代我所有的自定义XSLT/xpath扩展和模板。

2

Daniel Skinner的项目(如上所述)似乎已经更名为DMSL。这似乎很强大,模拟HAML但允许您使用Python功能,lambda表达式,内涵等,在它的语法:https://github.com/dasacc22/dmsl

3

我的项目,PyHAML,是一个Mako的预处理器,让你非常HAML的语法。有些Ruby不能很好地转换成Python,所以有一些差异,但精神是一样的。

3

我跑过翡翠做一些node.js的工作,当返回到Django正在寻找类似的东西。我发现了Pyjade,虽然它几乎正是我正在寻找的东西,但它在Django中处理错误和调试相当糟糕。

6

您可能也有兴趣Plim。这是一个成熟的Python端口Slim

相关问题