Hexo向けのプラグインを作成して公開しました。

hexo-tag-config

きっかけ


HexoのIssueに下記のような質問があがっていていまして「これプラグインでできるんじゃね??」と思ったので作りました。

Is it possible to refer a config variable in Markdown content?

Hexoタグヘルパーとは??


Hexoのタグヘルパー機能を使って実装されています。そもそもタグヘルパーが何ぞやというのはこの辺りに書かれていまして、要するにこれはmozillaが開発しているJavaScript向けテンプレートエンジンのnunjucksのタグを用いてごにょごにょするやつ。です(たぶん)

できること


こんな感じでMarkdownファイル内で_config.ymlのキーを指定すればその値を取得してくれます。

1
2
3
4
5
//urlというキーの値を取得する場合
{% config url %}

//ネストしているキーの値を取得する場合
{% config highlight.line_number %}

技術


今回はTypeScriptでnpmパッケージを公開するということにチャレンジしてみました。特段難しいことはなかった(世にある既存の記事で十分な範囲なので)のでここでは言及しませんが、そんなに難しくないです。

また、実装に当たってネストしたオブジェクトのキーを取得するのに再帰を使っているのですがArray.reduce()でできるんじゃないかという気がします。するんですが、わたしがArray.reduce()をよくわかっていないので再帰で実装ました。

感想


年始から一つnpmパッケージを公開できたので幸先が良い気がします。