目前我正在使用Handlebars(JS模板引擎)进行项目工作,并使用eclipse进行开发。 问题是,eclipse没有为我的Handlebars-Templates提供语法高亮显示。我的模板被包含在标签中。语法突出显示按预期工作。<script type =“tmpl_handlebars”>对于HTML文件的Eclipse语法高亮显示>
截图:
是否有可能,Eclipse还强调了这个代码(在最好的HTML语法着色)?
目前我正在使用Handlebars(JS模板引擎)进行项目工作,并使用eclipse进行开发。 问题是,eclipse没有为我的Handlebars-Templates提供语法高亮显示。我的模板被包含在标签中。语法突出显示按预期工作。<script type =“tmpl_handlebars”>对于HTML文件的Eclipse语法高亮显示>
截图:
是否有可能,Eclipse还强调了这个代码(在最好的HTML语法着色)?
如果使用的是PHP
,您可以通过添加空PHP标签糊弄的Eclipse:
<scrip<?php ?>t type="tmpl_handlebars" id="tmpl_places">
<article>
<h1>
...
</h1>
</article>
</script>
你将不得不找到一个插件,它支持模板引擎。 Eclipse提供的HTML编辑器使用类型/语言属性的值来查找提供语法着色,内容辅助等的类。这种可能性虽然存在,但它只是提供了JavaScript。
如果你准备好写一点javascript,你可以这样做。我不知道你使用的框架,所以我会假设你有jQuery,但是如果你不想使用jQuery,你可以不使用jQuery。
首先,写出你所有的标记,作为模板的div与“tmpl_handlebars” CSS类,而不是脚本:
<div class="tmpl_handlebars" id="tmpl_places">
<article>
<h1>Hello, World!</h1>
<p>This is a template...</p>
</article>
</div>
然后,当你的页面加载,动态的脚本替换div标签标签,并将id和div标签的内容传输到脚本。 使用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就准备好了。
在代码的最后});
的div处理之前,添加以下代码行添加脚本:
$("head").append('<script type="text/javascript"'
+ 'src="**LOCATION_OF_DYNAMICALLY_LOADED_FILE**"></script>'");
//etc...
其他编辑可能不会有同样的问题,所以扭曲代码似乎不公平。我正在寻找一个特定的日蚀解决方案。 – 2012-07-18 09:25:39
@kinjal我明白,但如果你想知道,我认为它有问题的库,而不是Eclipse。当他们决定将模板放在“脚本”标签中时,他们会怎么想?......?从html的角度来看这很混乱,而且这甚至不是有效的html。您如何期望编辑器正确地着色? – 2012-07-18 23:19:25
类似@ 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 %}
所有这一切是一种丑陋,但导致这两个正确的HTML凸显Eclipse和在文档中正确渲染。
然后,只要暂时更改脚本标记的名称就行。 – nitind 2012-06-21 20:27:28