HTMLテンプレートエンジンである、pugは試したことがあったのですが、wordpressとそんなに相性がよくなく、魅力を感じていませんでした。
しかし、ejsはすごくPHPっぽい感じですのでちょっと調べてみようと思いました。
pugがwordpressと相性が悪いわけ
pugは性質上、閉じタグが必ずできてしまします。そうすると、閉じタグなしのパーツ切り分けをしたい場合にどうしたらいいかよくわかりません。
工夫すればうまくできるのかもしれませんが、工夫する意味を考えてしましますね・・・。
ejsはHTMLの書き方である
HTMLの書き方で、変数やincludeが使えるというイメージです。
なのですごくPHPっぽい書き方で構成できます。
難点
視認性がめちゃくちゃ悪い。
普通のタグっぽくてあんまり好きじゃないんだよな。
この辺はエディタで解決できるかもしれません。
HTMLやPHPを作る
基本的には、サーバー上で動かすのを想定しているようなので
静的なファイルの生成(HTMLやPHP)を作るにはgulpを使う必要がある。
ちなみにvs codeにこれを入れた
https://marketplace.visualstudio.com/items?itemName=DigitalBrainstem.javascript-ejs-support
導入方法
node/npmはインストール済みとして進める。
sudo npm install --save-dev gulp-ejs gulp gulp-rename
mkdir src src/ejs src/scss dest
touch src/ejs/_header.ejs src/ejs/_footer.ejs src/ejs/index.ejs gulpfile.js
wordpress云々といってますが、とりあえずLPを構築してみたいと思います。
gulpfile.js
'use strict';
const gulp = require('gulp');
const fs = require('fs');
const rename = require('gulp-rename');
const ejs = require('gulp-ejs');
gulp.task("ejs", function () {
return gulp.src(
["src/ejs/*.ejs", '!src/ejs/_*.ejs']
)
.pipe(ejs(rename({ extname: '.html' })))
.pipe(gulp.dest("dest"))
});
尻切れとんぼですが、src/ejs/ にindex.ejsファイルを入れて
gulp ejs でコンパイルできます。