15 min/d

ぼうずやのにっき

jekyll-markdown-parser をつくった

bouzuya/jekyll-markdown-parser をつくった。

jekyll-markdown-parser は npm package だ。Jekyll で使われている Markdown ( 以下、 Jekyll Markdown ) を parse する。Jekyll Markdown についた Front Matter などを扱いやすくする。要するに YAML (string) を plain JavaScript object に、 Markdown (string) を HTML (string) に変換する。

目的としてはぼくのいくつかの repository で重複していた Jekyll Markdown の処理を共通化することだ。bouzuya/bbn-api をつくるなかで、現行の動きを確認するために bouzuya/kraken を読んだところ、 bouzuya/myjekyll に処理を投げていた。この myjekyll というのが Jekyll Markdown を blog.bouzuya.net に特化した Entry として parse している。これは YAMLMarkdown を分離し、YAMLJavaScript の object に parse するだけでなく、そこから以前の blog.bouzuya.net 向けの Entry に変形するということだ。今回の bbn-api と前回の myjekyll で処理が重複している。それを回避するためにつくろうと思った。

実装は TypeScript 2.0 beta + Babel + chjj/marked + nodeca/js-yaml 。test は bouzuya/beater + power-assertjs/power-assert で。特に面白い点はない。

正直なところ、あまり単一機能になっていなくて、良くない。Markdown を compile するのか、YAML を parse するのか、Front Matter を分離するのか。定型的な処理をまとめただけの utility っぽい。動けばよしで妥協した。

bouzuya/bbn-api の 1.0.0 の時点で jekyll-markdown-parser も 1.0.0 にしようと思う。たぶん、もう変化はしないと思う。