swig|htmlのヘッダ・フッタの共通化などで実装を効率化する
swig
でhtml
の実装すれば、html
のヘッダーやフッターの共通化などができ、html
の管理・実装の効率が格段に上がります。
swig
とは、テンプレートエンジンの1つで、html
の中に変数やif文やfor文などのプログラムを書き足して、それをhtml
に変換することができます。
また、php
などのサーバ言語と違い、ローカルでコンパイルしてhtml
ファイルを作成できるので、レンタルサーバーとの契約でサーバ言語が使えない場合でも簡単に導入することができます。
今までどおり、html
ファイルをレンタルサーバに置くだけです。
swigを使った具体例
例えば下記のようなホームページ(html
)があるとします。
<!DOCTYPE HTML>
<html>
<head>
<title>サンプルホームページ</title>
<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
</head>
<body>
<!-- 共通ヘッダー -->
<header>
swigでhtmlを効率化する方法
</header>
<h1>swigとは</h1>
swigでhtmlの実装しすれば、htmlのヘッダーやフッターの共通化などができ、htmlの管理・実装の効率が格段に上がります。
<!-- 共通フッター -->
<footer>
コピーライト
問い合わせ先
</footer>
</body>
</html>
おそらくほとんどの画面でhead
部分と共通ヘッダーと共通フッターの部分は共通になる思います。
10ページくらいhtml
で作りこんだあとに、「やっぱり共通ヘッダーのレイアウトを変えたい」となった場合に、すべてのhtml
を直さなければいけなくなります。
しかしswigで実装すれば、ヘッダー部分などを別ファイルにすることができます。なので各画面ではその別ファイルを読み込むだけでいいので、すべての画面で実装し直す手間がなくなります。
まず1ページごとのhtml
(拡張子は.swig
に変換します)は下記のようになります。
sample.swig
{% include './head.swig' %}
<h1>swigとは</h1>
この部分のみ各画面で実装するだけです!!
{% include './foot.swig' %}
上記ソースでinclude
しているファイルを作成します。
head.swig
<!DOCTYPE HTML>
<html>
<head>
<title>サンプルホームページ</title>
<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
</head>
<body>
<!-- 共通ヘッダー -->
<header>
swigでhtmlを効率化する方法
</header>
foot.swig
<!-- 共通フッター -->
<footer>
コピーライト
問い合わせ先
</footer>
</body>
</html>
gulpを使ってswigをコンパイルする方法
swig
からhtml
に変換する方法ですが、gulp
というツールを利用すると簡単に変換することができます。
gulp
の使い方についてはgulp|gulpの基本的な使い方で詳しく紹介しています。
まずプラグインをインストールします
$ npm install --save-dev gulp-swig
そしてgulp
のタスクを作成し、実行するだけでdest
で指定した場所に変換されたhtml
ファイルが出来上がります。
var swig = require('gulp-swig');
gulp.task('swig', function() {
gulp.src('sample.swig')
.pipe(swig())
.pipe(gulp.dest('dest'));
});