使用<script type =“tmpl_handlebars”> </script>对HTML文件进行Eclipse语法突出显示

时间:2012-04-21 12:19:37

标签: javascript html eclipse syntax-highlighting handlebars.js

目前我正在开发一个带有Handlebars的项目(JS模板引擎),我正在使用eclipse进行开发。 问题是,eclipse没有为我的Handlebars-Templates提供语法高亮。我的模板包含在标签中。语法突出显示按预期工作。

屏幕截图:

http://i.stack.imgur.com/1tPyz.png

Eclipse是否有可能突出显示此代码(最好使用HTML语法着色)?

4 个答案:

答案 0 :(得分:5)

如果你使用的是PHP,你可以通过添加空的php标签来愚弄Eclipse:

<scrip<?php ?>t type="tmpl_handlebars" id="tmpl_places">
    <article> 
       <h1> 
          ...
       </h1>
    </article>
</script>

答案 1 :(得分:2)

您必须找到支持该模板引擎的插件。 Eclipse提供的HTML编辑器使用类型/语言属性的值来查找提供语法着色,内容辅助等的类。可能性存在,但开箱即用,它只提供JavaScript。

答案 2 :(得分:2)

如果你准备好了,可以写一点javascript,你可以这样做。我不知道你正在使用的框架,所以我认为你有jQuery,但如果你不想,你可以不使用jQuery就可以使用这个想法。

首先,使用“tmpl_handlebars”css类而不是脚本编写用作div中模板的所有标记:

<div class="tmpl_handlebars" id="tmpl_places">
    <article> 
       <h1>Hello, World!</h1>
       <p>This is a template...</p>
    </article>
</div>

然后,当您的页面加载后,使用脚本标记动态替换div标签,并将div标签的id和内容传输到脚本。 使用jQuery,您只需在html头中添加这个小脚本。

$(function() {
    $(".tmpl_handlebars").each(function() {
        var $this = $(this);
        var children = $this.children().detach();
        var id = $this.attr("id");
        $this.replaceWith(
            $('<script type="tmpl_handlebars"/>')
                .attr("id", id)
                .append(children);
        );
    });
});

这可能是开箱即用的,但由于我不是胡子和把手的专家,我不知道他们何时处理DOM以找到模板,所以如果你想要完全安全,那么你应该执行此第三步:从头部的静态html中删除包含这些库的脚本标记,然后在处理div之后使用javascript动态添加它们,这样当脚本到达时你的dom就准备好了。

在divs处理的代码中的最后一个});之前,添加以下行来添加脚本:

$("head").append('<script type="text/javascript"'
          + 'src="**LOCATION_OF_DYNAMICALLY_LOADED_FILE**"></script>'");
//etc...

答案 3 :(得分:2)

与@ Neparkiraj的答案相似。

如果你正在使用Django,你可以添加一个空标签(我相信)“技巧”Eclipse只是认为该行只是“坏”的HTML。然后将使用html语法突出显示后续行:

<scrip{{NONEXISTANTVAR}}t type="tmpl_handlebars" id="tmpl_places">
    <article> 
       ...
    </article>
</script>

由于标记为空,<script type="tmpl_handlebars" id="tmpl_places">将在最终文档中完美呈现。请注意,使用Django也可能意味着此代码位于{% verbatim %}块中,因此您可以将此代码组合起来获取:

<scrip{% verbatim %}t type="tmpl_handlebars" id="tmpl_places">
    <article> 
       ...
    </article>
</script>
{% endverbatim %}

所有这些都很丑陋,但导致在eclipse中正确的HTML突出显示和正确的文档渲染。