Sublime Text 2将下划线模板识别为HTML
所以,我正在使用underscore.js模板,其中我必须把我的html模板内的脚本标记,像这样
<script id="contactTemplate" type="text/template"> <img src="{{ photo }}" alt="{{ name }}" /> <h1>{{ name }}<span>{{ type }}</span></h1> <div>{{ address }}</div> <dl> <dt>Tel:</dt><dd>{{ tel }}</dd> <dt>Email:</dt><dd><a href="mailto:{{ email }}">{{ email }}</a></dd> </dl> </script>
但崇高的文字2正在评估里面的代码作为常规的JS,我该如何改变呢?
提前致谢!
- 转到菜单中的
"Browse Packages"
(菜单项取决于您的平台)。 - 打开
HTML/HTML.tmLanguage
-
更改这一行(我的
HTML.tmLanguage
第286行):<string>(?:^\s+)?(<)((?i:script))\b(?![^>]*/>)</string>
对此:
<string>(?:^\s+)?(<)((?i:script))\b(?![^>]*/>)(?!.*type=["']text/template['"])</string>
现在,任何type="text/template"
或type='text/template'
脚本标记都将呈现为html而不是javascript。
因为修改内置软件包并不是很简单,安全或便携(尤其是在ST3中),所以我把Matt York的改变分解成了自己的软件包。
它可以通过包控制来使用,并且在所有平台上支持Sublime Text 2和Sublime Text 2。
HTML下划线语法
对于我们这些使用崇高文本3的人来说
我想我会把这些信息整合成更容易find的东西,因为没有任何答案或评论直接给我提供我需要的解决scheme。 马特·约克的答案大部分是正确的,但肖恩N的解决scheme是更灵活一点:
<string>(?:^\s+)?(<)((?i:script))\b(?![^>]*/>)(?!.*type=["']text/(template|html)['"])</string>
您可以在C:\Program Files\Sublime Text 3\Packages
findHTML.sublime-package ,如PAEz所述。
说明
- 像任何普通的压缩文件一样提取HTML.sublime-package的内容
- 在刚刚创build的新/ HTML目录中,打开HTML.tmLanguage并修改上面提到的行(可能是第286行)
- 它应该在
<key>begin</key>
- 它应该在
- 保存您的更改,然后将HTML.tmLanguage所在的/ HTML目录添加到新的zip文件中
- 删除旧的HTML.sublime包文件
- 将文件types从
.zip
更改为.sublime-package
(确保Sublime在您执行此操作时未运行) - 你现在应该很好去 – 升级崇高,看看你真棒新突出显示的模板!
对于我们这些使用Sublime Text 3的人来说,使用插件“PackageResourceViewer”来编辑HTML.sublime-package
PackageResourceViewer