Sublime Text 2将下划线模板识别为HTML

Rog*_*ves 35 underscore.js sublimetext

所以,我正在使用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>
Run Code Online (Sandbox Code Playgroud)

但是崇高的文本2正在将内部代码作为常规js进行评估,我该如何改变呢?

提前致谢!

Mat*_*ork 69

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

    <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.

  • 上帝保佑你,RegExp超级英雄. (4认同)
  • 我们可以获得Sublime Text 3的更新吗? (3认同)

Joh*_*ork 9

因为修改内置包并不简单,安全或可移植(特别是在ST3中),我将Matt York的更改拆分为自己的包.

它可通过Package Control获得,并在所有平台上支持Sublime Text 2和3.

HTML下划线语法