普段生のHTMLを書く機会はほとんどなく、画面側の仕事でもフレームワークを使うことがほとんどなので搭載されているテンプレートを使っています。
で、生のHTML/CSSの本を読んでいてejsなるテンプレートエンジンを発見。どうやらnode.jsのテンプレートのようですね。
まあHTMLで中でPHP使えればいいんですけどhtaccessの設定とかが面倒だったり、中にはできないケースもあるかと思いこれを機に勉強してみました。
Contents
インストール
nodeとnpmが入っていることが前提となります。
1 |
npm install gulp-ejs -D |
ディレクトリ構成
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
├── build │ ├── assets │ │ ├── css │ │ ├── img │ │ └── js │ └── index.html └── src ├── assets │ ├── css │ ├── ejs │ └── img └── ejs ├── common │ ├── _footer.ejs │ └── _header.ejs └── index.ejs |
_header.ejs
1 2 3 4 5 6 7 8 9 10 11 12 |
<header class="header"> <h1 class="header__logo"></h1> <nav class="header__gmenu"> <ul> <li class="header__gmenu_list"><a href="">HOME</a></li> <li class="header__gmenu_list"><a href="">Service</a></li> <li class="header__gmenu_list"><a href="">Works</a></li> <li class="header__gmenu_list"><a href="">Contact</a></li> <li class="header__gmenu_list"><a href="">Employment</a></li> </ul> </nav> </header> |
_footer.ejs
1 2 3 4 5 6 7 8 9 10 11 |
<footer> <nav> <ul> <li><a href="">HOME</a></li> <li><a href="">Service</a></li> <li><a href="">Works</a></li> <li><a href="">Contact</a></li> <li><a href="">Employment</a></li> </ul> </nav> </footer> |
index.ejs
1 2 3 4 5 |
<%-include('common/_header')%> <section id="test"> test </section> <%-include('common/_footer')%> |
タスクランナー(gulpfile.js)
1 2 3 4 5 6 |
gulp.task('ejs', function(){ gulp.src('ejssample/src/ejs/index.ejs') .pipe(ejs()) // 拡張子の指定 .pipe(rename({extname:'.html'})) .pipe(gulp.dest('ejssample/build/')); }); |
GitHub
参考リンク