2012-04-21 6 views
10

のHTMLファイルの強調表示現在、私はHandlebars(JS Template Engine)のプロジェクトに取り組んでおり、開発のためにEclipseを使用しています。 問題は、その日食は、私のハンドルバーテンプレートの構文ハイライトを提供していないということです。私のテンプレートはタグで囲まれています。構文ハイライト表示は期待通りに機能します。Eclipse構文<script type = "tmpl_handlebars">

スクリーンショット:

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

は、それは、Eclipseも(HTML構文のカラーリングで最高の状態で)このコードをハイライトすることは可能ですか?

答えて

5

あなたがPHPを使用している場合は、空のPHPタグ追加することにより、Eclipseをだますことができます。あなたはそのテンプレートエンジンをサポートし、プラグインを見つけなければならないだろう

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

スクリプトタグの名前を一時的に変更するだけでも問題ありません。 – nitind

2

を。 Eclipseが提供するHTMLエディタは、型/言語属性の値を使用して、構文カラーリング、コンテンツアシストなどを提供するクラスを検索します。その可能性はありますが、それはJavaScriptからのみです。

2

準備ができていれば、少しのJavaScriptを書くことができます。私はあなたが使っているフレームワークを知らないので、あなたはjQueryを持っていると仮定しますが、あなたがしたくない場合はjQueryを使わずにそのアイデアを使うことができます。あなたのページが読み込まれたとき、動的スクリプトでdivタグを置き換え、その後

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

まず、「tmpl_handlebars」CSSクラスの代わりに、スクリプトと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が準備できます。 。

コードの最後の}); divを処理する前に、スクリプトを追加するには、次の行を追加します。同様の

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

他のエディタにも同じ問題はないかもしれないので、コードをねじれば不公平に思えます。私は日食の特定の解決策を探していた。 –

+0

@キンヤル私は理解していますが、知りたいのであれば、Eclipseではなく問題があるライブラリがあると思います。テンプレートを「スクリプト」タグに入れることを決めたとき、彼らは何を考えましたか?これはhtmlの観点からとても混乱しており、これは有効なhtmlでさえありません。エディタが正しく色付けすることをどのように期待しますか? –

2

を@ Neparkirajの答えに。

Djangoを使用している場合は、行がちょうど「悪い」htmlであると思うだけで、空のタグを「トリック」Eclipseに追加することができます。後続の行は、次に、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の両方につながり、ドキュメント内の正しいレンダリング。