我偶然发现了HAML,这是一种标记内容和编写HTML模板的有趣而美丽的方法。
由于我使用Python和Django来满足我的Web开发需求,因此我想看看是否有HAML的Python实现(或一些类似的概念-不必完全相同)可以用来替代Django模板引擎。
Answers:
您可能对SHPAML感兴趣:
我正在积极维护它。它是一个简单的预处理器,因此它不受Genshi等其他工具的束缚。我碰巧将其与Django一起使用,因此对Django有一点支持,但它不应干扰大多数其他用例。
<div class="c" id="i"></div>
使用不使用HTML这样的空元素没有简单的方法
我会去GHRML,Haml for Genshi。作者承认,它基本上是针对Python的Haml,并且大多数语法都是相同的(并且在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!
这实际上并不能回答您的问题,但是HAML的CSS组件SASS可以在任何框架中自由使用。我现在在Django中使用它。
我不确定GHRML位的状态是什么,因为我最近才一直在研究它。找不到它的存储库,原始开发人员不再有时间使用它,并且维护由对项目感兴趣的其他人进行。关于此的任何其他信息都将有所帮助。
不幸的是,随着这些事情的发展,我开始编写自己的HAML样式处理器;)
http://dasacc22.wordpress.com/2010/05/03/python-implementation-of-haml/
目前,它绝对不适合用于生产用途(它实际上是一个4天大的婴儿,但就像那4天里挤满了60多个小时),但是有兴趣的人可以在这里查看。它具有已实现的一系列功能,使其可用作玩具,并且在下周清理代码库时,我希望看到它替代我拥有的所有自定义XSLT / xpath扩展和模板。
我刚刚制作了这个http://github.com/fitoria/django-haml,它仍处于非常早期的阶段,但是可以正常工作。
Daniel Skinner的项目(如上所述)似乎已重命名为DMSL。看起来非常强大,可以模拟HAML,但允许您使用语法中的python函数,lambda,comprehensions等:https : //github.com/dasacc22/dmsl
我会用这个,这似乎是最标准的一个:https : //pypi.org/project/HamlPy3/0.83.0/
假设您使用的是Python3,那么将它与Django,Flask甚至独立使用时都不会遇到任何问题。