Ruby HAML 与 Django?

Posted

技术标签:

【中文标题】Ruby HAML 与 Django?【英文标题】:Ruby HAML with Django? 【发布时间】:2011-03-05 23:53:05 【问题描述】:

好的,我真的很喜欢 HAML。特别是,我喜欢与 RedCloth 和 BlueCloth 的集成,因此我可以将 Markdown 和 Textile 与我的 HAML 混合使用。

我也喜欢 Python 和 Django。

所以,我想在 Django 中使用 HAML。现在,我已经了解到有一些尝试在 Python 中克隆类似 HAML 的语法(SHPAML 和其他)。我试过这些,虽然它们还不错,但我发现我真的只想要真正的 HAML。部分是因为它的语法,但也适用于 RedCloth 和 BlueCloth 之类的东西。

那么,我的问题是,如何让 HAML 和 Django 一起工作?

我认为一种解决方案是创建 HAML 模板,然后在每次更新时使用命令行工具将它们编译成 html

问题 1:我会在这里遇到什么问题吗?

我还想知道是否有办法让 Python 和 Ruby 一起玩得更久一些。我的一个想法实际上是分叉出 Ruby 进程。这可能是个坏主意,但有人对此有任何想法吗?

问题2:用Python调用真正的Ruby HAML怎么样?

最后,如果有人知道 HAML 的 Python 实现完整,并且支持 Textile 或 Markdown,以及明文 passthru,请告诉我。

问题 3:是否有 HAML 到 Python 的完整翻译,包括 Markdown 或 Textile 支持?

谢谢!

【问题讨论】:

【参考方案1】:

问题 1:静态 HTML 文件应该可以正常工作(除非您打算使用 HAML 的 ruby​​ 评估功能来动态显示内容)。我在带有 SASS 样式表的 php 网站上使用了类似的方法。只需确保在开始破解之前以目录监视模式启动 HAML ;)

问题 2:虽然 fork 一个 ruby​​ 进程来创建 HTML 代码是可能的,但我不建议你这样做,因为初始化一个 ruby​​ 解释器和加载所需的文件需要很多 cpu 时间,所以你最好坚持使用静态文件。如果您需要 ruby​​ 评估功能将运行时创建的数据包含到文档中,您最好看看 eventmachine,并将其设置为服务器(以便您的 Django 应用程序可以连接到它,并请求 HTML 生成,而无需派生新的每次翻译)。

问题 3:也许这是最难的。有被废弃的 GHRML; SHPAML 只实现了 HAML 的一小部分,DMSL,目前还处于试验阶段,但已经支持大部分 HAML 并调用 python 代码,但缺乏 Markdown 或 Textile 支持。但显然,除了支持所有必需功能的 Ruby HAML 之外,还没有其他选择。

【讨论】:

***.com/questions/519671/…【参考方案2】:

试试:http://github.com/fitoria/django-haml

【讨论】:

【参考方案3】:

我强烈建议您不要从 django 视图中派生任何进程,因为开销很大。

您应该有一个持久的 ruby​​ 进程来为您提供模板,并从您的 django 代码中调用它。我将 IPC 技术留给你,但显而易见的选择要么是某种消息队列技术,要么是通过套接字向 ruby​​ 进程发送 HTTP。

【讨论】:

【参考方案4】:

虽然这最终可能带来的麻烦多于其价值,但很可能可以利用 Java 或 .NET 平台并仍然在 Jython 或 IronPython 中运行您的 Django 应用程序(我敢肯定会进行一些小的调整),而且能够通过 jRuby 或 IronRuby 来利用 Ruby 的 HAML gem。

我敢肯定要让它发挥作用会有一些怪癖,但我相信这是可能的。

同样,这可能比它的价值要麻烦得多(考虑到您必须将应用程序迁移到一个全新的平台),但这将是一个非常有趣的项目。

【讨论】:

以上是关于Ruby HAML 与 Django?的主要内容,如果未能解决你的问题,请参考以下文章

ruby _form.html.haml

从 ruby​​ on rails 中删除 new.haml/new.erb?

哪种 Java HTML 模板技术的工作方式最接近 Ruby (erb/haml)?

缓存的 Ruby Haml 块返回空

可用于 Python 的 HAML 或 Jade 模板语法?

Ruby on Rails - Javascript/jQuery 到 Haml