# HTMLが書ければすぐ習得できるテンプレートエンジン「EJS」の基本的な書き方 URL: https://webrandum.net/ejs/ 公開日: 2019-10-04 更新日: 2019-10-03 カテゴリー: コーディング タグ: EJS 出典: Webrandum(著者: サイトウ マサカズ) HTMLを効率的に書くためのテンプレートエンジンといえば「[Pug(パグ)(旧:Jade)](https://webrandum.net/pug/)」が有名ですが、書き方がインデント必須で独特な書き方になってしまいます。 [Webrandum効率的にHTMLを生成できるPugの特徴や記述方法https://webrandum.net/pugPug(パグ)はHTMLを生成するためのテンプレートエンジンで、ものすごくざっくり言うとSassのHTML版です。好き嫌いが別れたり、使い所も考える必要がありますが、今回はPugの特徴や記述方法についてまとめておきます。Pugの特徴Pugの特徴をまとめると下記のようになります。 閉じタグが不要 山括弧<>も不要 インデントで構造を管理 ファイルの分割ができる 変数が使える if文やfor文が使える閉じタグが無い変わりにインデントがかなり重要になってきます。そのため、普段からインデントを付けながら書いている人であれば、単純に書...](https://webrandum.net/pug) コードの質を担保するという意味では、書き方がある程度制限されていた方が良い場面もあるのですが、あまりにもHTMLの書き方と差があるため、複数人のチームでコーディングするときにPugが書けない人がいると使えなくなる可能性があります。 今回紹介するEJS(イージェイエス)は、書き方はHTMLと全く同じで、それに追加して便利な機能が使えるようになったテンプレートエンジンなので、「最悪の場合、普通にHTMLも書ける」というメリットがあります。 ## EJSの特徴  [ejs.coEJS -- Embedded JavaScript templateshttps://ejs.co'E' is for 'effective'. EJS is a simple templating language that lets you generate HTML markup with plain JavaScript. No religiousness about how to organize things. No reinvention of iteration and control-flow. It's just plain JavaScript.](https://ejs.co) [EJS](https://ejs.co/)は、HTMLにJavaScriptを埋め込む(Embedded)ような形でHTMLを生成できるテンプレートエンジンです。 基本的な書き方はHTMLで、特殊な処理をしたい場所にだけ、EJS用の開始タグと閉じタグを設置し、その中にJavaScriptを書いて使用します。 EJSの基本的な特徴をまとめると下記のようになります。 - あくまで書き方はHTMLと同じ - 拡張子は`.ejs` - ファイルの分割ができる - if文やfor文などのJavaScriptと同じ構文が使える これらの機能をうまく使いこなすことで、効率的にHTMLを生成します。 ## EJSの使い方 ### 基本的な書き方 基本的にはHTMLと同じような書き方をして、EJSの処理は`<% %>`などの専用の開始タグと閉じタグの中に書きます。 | EJSタグ | 内容 | | --- | --- | | <% %> | 中にJavaScriptをかけて、HTMLとしては出力されない | | --- | --- | | <%= %> | 中にある変数がエスケープ込みで展開される | | --- | --- | | <%- %> | 中にある変数がエスケープなしで展開される(HTMLタグを直接出力したい場合に使用) | | --- | --- | | <%# %> | コメント扱いになり、HTMLとしては出力されない | | --- | --- | | <%% %> | EjsそのものをEjsでテンプレート化したいときにEjsタグのエスケープとして使用します(普段は使用しない) | | --- | --- | 基本的にEJSで何か処理して表示させたい場合は`<%= %>`を使用して、単に変数の定義だけしたい場合などは`<% %>`を使用します。 ```
<%= i %>回目
<% } %> ``` ## まとめ 「複数人で作業する必要があり、Pugだと書けない人がいるから導入ができない」「Pugだと社内で書ける人が自分しかいない」といった状態でも、EJSであれば基本的な書き方はHTMLと一緒です。 最悪の場合、拡張子は`.ejs`だけど中身は普通のHTMLというのも可能です。 とりあえずヘッダーとフッターだけは分割管理しておけば、あとから修正が入っても比較的ラクに修正できるようになるので、メリットは十分あるのではないでしょうか?