Jadeの導入と「gulp-jade」を使ったビルドまで
Jadeとは
Jadeは、HTMLを効率的に書けるようにするテンプレートエンジンです。
新しい名前ではPugと言います。
前に書いた記事のSlimはRuby製ですが、今回紹介するJadeはJavaScript製です。「Node.js」によって動きます。
Slimと同じく最終的にはHTMLとして出力されます。
今回は導入から「Gulp.js」のプラグイン「gulp-jade」を使用したビルドまでを紹介します。
まずインストール
Jadeはまず「Node.js」が入っていないと動きません。GulpやGruntを使用していれば既にインストールされているはずです。今回Nodeのインストールは省略します。
それではJadeをインストールしていきます。
なお、下記のコマンドはMac用です。
Jadeを使ってみる
JadeはSlimと同じく通常のHTMLとは記法が異なります。
拡張子も「.jade」となります。
大まかな違いは下記かと思います。
- 閉じタグが無い
- 「<」,「>」がいらない
- classは「.」、IDは「#」で記述
- 改行が「|」になる
- インデントがそのまま階層になる
- JavaScriptの記法が使える
例えば
Jadeで下記のように記述したとします。
ビルドすると下記になります。
includeを使う
Jadeではインクルードを使うことができます。
例えば、下記のフォルダ構成の場合
— includes
— index.jade
「includes」フォルダ内には「header.jade」が入っているとします。インクルードするには下記のように記述します。
extendsを使う
Jadeではテンプレートの継承という機能を使うことができます。
これを利用すると、レイアウトの使い回しができて便利です。
例えば、下記のフォルダ構成の場合
— extends
— index.jade
「extends」フォルダの中には、「layout.jade」が入っているとします。
「layout.jade」のテンプレートを継承させて「index.jade」を作ってみましょう。
layout.jade
index.jade
ビルド後は下記になります。
「block」という記述で各ファイルの関係を紐づけます。
「index.jade」で「extends ./extends/layout」と記述すれば「layout.jade」を呼び出すことができます。
「block」の記述で、対応した場所を置き換えます。
記述には下記があります。
block | 置き換える |
---|---|
block prepend | 内容を継承して、その前に追加する。 |
block append | 内容を継承して、その後に追加する。 |
Jadeでは他にも、javaScriptの記述が使えるので、変数や条件分岐なども使えます。
では「gulp-jade」を使っていきます。
gulp-jadeをインストール
「gulp」までのインストールは終わっている想定で進めます。
下記コマンドで「gulp-jade」をインストールします(Mac)
gulp-jadeを使ってみる
「gulpfile.js」は下記のように記述します。 エラーがあった後もファイルの監視を続けるために「gulp-plumber」というプラグインも入れています。
「pretty」がないとHTMLが圧縮された状態で出力されます。
gulpを実行すると保存するたびに「.jade」ファイルと同じ場所に「.html」ファイルが出力されます。
あとはファイルの監視をしています。
制作用のJadeテンプレート
制作に使えそうなJadeのテンプレートを作ってみました。
あくまでも一例です。
特に分割していないので、使いやすいようにパーツ分けしてみて下さい。
さいごに
単純に記述量が減るのでフラットなHTMLを書くためだけに利用しても良いかと思います。
現在ではJadeやSlimやHamlなど、様々なテンプレートエンジンがありますが、どれもまず使ってみるのが一番だと思います。その上で自分にあったものを選んでいきましょう。