是否有HAML实现与Python和Django一起使用


72

我偶然发现了HAML,这是一种标记内容和编写HTML模板的有趣而美丽的方法。

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

Answers:


38

您可能对SHPAML感兴趣:

http://shpaml.com/

我正在积极维护它。它是一个简单的预处理器,因此它不受Genshi等其他工具的束缚。我碰巧将其与Django一起使用,因此对Django有一点支持,但它不应干扰大多数其他用例。


4
SHPAML是否仍在积极开发中?您似乎已经放弃了维护工作,此后并没有发生太多事情。我当时正在考虑在Github上分叉它(没有其他网站回购),但是由于PyPI包似乎还在,所以我不完全确定这是否是一个好主意。
艾伦·梅

5
根据google group邮件列表,作者正在寻找维护者。我发现hamlpy(github.com/jessemiller)更好一些,并且开发仍在进行中。
bcoughlan

1
令人讨厌的事情:没有像<div class="c" id="i"></div>使用不使用HTML这样的空元素没有简单的方法
Callum Rogers

21

我正在寻找相同的。我没有尝试过,但是发现了这一点:

http://github.com/jessemiller/HamlPy


2
这很好用,并且也有一个类似于SASS的监视者。绝对比最佳答案更积极。
bcoughlan

1
现在这个项目基本上已经死了;2年内没有提交,没有Python 3支持。不知道repo / package维护者如何放弃控制...但是那应该发生。
尼克T

@NickT Py3支持:hamlpy3
Natacha

21

我会去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!


4

这实际上并不能回答您的问题,但是HAML的CSS组件SASS可以在任何框架中自由使用。我现在在Django中使用它。


Sudhir您能告诉我您如何设置吗?安装使用“ gem install”,所以我猜您下载了源代码并以其他方式进行了操纵?请查看详细信息!=]
卡尔·克洛特2011年

1
几乎没有那么复杂...我正在使用Compass框架-它带有一个监视程序,该程序自动将.scss文件编译为.css。看一下guide-style.org
Sudhir Jonathan

3

我不确定GHRML位的状态是什么,因为我最近才一直在研究它。找不到它的存储库,原始开发人员不再有时间使用它,并且维护由对项目感兴趣的其他人进行。关于此的任何其他信息都将有所帮助。

不幸的是,随着这些事情的发展,我开始编写自己的HAML样式处理器;)

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

目前,它绝对不适合用于生产用途(它实际上是一个4天大的婴儿,但就像那4天里挤满了60多个小时),但是有兴趣的人可以在这里查看。它具有已实现的一系列功能,使其可用作玩具,并且在下周清理代码库时,我希望看到它替代我拥有的所有自定义XSLT / xpath扩展和模板。


3

我的项目PyHAML是一个Mako预处理程序,为您提供非常类似于HAML的语法。某些Ruby无法很好地转换为Python,因此存在一些差异,但实质是相同的。


3

我遇到了玉做一些node.js的工作,回到Django时正在寻找类似的东西。我找到了Pyjade,尽管它几乎正是我要寻找的东西,但它在Django中处理错误和调试的能力很差。


这是太棒了。应该是公认的答案。发表评论时仍在积极开发中
2015年



By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.