なぜ「haml-チェック」がこの明白な構文エラーを見つけないのか
-
10-10-2019 - |
質問
ダウン構文エラーを追跡するのに役立つレーキタスクを探していました、そして私は出会いました haml --check
Hamlファイルを二重にチェックするための可能なソリューションとして。残念ながら、この壊れた例に合格したとき、Hamlは構文は大丈夫だと言います。
私はその目的を誤解しましたか haml --check
または、この機能は完全に実装されていませんか?
Haml/Sass 3.0.25(Clansy 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の構文だけをチェックし、インラインRubyを評価しません。
- 編集
これにはおそらく必要です いくつかの もっとテストしますが、簡単なhamlファイルで動作しています:)
haml --debug newsletter.html.haml 2> /dev/null | sed '$d' | ruby -c
理論的には:
Hamlは、事前にコンパイルされたRubyソース(および最後にエラーメッセージ)を印刷し、Ruby部品だけを取得して構文を確認しようとします。
所属していません StackOverflow