【问题标题】:Ruby HAML with Django?Ruby HAML 与 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 支持?

谢谢!

【问题讨论】:

    标签: python ruby django haml


    【解决方案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 之外,还没有其他选择。

    【解决方案2】:

    【讨论】:

      【解决方案3】:

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

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

      【讨论】:

        【解决方案4】:

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

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

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-01-16
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多