在HAML中包含内联JS

我不喜欢我的HAML。 想知道如何写这样的东西,包括在模板中,而我在黑客中,但在HAML?

<script type='text/javascript'> $(document).ready( function() { $('body').addClass( 'test' ); } ); </script> 
 :javascript $(document).ready( function() { $('body').addClass( 'test' ); } ); 

文档: http : //haml.info/docs/yardoc/file.REFERENCE.html#javascript-filter

实际上你可以做Chris Chalmers的回答,但是你必须确保HAML不会parsingJavaScript。 当您需要使用与text/javascript不同的types时,这种方法实际上非常有用,而这正是我需要为MathJax所做的。

您可以使用plainfilter来保持HAMLparsing脚本并抛出一个非法的嵌套错误:

 %script{type: "text/x-mathjax-config"} :plain MathJax.Hub.Config({ tex2jax: { inlineMath: [["$","$"],["\\(","\\)"]] } }); 

所以我尝试了以上:JavaScript的工作:)然而HAML包装生成的代码CDATA如下所示:

 <script type="text/javascript"> //<![CDATA[ $(document).ready( function() { $('body').addClass( 'test' ); } ); //]]> </script> 

以下HAML将生成包含(例如)typekit或Google分析代码的典型标记。

  %script{:type=>"text/javascript"} //your code goes here - dont forget the indent! 

我在haml中使用fileupload-jquery 。 原来的js如下:

 <!-- The template to display files available for download --> <script id="template-download" type="text/x-tmpl"> {% for (var i=0, file; file=o.files[i]; i++) { %} <tr class="template-download fade"> {% if (file.error) { %} <td></td> <td class="name"><span>{%=file.name%}</span></td> <td class="size"><span>{%=o.formatFileSize(file.size)%}</span></td> <td class="error" colspan="2"><span class="label label-important">{%=locale.fileupload.error%}</span> {%=locale.fileupload.errors[file.error] || file.error%}</td> {% } else { %} <td class="preview">{% if (file.thumbnail_url) { %} <a href="{%=file.url%}" title="{%=file.name%}" rel="gallery" download="{%=file.name%}"><img src="{%=file.thumbnail_url%}"></a> {% } %}</td> <td class="name"> <a href="{%=file.url%}" title="{%=file.name%}" rel="{%=file.thumbnail_url&&'gallery'%}" download="{%=file.name%}">{%=file.name%}</a> </td> <td class="size"><span>{%=o.formatFileSize(file.size)%}</span></td> <td colspan="2"></td> {% } %} <td class="delete"> <button class="btn btn-danger" data-type="{%=file.delete_type%}" data-url="{%=file.delete_url%}"> <i class="icon-trash icon-white"></i> <span>{%=locale.fileupload.destroy%}</span> </button> <input type="checkbox" name="delete" value="1"> </td> </tr> {% } %} </script>