ruby - 将 HAML 与自定义过滤器结合使用

标签 ruby haml coffeescript

我对 HAML 和 CoffeeScript 感到非常兴奋,并且正在编写教程,展示如何在非 Rails 环境中使用它们。 因此,haml 具有易于使用的命令行实用程序

haml input.haml output.html.

而且,很棒的是,有一个项目(众多分支之一: https://github.com/aussiegeek/coffee-haml-filter )旨在提供自定义过滤器,将 CoffeeScript 转换为 HAML 文件内的 JS。 不幸的是(或者我错过了什么?) haml 不允许在命令行或某些配置文件中指定自定义过滤器。

我(不是 Ruby 粉丝,甚至不是足够了解它)设法用这个帮助脚本解决了这个问题(基于 SO 上某处的一些巧妙建议): haml.rb

require 'rubygems'
require 'active_support/core_ext/object/blank'
require 'haml'
require 'haml/filters/coffee'

template = ARGV.length > 0 ? File.read(ARGV.shift) : STDIN.read
haml_engine = Haml::Engine.new(template)
file = ARGV.length > 0 ? File.open(ARGV.shift, 'w') : STDOUT
file.write(haml_engine.render)
file.close

这非常简单,除了开头的 require 之外。

现在的问题是:

1) 我真的应该使用它吗?还是有其他方法可以使用自定义过滤器进行按需 HAML 到 HTML 编译?

2) HAML 监视模式怎么样?非常棒而且方便。当然,我可以在 python 中创建一个轮询脚本,该脚本将监视目录更改并调用此 .rb 脚本,但它看起来像是一个肮脏的解决方案。

除了Heikki的回复之外,我的解决方案如下: https://gist.github.com/759002

如果您觉得有用,请随意使用

最佳答案

好消息:有一个新的 CoffeeScript Haml 过滤器,设计为独立于 Rails 工作!

https://github.com/paulnicholson/coffee-filter

绝对推荐使用coffee-haml-filter,后者从未真正得到积极维护。

关于ruby - 将 HAML 与自定义过滤器结合使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4549598/

相关文章:

ruby-on-rails - 在 before_save 中相当于没有查询的 .where - Rails

ruby-on-rails - 如何使用 Apache 和 Passenger 在子域根目录上部署 Rails 应用程序

ruby - 如何通过将字符串附加到特定值来更改哈希数组

javascript - Coffeescript三元if语句错误逻辑

javascript - Coffeescript 隐式返回对性能和副作用的影响

ruby-on-rails - 将上传的文件路径传递给 File.read(path)

ruby - 调用其他方法的 TDD 方法的正确方法

ruby-on-rails - 注释掉 haml 表中的项目

ruby-on-rails - 使用 HAML 生成单行注释?

javascript - 脊柱 JS 模型 : How does Spine handle a server response containing records for a related model?