为什么“ haml - check”找不到这个明显的语法错误
-
10-10-2019 - |
题
我一直在寻找可以帮助我追踪语法错误的耙子任务,然后我遇到了 haml --check
作为双重检查HAML文件的可能解决方案。不幸的是,当我通过这个破碎的例子时,哈姆尔说语法还可以。
我是否误解了 haml --check
还是此功能未完全实施?
我想我应该提到我正在使用HAML/SASS 3.0.25(Classy Cassidy),Rails 3.0.3,Ruby 1.9.2p0和Mac 10.6.6。
$ haml --check /tmp/edit.html.haml
Syntax OK
#/tmp/edit.html.haml - content_for :head do = include_javascripts :aspects #aspect_edit_pane #facebox_header %h4 = @aspect .description = t('contacts', :count =>@aspect_contacts.count)}
最后一个字符(Curly Brace)应触发语法错误,当模板作为请求的一部分执行时,它肯定会这样做:
ActionView::Template::Error (compile error /usr/local/app/diaspora/app/views/aspects/edit.html.haml:13: syntax error, unexpected '}', expecting ')'
解决方案
也许是因为 -c, --check Just check syntax, don't evaluate.
猜猜:它仅检查HAML语法,并且没有评估Inline Ruby。
- 编辑
这可能需要 一些 更多测试,但我在简单的HAML文件上工作:)
haml --debug newsletter.html.haml 2> /dev/null | sed '$d' | ruby -c
理论上:
HAML打印出预编译的Ruby源(最后是错误消息),我们尝试仅获取Ruby部分并检查语法。
不隶属于 StackOverflow