【问题标题】:Why doesn't 'haml --check' find this glaring syntax error为什么 'haml --check' 没有发现这个明显的语法错误
【发布时间】:2011-01-13 05:28:40
【问题描述】:

我一直在寻找可以帮助我追踪语法错误的 rake 任务,我遇到了 haml --check 作为双重检查 haml 文件的可能解决方案。不幸的是,当我将这个损坏的示例传递给它时,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:头做 = include_javascripts:方面 #aspect_edit_pane #facebox_header %h4 = @方面 。描述 = t('联系人', :count =>@aspect_contacts.count)}

最后一个字符(大括号)应该触发语法错误,当模板作为请求的一部分执行时肯定会触发:

ActionView::Template::Error(编译错误 /usr/local/app/diaspora/app/views/aspects/edit.html.haml:13: 语法错误,意外 '}',期待 ')'

【问题讨论】:

    标签: ruby-on-rails ruby haml syntax-checking


    【解决方案1】:

    也许是因为-c, --check Just check syntax, don't evaluate.

    猜测:它只检查 haml 语法,不评估内联 ruby​​。

    --编辑

    这可能需要一些更多的测试,但我可以在简单的haml文件上使用它:)

    haml --debug newsletter.html.haml 2> /dev/null | sed '$d' | ruby -c
    

    理论上:

    Haml 打印出预编译的 Ruby 源代码(以及最后的错误消息),我们尝试仅获取 ruby​​ 部分并检查语法。

    【讨论】:

    • 我不确定这是否有意义,因为这是一个语法错误。
    • Haml 是模板标记,而不是 ruby​​。类似的情况是验证 html 而没有发现 javascript 错误。
    • @Philip C:这是 Ruby 语法错误,而不是 HAML 语法错误。如果要检查 Ruby 语法错误,可以在 Ruby 1.9 中使用ruby -c
    • @Philip C:为检查 haml 中的 ruby​​ 语法错误添加了一些 hackish 解决方案。
    • @Heikki:我正在遵循类似的路线,测试...但是在 rake 任务的上下文中,使用 HAML::Engine.new().precompiled() 更容易,即diaspunk.blogspot.com/2011/01/…
    猜你喜欢
    • 2012-08-11
    • 1970-01-01
    • 1970-01-01
    • 2015-01-11
    • 2018-08-26
    • 1970-01-01
    • 1970-01-01
    • 2018-06-28
    • 2021-11-13
    相关资源
    最近更新 更多