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

Mik*_* M. 3 ruby handlebars.js slim-lang ractivejs

slim在 sinatra 应用程序中使用模板,并ractive.js在客户端使用类似句柄的语法。

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

section.header-section
  h1 Items
section.main-section
script#items type="text/html"
  <ul class="items">
    {{#each items}}
      <li>{{title}}</li>
    {{/each}}
  </ul>
Run Code Online (Sandbox Code Playgroud)

对于此代码 slim 解析器返回一个错误:Unknown line indicator ... Line 29, Column 14 {{#each items}} ^

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

set :slim, {:pretty => true, :attr_list_delims => {'(' => ')', '[' => ']'}, :code_attr_delims => {'(' => ')', '[' => ']'}}
Run Code Online (Sandbox Code Playgroud)

这没有帮助。所以我需要slim忽略里面的所有内容,script保留缩进以提高可读性。唯一可能的解决方案是创建我自己的嵌入式引擎,并且实际上在其中不执行任何操作。还有其他方法可以修复吗?

mat*_*att 5

您可以用于|逐字文本

script#items type="text/html"
  |
    <ul class="items">
      {{#each items}}
        <li>{{title}}</li>
      {{/each}}
    </ul>
Run Code Online (Sandbox Code Playgroud)

其产生:

script#items type="text/html"
  |
    <ul class="items">
      {{#each items}}
        <li>{{title}}</li>
      {{/each}}
    </ul>
Run Code Online (Sandbox Code Playgroud)