gulp markdownの内容をhtmlに変換する
gulp
でmarkdown
の形式で記載したデータをhtmlに変換します。
必要なパッケージをインストール
以下のパッケージをインストールします。
$ npm install --save-dev marked
gulp front-matterの内容をdataとして使用するで扱ったように、タスク処理でmarkdown
のデータを扱うためにgulp-data
もインストールします。
$ npm install --save-dev gulp-data
highlight.jsでシンタックスハイライト
さらに、本ブログのように技術ブログの場合はコードをシンタックスハイライト(色付け)して表示したいので、highlight.js
もインストールします。
highlight.js
を使ってコードに対して色付けのクラスを付与されますが、そのクラスに色付けするにはhighlight.js
のcss
ファイルを読み込む必要があります。
詳細はhighlight.js
の公式サイトにてご確認ください。
$ npm install --save-dev highlight.js
gulpでmarkedを使う
タスク処理の流れの中で以下のように実装します。
gulpをES2015で実装するで紹介したように、gulpfile
はES2015
の記法で実装しています。
gulpfile.babel.js
import gulp from 'gulp';
import gulpLoadPlugins from 'gulp-load-plugins';
import marked from 'marked';
import hljs from 'highlight.js';
const $ = gulpLoadPlugins();
// task処理一部抜粋
.pipe($.data((file) => {
// html形式に変換したデータを返します
return marked(String(file.contents), {
highlight: (code, lang, callback) => hljs.highlight(lang, code).value
});
}))
上記の場合はhtml
に変換されたデータは出力ファイルとして扱うのではなくdata
として次のタスクに渡しています。
その理由はgulp markdownを変換してnunjucksで扱うで説明します。