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,我该如何改变呢?

提前致谢!

  1. 转到菜单中的"Browse Packages" (菜单项取决于您的平台)。
  2. 打开HTML/HTML.tmLanguage
  3. 更改这一行(我的HTML.tmLanguage第286行):

    <string>(?:^\s+)?(&lt;)((?i:script))\b(?![^&gt;]*/&gt;)</string>

    对此:

    <string>(?:^\s+)?(&lt;)((?i:script))\b(?![^&gt;]*/&gt;)(?!.*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+)?(&lt;)((?i:script))\b(?![^&gt;]*/&gt;)(?!.*type=["']text/(temp‌​late|html)['"])</string>

您可以在C:\Program Files\Sublime Text 3\PackagesfindHTML.sublime-package ,如PAEz所述。

说明

  1. 像任何普通的压缩文件一样提取HTML.sublime-package的内容
  2. 在刚刚创build的新/ HTML目录中,打开HTML.tmLanguage并修改上面提到的行(可能是第286行)
    1. 它应该在<key>begin</key>
  3. 保存您的更改,然后将HTML.tmLanguage所在的/ HTML目录添加到新的zip文件中
  4. 删除旧的HTML.sublime包文件
  5. 将文件types从.zip更改为.sublime-package (确保Sublime在您执行此操作时未运行)
  6. 你现在应该很好去 – 升级崇高,看看你真棒新突出显示的模板!

对于我们这些使用Sublime Text 3的人来说,使用插件“PackageResourceViewer”来编辑HTML.sublime-package

PackageResourceViewer