目前我正在开发一个带有Handlebars的项目(JS模板引擎),我正在使用eclipse进行开发。 问题是,eclipse没有为我的Handlebars-Templates提供语法高亮。我的模板包含在标签中。语法突出显示按预期工作。
屏幕截图:
Eclipse是否有可能突出显示此代码(最好使用HTML语法着色)?
答案 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突出显示和正确的文档渲染。