我最近在Knockout模板上做了很多工作,而且我一直在使用Sublime来做这件事。我注意到的一件事是,当使用模板时,需要在这样的块中定义:
<script type="text/html"></script>
它将内容视为Javascript,这意味着我错过了我安装的许多HTML工具。我想让它将内容视为HTML而不是Javascript;我有什么设置可以用来做这个吗?
答案 0 :(得分:18)
我找到了答案thanks to iamntz here;诀窍很简单。对于Sublime Text 3:
找到这一行:
<string>(?:^\s+)?(<)((?i:script))\b(?![^>]*/>)</string>
并将其替换为:
<string>(?:^\s+)?(<)((?i:script))\b(?!([^>]*text/html[^>]*|[^>]*/>))</string>
美好而轻松;第二个片段中的text / html可以替换为任何模板类型,现在它将被Sublime读取为HTML。此修复程序也适用于您安装的任何HTML包。
答案 1 :(得分:1)
对于Sublime Text 3 build 3103,这似乎不再是必要的。只需确保您的脚本标记的type
属性以&#34; text /&#34;开头。并且不会以&#34; javascript&#34;结尾它现在应该正确处理HTML。
编辑:
Sublime Text 3 build 3176再次成为一个问题。修复方法是再次修改HTML包,但HTML.sublime-syntax中有此更改:
- script-javascript
- tag-generic-attribute-meta
- tag-generic-attribute-value
- - match: (?i)(?=text/html(?!{{unquoted_attribute_value}})|'text/html'|"text/html")
+ - match: (?i)(?=text/html(?!{{unquoted_attribute_value}})|'text/html'|"text/html"|"text/x-template")
set:
- script-html
- tag-generic-attribute-meta
替换&#34; x-template&#34;使用您用于脚本标记模板的任何类型。