防止 Slim 解析 <script>-tags 内的代码
Prevent Slim from parsing code inside <script>-tags
我在 sinatra 应用程序中使用 slim
进行模板化,并在客户端使用 ractive.js
类似 handlebars 的语法。
我将模板代码保存在 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>
对于此代码 slim 解析器 returns 一个错误:Unknown line indicator ... Line 29, Column 14 {{#each items}} ^
.
我尝试了建议的解决方法:
set :slim, {:pretty => true, :attr_list_delims => {'(' => ')', '[' => ']'}, :code_attr_delims => {'(' => ')', '[' => ']'}}
没用。所以我需要 slim
忽略 script
中的所有内容,保留缩进以提高可读性。唯一可能的解决方案是创建我自己的嵌入式引擎,并在其中不做任何事情。还有其他方法可以解决吗?
您可以使用 |
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>
我在 sinatra 应用程序中使用 slim
进行模板化,并在客户端使用 ractive.js
类似 handlebars 的语法。
我将模板代码保存在 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>
对于此代码 slim 解析器 returns 一个错误:Unknown line indicator ... Line 29, Column 14 {{#each items}} ^
.
我尝试了建议的解决方法:
set :slim, {:pretty => true, :attr_list_delims => {'(' => ')', '[' => ']'}, :code_attr_delims => {'(' => ')', '[' => ']'}}
没用。所以我需要 slim
忽略 script
中的所有内容,保留缩进以提高可读性。唯一可能的解决方案是创建我自己的嵌入式引擎,并在其中不做任何事情。还有其他方法可以解决吗?
您可以使用 |
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>