【问题标题】:Sublime Text 2 recognize underscore templates as HTMLSublime Text 2 将下划线模板识别为 HTML
【发布时间】:2015-11-22 19:51:16
【问题描述】:

所以,我正在使用 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>

但是 sublime text 2 正在评估里面的代码作为常规 js,我该如何改变呢?

提前致谢!

【问题讨论】:

标签: underscore.js sublimetext


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

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

    到这里:

    &lt;string&gt;(?:^\s+)?(&amp;lt;)((?i:script))\b(?![^&amp;gt;]*/&amp;gt;)(?!.*type=["']text/template['"])&lt;/string&gt;

现在任何带有type="text/template"type='text/template' 的脚本标签都将呈现为html 而不是javascript。

【讨论】:

  • 谢谢马特!渴望在沉重的下划线模板上使用 zencoding 和标签匹配。
  • 上帝保佑你,RegExp 超级英雄。
  • 如果您希望它也适用于“text/html”:&lt;string&gt;(?:^\s+)?(&amp;lt;)((?i:script))\b(?![^&amp;gt;]*/&amp;gt;)(?!.*type=["']text/(template|html)['"])&lt;/string&gt;
  • 我这样做了,效果更好,但仍然不能用正确的标签关闭标签。 (cmd+shift+i 不起作用。)
  • @CMCDragonkai 是的,但该文件位于不同目录的压缩文件中。查找文件HTML.sublime-package 用winrar 之类的打开它,得到答案中提到的文件,修改它并放回去。
【解决方案2】:

因为修改内置包并不容易、安全或可移植(尤其是在 ST3 中),我将 Matt York's 更改拆分为自己的包。

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

HTML Underscore Syntax

【讨论】:

  • 刚刚安装在新机器上。在 Sublime 3 中完美运行。比编辑文件更容易。谢谢约翰!
【解决方案3】:

对于我们这些使用 Sublime Text 3 的人

我想我会将这些信息整合到更容易找到的东西中,因为没有任何答案或 cmets 直接为我提供了我需要的解决方案。 Matt York 的回答大部分是正确的,但 Shane N 的解决方案更灵活一些:

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

您可以在 C:\Program Files\Sublime Text 3\Packages 中找到 HTML.sublime-package,如 PAEz 所述。

说明

  1. 像任何普通的 zip 文件一样提取 HTML.sublime-package 的内容
  2. 在刚刚创建的新 /HTML 目录中,打开 HTML.tmLanguage 并修改上面提到的行(可能是第 286 行)
    1. 它应该紧跟在&lt;key&gt;begin&lt;/key&gt; 之后
  3. 保存更改,然后将 HTML.tmLanguage 所在的 /HTML 目录添加到新的 zip 文件中
  4. 删除旧的HTML.sublime-package文件
  5. 将文件类型从 .zip 更改为 .sublime-package(确保在执行此操作时 Sublime 未运行)
  6. 您现在应该可以开始了 - 启动 Sublime 并查看您的新高亮模板!

【讨论】:

  • 要在 OS X 上执行此操作,您首先必须右键单击 ST3 应用程序并选择“显示包内容”,然后导航到 Contents/MacOS/Packages/HTML.sublime-package
【解决方案4】:

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

PackageResourceViewer

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-03-07
    • 2018-02-14
    • 1970-01-01
    • 2013-06-13
    • 1970-01-01
    • 1970-01-01
    • 2012-10-29
    相关资源
    最近更新 更多