防止Slim解析<script> -tags中的代码

时间:2016-01-08 13:34:41

标签: ruby handlebars.js slim-lang ractivejs

我在sinatra应用程序中使用 slim 进行模板化,并在客户端使用带有句柄的语法 ractive.js

&#xA;&#xA;

我将模板代码保存在 script 标记内,但是很小的尝试像文件的其余部分一样解析它们。我的简化代码如下所示:

&#xA;&#xA;
  section.header-section&#xA; h1项目&#xA; section.main-section&#xA; script#items type =“text / html”&#xA; &lt; ul class =“items”&gt;&#xA; {{#each items}}&#xA; &LT;李&GT; {{TITLE}}&LT; /立GT;&#XA; {{/每}}&#XA; &lt; / ul&gt;&#xA;  
&#xA;&#xA;

对于此代码,slim slim解析器返回错误:未知行指示符...第29行,列14 {{#each items}} ^

&#xA;&#xA;

我尝试了建议的解决方法:

&#xA;&#xA;
  set:slim,{:pretty =&gt; true,:attr_list_delims =&gt; {'('=&gt;')','['=&gt; ']'},:code_attr_delims =&gt; {'('=&gt;')','['=&gt; ']'}}&#xA;  
&#xA;&#xA;

它没有帮助。所以我需要 slim 来忽略 script 中的所有内容,保留缩进的可读性。唯一可行的解​​决方案是创建我自己的嵌入式引擎,并且文明中不做任何事情。有没有其他方法可以解决它?

&#xA;

1 个答案:

答案 0 :(得分:2)

您可以使用| for verbatim text

script#items type="text/html"
  |
    <ul class="items">
      {{#each items}}
        <li>{{title}}</li>
      {{/each}}
    </ul>

产生:

<script id="items" type="text/html"><ul class="items">
  {{#each items}}
    <li>{{title}}</li>
  {{/each}}
</ul></script>